Skip to content
Snippets Groups Projects
CustomLineEditBase.cpp 1.17 KiB
Newer Older
#include "CustomLineEditBase.h"
#include <QDebug>
CustomLineEditBase::CustomLineEditBase(QWidget* parent):QLineEdit (parent)
{
    m_btnControl = new QPushButton(this);
    m_lblIcon = new QLabel(this);

    m_btnControl->setObjectName("control");
    m_lblIcon->setObjectName("image");

    m_btnControl->setVisible(false);
    m_lblIcon->setVisible(false);

    m_hblLineEdit = new QHBoxLayout(this);
    m_hblLineEdit->addWidget(m_lblIcon,0,Qt::AlignLeft);
    m_hblLineEdit->addWidget(m_btnControl,1,Qt::AlignRight);

    m_hblLineEdit->setSpacing(0);
    m_hblLineEdit->setMargin(0);

    this->setLayout(m_hblLineEdit);

}

void CustomLineEditBase::setVisibleIcon(bool &a_visible)
{
    m_lblIcon->setVisible(a_visible);

    int a_left,a_top,a_right,a_bottom;
    this->getTextMargins(&a_left,&a_top,&a_right,&a_bottom);

    this->setTextMargins(m_lblIcon->geometry().width(),a_top,a_right,a_bottom);
}

void CustomLineEditBase::setVisibleButton(bool a_visible)
{
    m_btnControl->setVisible(a_visible);

    int a_left,a_top,a_right,a_bottom;
    this->getTextMargins(&a_left,&a_top,&a_right,&a_bottom);

    this->setTextMargins(a_left,a_top,m_btnControl->geometry().width(),a_bottom);
}