#include "ByteConvertorDialog.h"
#include<QLabel>
#include<QLineEdit>
#include<QPushButton>
#include<QGridLayout>
#include<QVBoxLayout>
#include<QHBoxLayout>
#include<QValidator>
ByteConvertorDialog::ByteConvertorDialog()
{
mainLayout -> addLayout(editLayout);
mainLayout -> addStretch();
mainLayout ->addLayout(pushButton);
editLayout ->addWidget(bin,0,0);
editLayout ->addWidget(dec,1,0);
editLayout ->addWidget(hex,2,0);
editLayout ->addWidget(binEdit,0,1);
editLayout ->addWidget(decEdit,1,1);
editLayout ->addWidget(hexEdit,2,1);
pushButton ->addStretch();
pushButton ->addWidget(button);
button ->setDefault(true);
decEdit->setValidator(decValidator);
hexEdit->setValidator(hexValidator);
binEdit->setValidator(binValidator);
connect(button,SIGNAL(clicked()),this,SLOT(accept()));
connect(decEdit,SIGNAL(textEdited(const QString&)),this,SLOT(decChanged(const QString&)));
connect(binEdit,SIGNAL(textEdited(const QString&)),this,SLOT(binChanged(const QString&)));
connect(hexEdit,SIGNAL(textEdited(const QString&)),this,SLOT(hexChanged(const QString&)));
}
void ByteConvertorDialog
::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 ByteConvertorDialog
::binChanged(const QString &newValue
) {
bool ok;
int num= newValue.toInt(&ok);
if (ok) {
hexEdit
->setText
(QString::number(num,
16));
decEdit
->setText
(QString::number(num
));
} else {
hexEdit->setText("");
decEdit->setText("");
}
}
void ByteConvertorDialog
::hexChanged(const QString &newValue
) {
bool ok;
int num= newValue.toInt(&ok);
if (ok) {
decEdit
->setText
(QString::number(num,
10));
binEdit
->setText
(QString::number(num,
2));
} else {
decEdit->setText("");
binEdit->setText("");
}
}