#include "LineEditWidget.h"
#include <QRegExpValidator>
#include "DoubleValidator.h"

const QString LineEditWidget::type = "LineEdit";

LineEditWidget::LineEditWidget(QWidget *parent)
    :QLineEdit(parent)
{
}

void LineEditWidget::setIntValidator(int min, int max)
{
	QValidator* validator = new QIntValidator(min, max, this);
	setValidator(validator);
}

void LineEditWidget::setDoubleValidator(double min, double max, int precision)
{
	QValidator* validator = new DoubleValidator(min, max, precision, this);
	setValidator(validator);
}

void LineEditWidget::setRegExpValidator(const QString& regExp)
{
	QRegExp re(regExp);
	setValidator(new QRegExpValidator(re, this));
}

QVariant LineEditWidget::getValue() const
{
    return text().trimmed();
}

void LineEditWidget::setValue(const QVariant &value)
{
	if (value.type() != QMetaType::QString && value.toDouble() == 0)
		setText("");
	else 
		setText(value.toString());
}

bool LineEditWidget::isValueNull() const
{
    return text().trimmed().isEmpty();
}

void LineEditWidget::clearInput()
{
    clear();
}

