#include <QtGui>

#include "mainwindow.h"

MainWindow::MainWindow()
{
    layout = new QVBoxLayout;
    card = new QLineEdit;
    tel = new QLineEdit;
    cardexample = new QLabel(tr("For example: ABCD-1234-1234"));
    telexample = new QLabel(tr("For example: +7(495)1231212"));
    cardresult = new QLabel(tr("Intermediate"));
    telresult = new QLabel(tr("Intermediate"));
    QRegExp rxcard("^[A-Z]{4}\\-[0-9]{4}\\-[0-9]{4}$");
    QRegExp rxtel("^\\+\\d{1,2}\\(\\d{3,5}\\)\\d{2,7}$");
    cardvalidator = new QRegExpValidator(rxcard, this);
    telvalidator = new QRegExpValidator(rxtel, this);
    card->setValidator(cardvalidator);
    tel->setValidator(telvalidator);
    layout->addWidget(cardexample);
    layout->addWidget(card);
    layout->addWidget(cardresult);
    layout->addWidget(telexample);
    layout->addWidget(tel);
    layout->addWidget(telresult);
    setLayout(layout);
    resize(sizeHint());
    QObject::connect(card, SIGNAL(textChanged (const QString &)), this, SLOT(checkcard(const QString &)));
    QObject::connect(tel, SIGNAL(textChanged (const QString &)), this, SLOT(checktel(const QString &)));
}

void MainWindow::checkcard(const QString &text)
{
    int pos = 0;
    QString numtext = text;
    if (cardvalidator->validate(numtext, pos) == 1) cardresult->setText(tr("Intermediate"));
    if (cardvalidator->validate(numtext, pos) == 2) cardresult->setText(tr("Acceptable"));
}

void MainWindow::checktel(const QString &text)
{
    int pos = 0;
    QString numtext = text;
    if (telvalidator->validate(numtext, pos) == 1) telresult->setText(tr("Intermediate"));
    if (telvalidator->validate(numtext, pos) == 2) telresult->setText(tr("Acceptable"));
}

