Skip to content
Snippets Groups Projects
CustomLineEditBase.cpp 2.13 KiB
Newer Older
#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);
        Utils::setPropertyAndUpdateStyle(this, Properties::FILLED,false);
konstantin.kukharenko's avatar
konstantin.kukharenko committed
    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);