Refactor utilities package.

This commit is contained in:
sunwen
2022-06-13 13:26:49 +08:00
parent 160b0b4f4b
commit 589262781d
15 changed files with 556 additions and 583 deletions

View File

@@ -17,100 +17,100 @@
GeneralForm::GeneralForm(QWidget* parent) : QWidget(parent)
{
layout = new QVBoxLayout(this);
QWidget* lanHeader = new QWidget(this);
layout->addWidget(lanHeader);
layout = new QVBoxLayout(this);
QWidget* lanHeader = new QWidget(this);
layout->addWidget(lanHeader);
QHBoxLayout* lanHeaderLayout = new QHBoxLayout(lanHeader);
QLabel* lbl_lan = new QLabel(tr("Language"));
lanHeaderLayout->addWidget(lbl_lan);
QHBoxLayout* lanHeaderLayout = new QHBoxLayout(lanHeader);
QLabel* lbl_lan = new QLabel(tr("Language"));
lanHeaderLayout->addWidget(lbl_lan);
QPushButton* btnLan = new QPushButton(lanHeader);
lanHeaderLayout->addWidget(btnLan);
lanHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
QPushButton* btnLan = new QPushButton(lanHeader);
lanHeaderLayout->addWidget(btnLan);
lanHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
QWidget* instHeader = new QWidget(this);
layout->addWidget(instHeader);
QHBoxLayout* instHeaderLayout = new QHBoxLayout(instHeader);
QLabel* lbl_ins = new QLabel(tr("Institution Name"));
instHeaderLayout->addWidget(lbl_ins);
QLineEdit* instName = new QLineEdit(instHeader);
instName->setMaximumSize(QSize(300, 32768));
instHeaderLayout->addWidget(instName);
instHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Fixed));
QWidget* instHeader = new QWidget(this);
layout->addWidget(instHeader);
QHBoxLayout* instHeaderLayout = new QHBoxLayout(instHeader);
QLabel* lbl_ins = new QLabel(tr("Institution Name"));
instHeaderLayout->addWidget(lbl_ins);
QLineEdit* instName = new QLineEdit(instHeader);
instName->setMaximumSize(QSize(300, 32768));
instHeaderLayout->addWidget(instName);
instHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Fixed));
QLabel* lbl_insaddr = new QLabel(tr("Institution Addr"));
instHeaderLayout->addWidget(lbl_insaddr);
QLineEdit* instAddr = new QLineEdit(instHeader);
instHeaderLayout->addWidget(instAddr);
instAddr->setMaximumSize(QSize(300, 32768));
instHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
QLabel* lbl_insaddr = new QLabel(tr("Institution Addr"));
instHeaderLayout->addWidget(lbl_insaddr);
QLineEdit* instAddr = new QLineEdit(instHeader);
instHeaderLayout->addWidget(instAddr);
instAddr->setMaximumSize(QSize(300, 32768));
instHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
QWidget* lockHeader = new QWidget(this);
layout->addWidget(lockHeader);
QHBoxLayout* lockHeaderLayout = new QHBoxLayout(lockHeader);
QWidget* lockHeader = new QWidget(this);
layout->addWidget(lockHeader);
QHBoxLayout* lockHeaderLayout = new QHBoxLayout(lockHeader);
QLabel* lbl_lock = new QLabel(tr("Lock Screen"));
lockHeaderLayout->addWidget(lbl_lock);
QLabel* lbl_lock = new QLabel(tr("Lock Screen"));
lockHeaderLayout->addWidget(lbl_lock);
QLineEdit* lockTime = new QLineEdit(lockHeader);
lockTime->setMaximumSize(QSize(300, 32768));
lockHeaderLayout->addWidget(lockTime);
QLineEdit* lockTime = new QLineEdit(lockHeader);
lockTime->setMaximumSize(QSize(300, 32768));
lockHeaderLayout->addWidget(lockTime);
QLabel* ss = new QLabel(tr("s"));
lockHeaderLayout->addWidget(ss);
lockHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
QLabel* ss = new QLabel(tr("s"));
lockHeaderLayout->addWidget(ss);
lockHeaderLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
//...
layout->addSpacerItem(new QSpacerItem(20, 300, QSizePolicy::Minimum, QSizePolicy::Expanding));
//...
layout->addSpacerItem(new QSpacerItem(20, 300, QSizePolicy::Minimum, QSizePolicy::Expanding));
//init
btnLan->setText(JsonObject::Instance()->defaultLanguage());
instName->setText(JsonObject::Instance()->institutionName());
instAddr->setText(JsonObject::Instance()->institutionAddr());
lockTime->setText(JsonObject::Instance()->lockScreenTimeout());
//init
btnLan->setText(JsonObject::Instance()->defaultLanguage());
instName->setText(JsonObject::Instance()->institutionName());
instAddr->setText(JsonObject::Instance()->institutionAddr());
lockTime->setText(JsonObject::Instance()->lockScreenTimeout());
//connection
connect(instName, &QLineEdit::textChanged, [=](const QString& str)
{
JsonObject::Instance()->setInstitutionName(str);
});
//connection
connect(instName, &QLineEdit::textChanged, [=](const QString& str)
{
JsonObject::Instance()->setInstitutionName(str);
});
connect(instAddr, &QLineEdit::textChanged, [=](const QString& str)
{
JsonObject::Instance()->setInstitutionAddr(str);
});
connect(lockTime, &QLineEdit::textChanged, [=](const QString& str)
{
//take effect
JsonObject::Instance()->setLockScreenTimeout(str);
Locker::Instance()->setTimer(JsonObject::Instance()->lockerCount());
connect(instAddr, &QLineEdit::textChanged, [=](const QString& str)
{
JsonObject::Instance()->setInstitutionAddr(str);
});
connect(lockTime, &QLineEdit::textChanged, [=](const QString& str)
{
//take effect
JsonObject::Instance()->setLockScreenTimeout(str);
Locker::getInstance()->setTimer(JsonObject::Instance()->lockerCount());
});
});
connect(btnLan, &QPushButton::clicked, [=]() {
if (!dialog) {
dialog = new SelectDialog(this);
dialog->setWindowModality(Qt::WindowModal);
}
connect(btnLan, &QPushButton::clicked, [=]() {
if (!dialog)
{
dialog = new SelectDialog(this);
dialog->setWindowModality(Qt::WindowModal);
}
dialog->setValues(JsonObject::Instance()->language());
dialog->setSelectedValue(JsonObject::Instance()->defaultLanguage());
if (dialog->exec() == QDialog::Accepted)
{
QString lan = dialog->getSelectedValue();
dialog->setSelectedValue(JsonObject::Instance()->defaultLanguage());
if (dialog->exec() == QDialog::Accepted)
{
QString lan = dialog->getSelectedValue();
//take effect
JsonObject::Instance()->setDefaultLanguage(lan);
LanguageSwitcher::Instance()->setDefaultLanguage(lan);
btnLan->setText(JsonObject::Instance()->defaultLanguage());
//take effect
JsonObject::Instance()->setDefaultLanguage(lan);
LanguageSwitcher::getInstance()->setDefaultLanguage(lan);
btnLan->setText(JsonObject::Instance()->defaultLanguage());
}
});
}
});
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() {
lbl_lan->setText(tr("Language"));
lbl_ins->setText(tr("Institution Addr"));
lbl_insaddr->setText(tr("Institution Addr"));
lbl_lock->setText(tr("Lock Screen"));
});
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() {
lbl_lan->setText(tr("Language"));
lbl_ins->setText(tr("Institution Addr"));
lbl_insaddr->setText(tr("Institution Addr"));
lbl_lock->setText(tr("Lock Screen"));
});
}