#include <QLineEdit>
#include <QLabel>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QGridLayout>
#include <QIntValidator>
#include <QRegExpValidator>
#include "ByteConverterDialog.h"
ByteConverterDialog::ByteConverterDialog()
{
mainLayout->addLayout(editLayout);
mainLayout->addStretch();
mainLayout->addLayout(buttonLayout);
editLayout->addWidget(decLabel,0,0);
editLayout->addWidget(decEdit,0,1);
editLayout->addWidget(hexLabel,1,0);
editLayout->addWidget(hexEdit,1,1);
editLayout->addWidget(binLabel,2,0);
editLayout->addWidget(binEdit,2,1);
buttonLayout->addStretch();
buttonLayout->addWidget(exitButton);
exitButton->setDefault(true);
this->setWindowTitle("Byte Converter");
decEdit->setValidator(decValidator);
hexEdit->setValidator(hexValidator);
binEdit->setValidator(binValidator);
connect(exitButton,SIGNAL(clicked()),this,SLOT(close()));
connect(decEdit,
SIGNAL(textChanged
(QString)),
this,
SLOT(decChanged
(QString)));
connect(hexEdit,
SIGNAL(textChanged
(QString)),
this,
SLOT(hexChanged
(QString)));
connect(binEdit,
SIGNAL(textChanged
(QString)),
this,
SLOT(binChanged
(QString)));
}
void ByteConverterDialog::decChanged(const QString& newValue)
{
bool ok;
int num = newValue.toInt(&ok);
if(ok)
{
hexEdit
->setText
(QString::number(num,
16));
binEdit
->setText
(QString::number(num,
2));
}
else
{
hexEdit->setText("");
binEdit->setText("");
}
}
void ByteConverterDialog::hexChanged(const QString& newValue)
{
bool ok;
int num = newValue.toInt(&ok);
if(ok)
{
decEdit
->setText
(QString::number(num
));
binEdit
->setText
(QString::number(num,
2));
}
else
{
decEdit->setText("");
binEdit->setText("");
}
}
void ByteConverterDialog::binChanged(const QString& newValue)
{
bool ok;
int num = newValue.toInt(&ok);
if(ok)
{
decEdit
->setText
(QString::number(num
));
hexEdit
->setText
(QString::number(num,
16));
}
else
{
decEdit->setText("");
hexEdit->setText("");
}
}