#include "SystemSettingForm.h" #include "ui_SystemSettingForm.h" #include #include #include #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" 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!")); } }