#include "CustomLineEdit.h"

CustomLineEdit::CustomLineEdit(QWidget *parent):CustomLineEditBase (parent)
{

    connect(m_btnControl,&QPushButton::clicked,[=]{
        this->clear();
        setVisibleButton(false);
        Utils::setPropertyAndUpdateStyle(this, Properties::STATE,"");
    });
}

    void CustomLineEdit::setErrorLine(bool a_error)
    {
        if(a_error)
        {
            Utils::setPropertyAndUpdateStyle(this, Properties::STATE,"error");
            Utils::setPropertyAndUpdateStyle(m_btnControl, Properties::STATE,"error");
        }
        else
        {
            if(!text().isEmpty())
            {
                Utils::setPropertyAndUpdateStyle(this, Properties::STATE,"endEdit");
            }
            else
            {
                Utils::setPropertyAndUpdateStyle(this, Properties::STATE,"");
            }

            Utils::setPropertyAndUpdateStyle(m_btnControl, Properties::STATE,"");

        }
    }

bool CustomLineEdit::event(QEvent * event)
{
    ///When you start typing , a button appears .
    if(event->type() == QEvent::InputMethod)
    {
        setVisibleButton(true);
        Utils::setPropertyAndUpdateStyle(this, Properties::STATE,"");
    }
    ///If you lose focus if the text is there then the color changes to endEdit if empty then by default.
    if(event->type() == QEvent::FocusOut)
    {
        if(!text().isEmpty())
        {
            Utils::setPropertyAndUpdateStyle(this, Properties::STATE,"endEdit");
        }
        else
        {
            Utils::setPropertyAndUpdateStyle(this, Properties::STATE,"");
        }
    }
    return QLineEdit::event(event);
}