#include "CustomLineEditBase.h" #include <QDebug> CustomLineEditBase::CustomLineEditBase(QWidget* parent):QLineEdit (parent) { wgtMarginLeft = new QWidget(this); wgtMarginLeft->setObjectName("wgtMarginLeft"); wgtMarginLeft->setVisible(false); wgtMarginRight = new QWidget(this); wgtMarginRight->setObjectName("wgtMarginRight"); wgtMarginRight->setVisible(false); spacer = new QSpacerItem(16000,10); btnControl = new QPushButton(this); lblIcon = new QLabel(this); btnControl->setObjectName("control"); lblIcon->setObjectName("image"); btnControl->setVisible(false); lblIcon->setVisible(false); hblLineEdit = new QHBoxLayout(this); hblLineEdit->addWidget(wgtMarginLeft); hblLineEdit->addWidget(lblIcon); hblLineEdit->addItem(spacer); hblLineEdit->addWidget(btnControl); hblLineEdit->addWidget(wgtMarginRight); hblLineEdit->setSpacing(0); hblLineEdit->setMargin(0); this->setLayout(hblLineEdit); } void CustomLineEditBase::setVisibleIcon(bool &a_visible) { lblIcon->setVisible(a_visible); } void CustomLineEditBase::setVisibleButton(bool a_visible) { btnControl->setVisible(a_visible); } void CustomLineEditBase::setMarginLeft(bool a_visible) { wgtMarginLeft->setVisible(a_visible); } void CustomLineEditBase::setMarginRight(bool a_visible) { wgtMarginRight->setVisible(a_visible); } void CustomLineEditBase::setWrongState(bool a_wrong) { Utils::setPropertyAndUpdateStyle(this, Properties::WRONG,a_wrong); } void CustomLineEditBase::focusOutEvent(QFocusEvent *e) { Utils::setPropertyAndUpdateStyle(this, Properties::ACTIVE,false); if(!text().isEmpty()) { Utils::setPropertyAndUpdateStyle(this, Properties::FILLED,true); } else { Utils::setPropertyAndUpdateStyle(this, Properties::FILLED,false); } QLineEdit::focusOutEvent(e); } void CustomLineEditBase::inputMethodEvent(QInputMethodEvent *event) { setVisibleButton(true); Utils::setPropertyAndUpdateStyle(this, Properties::FILLED,false); Utils::setPropertyAndUpdateStyle(this, Properties::ACTIVE,true); QLineEdit::inputMethodEvent(event); }