Refactor forms/settings/ package.

This commit is contained in:
sunwen
2022-06-14 18:04:44 +08:00
parent df7676b8f0
commit 487adba746
17 changed files with 1048 additions and 1084 deletions

View File

@@ -0,0 +1,194 @@
#include "SystemSettingForm.h"
#include "ui_SystemSettingForm.h"
#include <QPushButton>
#include <QToolButton>
#include <QGridLayout>
#include "dialogs/SelectDialog.h"
#include "network/NetworkCfgDialog.h"
#include "network/DicomCfgDialog.h"
#include "network/GetAdminPsw.h"
#include "json/jsonobject.h"
#include "event/EventCenter.h"
#include "device/DeviceManager.h"
#include "json/cmdhelper.h"
#include "components/ImageSwitch.h"
SystemSettingForm::SystemSettingForm(QWidget* parent)
: QWidget(parent)
, mUI(new Ui::SystemSettingForm)
, mProtocalSelectDialog(new SelectDialog(this))
, mFilterSelectDialog(new SelectDialog(this))
, mDiskInfoCaller(nullptr)
, mDiskSize(0)
, mDiskUsedSize(0)
, mDiskSizeFlag(false)
, mDiskUsedSizeFlag(false)
{
mUI->setupUi(this);
mProtocalSelectDialog->setWindowModality(Qt::WindowModal);
mFilterSelectDialog->setWindowModality(Qt::WindowModal);
mUI->lbl_size->setText(tr("Loading..."));
mUI->lbl_used->setText(tr("Loading..."));
//style init
mUI->btn_dicom->setIcon(QIcon(":/icons/dicomsettings.png"));
mUI->btn_dicom->setIconSize(QSize(80, 80));
mUI->btn_network->setIcon(QIcon(":/icons/networksettings.png"));
mUI->btn_network->setIconSize(QSize(80, 80));
mUI->swt_verify->setChecked(true);
mUI->lbl_verify->setFixedWidth(100);
//data init
mUI->btnPro->setText(JsonObject::Instance()->defaultProtocal());
mUI->btnPro->setObjectName("BigBtn");
mUI->btnFlt->setText(JsonObject::Instance()->defaultFilter());
mUI->btnFlt->setObjectName("BigBtn");
QGridLayout* gridLayout = (QGridLayout*)mUI->block10->layout();
auto scanConfirmButton = new ImageSwitch(this);
auto scanConfirmLabel = new QLabel(this);
scanConfirmLabel->setText("Scan Confirm");
gridLayout->addWidget(scanConfirmButton, 4, 2, 1, 1);
gridLayout->addWidget(scanConfirmLabel, 4, 0, 1, 1);
scanConfirmButton->setChecked(JsonObject::Instance()->getScanConfirm());
QFrame* line5 = new QFrame(this);
line5->setFrameShape(QFrame::HLine);
line5->setFrameShadow(QFrame::Sunken);
gridLayout->addWidget(line5, 5, 0);
auto scanCompleteButton = new ImageSwitch(this);
auto scanCompleteLabel = new QLabel(this);
scanCompleteLabel->setText("Complete Notify");
gridLayout->addWidget(scanCompleteButton, 6, 2, 1, 1);
gridLayout->addWidget(scanCompleteLabel, 6, 0, 1, 1);
scanCompleteButton->setChecked(JsonObject::Instance()->getCompleteNotify());
QFrame* line6 = new QFrame(this);
line6->setFrameShape(QFrame::HLine);
line6->setFrameShadow(QFrame::Sunken);
gridLayout->addWidget(line6, 7, 0);
mDiskInfoCaller = QThread::create([=]()
{
double disksize = 0;
mDiskSizeFlag = cmdHelper::Instance()->getDiskSize(disksize);
mDiskSize = disksize;
updateStorageSize();
while (true)
{
double duse = 0;
mDiskUsedSizeFlag = cmdHelper::Instance()->getDiskUsed(duse);
mDiskUsedSize = duse;
updateStorageUsed();
QMetaObject::invokeMethod(mUI->batIcon, "startAnimation", Qt::QueuedConnection);
QThread::msleep(30000);
}
});
mDiskInfoCaller->start();
//connection
connect(mUI->swt_verify, &ImageSwitch::clicked, [=]() {
if (mUI->swt_verify->getChecked())
{
////
}
});
connect(scanConfirmButton, &ImageSwitch::clicked, [=]() {
JsonObject::Instance()->setScanConfirm(scanConfirmButton->getChecked());
});
connect(scanCompleteButton, &ImageSwitch::clicked, [=]() {
JsonObject::Instance()->setCompleteNotify(scanCompleteButton->getChecked());
});
connect(mUI->btn_network, &QToolButton::clicked, [=]() {
GetAdminPsw dialog(this);
if (dialog.exec() == QDialog::Accepted)
{
JsonObject::Instance()->setPassword(dialog.getPsw());
NetworkCfgDialog dia(this);
dia.setWindowModality(Qt::WindowModal);
dia.exec();
}
});
connect(mUI->btn_dicom, &QToolButton::clicked, [=]() {
DicomCfgDialog dia(this);
dia.setWindowModality(Qt::WindowModal);
dia.exec();
});
connect(mUI->btnPro, &QPushButton::clicked, [=]()
{
mProtocalSelectDialog->setValues(JsonObject::Instance()->protocals());
mProtocalSelectDialog->setSelectedValue(JsonObject::Instance()->defaultProtocal());
if (mProtocalSelectDialog->exec() == QDialog::Accepted)
{
QString pro = mProtocalSelectDialog->getSelectedValue();
//take effect
JsonObject::Instance()->setDefaultProtocal(pro);
mUI->btnPro->setText(JsonObject::Instance()->defaultProtocal());
}
});
connect(mUI->btnFlt, &QPushButton::clicked, [=]()
{
mFilterSelectDialog->setValues(JsonObject::Instance()->worklistFilters());
mFilterSelectDialog->setSelectedValue(JsonObject::Instance()->defaultFilter());
if (mFilterSelectDialog->exec() == QDialog::Accepted)
{
QString flt = mFilterSelectDialog->getSelectedValue();
//take effect
JsonObject::Instance()->setDefaultFilter(flt);
mUI->btnFlt->setText(JsonObject::Instance()->defaultFilter());
}
});
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]()
{
mUI->retranslateUi(this);
mUI->btnPro->setText(JsonObject::Instance()->defaultProtocal());
mUI->btnFlt->setText(JsonObject::Instance()->defaultFilter());
mUI->swt_verify->setChecked(true);
updateStorageSize();
updateStorageUsed();
});
}
SystemSettingForm::~SystemSettingForm()
{
mDiskInfoCaller->terminate();
delete mDiskInfoCaller;
}
void SystemSettingForm::updateStorageUsed()
{
if (mDiskUsedSizeFlag)
{
mUI->batIcon->setValue(mDiskUsedSize);
mUI->lbl_used->setText(tr("used:\t%1G").arg(mDiskUsedSize));
}
else
{
mUI->lbl_used->setText(tr("Get disk used size fail!"));
}
}
void SystemSettingForm::updateStorageSize()
{
//bool flag = AppGlobalValues::StorageFlag();
if (mDiskSizeFlag)
{
//double total_size = AppGlobalValues::StorageSize();
mUI->batIcon->setMaxValue(mDiskSize);
double aValue = (mDiskSize - JsonObject::Instance()->storageAlarmSize().toDouble()) / mDiskSize;
mUI->batIcon->setAlarmValue(aValue);
mUI->lbl_size->setText(tr("total:\t%1G").arg(mDiskSize));
}
else
{
mUI->lbl_size->setText(tr("Get disk total size fail!"));
}
}