#include "SystemSettingForm.h" #include "ui_SystemSettingForm.h" #include #include #include #include #include "dialogs/DialogManager.h" #include "dialogs/MultyMessageDialogManager.h" #include "json/jsonobject.h" #include "event/EventCenter.h" #include "recon/ReconManager.h" #include "json/cmdhelper.h" #include "components/ListBox.h" SystemSettingForm::SystemSettingForm(QWidget* parent) : QWidget(parent) , mUI(new Ui::SystemSettingForm) , mDiskInfoCaller(nullptr) , mDiskSize(0) , mDiskUsedSize(0) , mDiskSizeFlag(false) , mDiskUsedSizeFlag(false) { mUI->setupUi(this); mUI->lbl_size->setText(tr("Loading...")); mUI->lbl_used->setText(tr("Loading...")); //style init mUI->btnDICOM->setObjectName("btnDICOM"); mUI->btnNetwork->setObjectName("btnNetwork"); mUI->swt_verify->setChecked(true); mUI->lbl_verify->setFixedWidth(100); //data init mUI->btnPro->setText(JsonObject::Instance()->defaultProtocal()); mUI->btnPro->setObjectName("ListBox"); mUI->btnFlt->setText(JsonObject::Instance()->defaultFilter()); mUI->btnFlt->setObjectName("ListBox"); 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->btnNetwork, &QToolButton::clicked, [=]() { if (DialogManager::Default()->requestInputAdminPasswd() == QDialog::Accepted) { //JsonObject::Instance()->setPassword(dialog.getPsw()); DialogManager::Default()->requestEditNetworkConfig(); } }); connect(mUI->btnDICOM, &QToolButton::clicked, [&]() { if(DialogManager::Default()->requestEditDicomConfig() == QDialog::Accepted) { auto server = JsonObject::Instance()->getServer(JsonObject::PACS); emit pacsSettingsSaved(server.name, server.ae, server.ip, server.port.toInt()); } }); connect(mUI->btnPro, &QPushButton::clicked, [=]() { DialogResult result = DialogManager::Default()->requestSelectProtocal(); if (result.ResultCode == QDialog::Accepted) { QString pro = result.ResultData.toString(); //take effect JsonObject::Instance()->setDefaultProtocal(pro); mUI->btnPro->setText(JsonObject::Instance()->defaultProtocal()); } }); connect(mUI->btnFlt, &QPushButton::clicked, [=]() { DialogResult result = DialogManager::Default()->requestSelectFilter(); if (result.ResultCode == QDialog::Accepted) { QString flt = result.ResultData.toString(); //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(); }); connect(ReconManager::getInstance(), &ReconManager::setPacsSettingsResponsed, this, &SystemSettingForm::processPacsSettingsResponsed); connect(this, &SystemSettingForm::pacsSettingsSaved, ReconManager::getInstance(), &ReconManager::setPacsSettings, Qt::QueuedConnection); } SystemSettingForm::~SystemSettingForm() { 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!")); } } void SystemSettingForm::processPacsSettingsResponsed(bool aResult, const QVariant& aMessage) { MultyMessageDialogManager::getInstance()->raiseDialog(aMessage.toString(), aResult ? MessageLevel::Sucess : MessageLevel::Error); }