193 lines
6.5 KiB
C++
193 lines
6.5 KiB
C++
#include "SystemSettingForm.h"
|
|
#include "ui_SystemSettingForm.h"
|
|
|
|
#include <QPushButton>
|
|
#include <QToolButton>
|
|
#include <QGridLayout>
|
|
#include <QThread>
|
|
|
|
#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);
|
|
}
|