From 564ef17f097c5b87f1ce80b20e47ca1e07545274 Mon Sep 17 00:00:00 2001 From: sunwen Date: Thu, 9 May 2024 17:38:48 +0800 Subject: [PATCH] Add MppsSettingsDialog mpps open mode. --- src/dialogs/DicomSettingsArea.cpp | 46 ++++++++++++++++++++++++++++++ src/dialogs/DicomSettingsArea.h | 6 ++++ src/dialogs/MppsSettingsDialog.cpp | 2 ++ src/json/jsonobject.cpp | 12 ++++++++ src/json/jsonobject.h | 4 +++ 5 files changed, 70 insertions(+) diff --git a/src/dialogs/DicomSettingsArea.cpp b/src/dialogs/DicomSettingsArea.cpp index 6e1c650..0655422 100644 --- a/src/dialogs/DicomSettingsArea.cpp +++ b/src/dialogs/DicomSettingsArea.cpp @@ -2,10 +2,13 @@ #include "ui_DicomSettingsArea.h" #include "utilities/InputFormatValidator.h" +#include "components/ImageSwitch.h" +#include "json/jsonobject.h" DicomSettingsArea::DicomSettingsArea(QWidget *aParent) : QWidget(aParent) , mUI(new Ui::DicomSettingsArea) + , mMppsOpen(nullptr) { mUI->setupUi(this); mUI->mServerPort->setObjectName("DicomSettingsLabel"); @@ -67,3 +70,46 @@ QString DicomSettingsArea::getServerAETitle() return mUI->mServerAETitleEdit->text(); } +void DicomSettingsArea::setEnable(bool aIsEnable) +{ + mUI->mMyAETitleEdit->setEnabled(aIsEnable); + mUI->mServerAETitleEdit->setEnabled(aIsEnable); + mUI->mServerIpAddressEdit->setEnabled(aIsEnable); + mUI->mServerPortEdit->setEnabled(aIsEnable); +} + +void DicomSettingsArea::setMppsMode() +{ + for (int i = mUI->gridLayout->count() - 1; i >= 0; --i) + { + int r, c, rs, cs; + mUI->gridLayout->getItemPosition(i, &r, &c, &rs, &cs); + mUI->gridLayout->addWidget(mUI->gridLayout->itemAt(i)->widget(), r + 1, c, rs, cs); + } + QLabel* mppsLabel = new QLabel(this); + mppsLabel->setText("MPPS"); + mMppsOpen = new ImageSwitch(this); + mUI->gridLayout->addWidget(mppsLabel, 0 , 0); + mUI->gridLayout->addWidget(mMppsOpen, 0 , 1); + bool isMppsOpen = JsonObject::Instance()->getMppsOpen(); + if(isMppsOpen) + { + mMppsOpen->setChecked(true); + setEnable(false); + } + connect(mMppsOpen, &ImageSwitch::clicked, [this]() + { + bool isMppsOpen = mMppsOpen->getChecked(); + setEnable(!isMppsOpen); + }); +} + +bool DicomSettingsArea::getMppsIsOpen() +{ + if(nullptr != mMppsOpen) + { + return mMppsOpen->getChecked(); + } + return false; +} + diff --git a/src/dialogs/DicomSettingsArea.h b/src/dialogs/DicomSettingsArea.h index 3404e70..57fe199 100644 --- a/src/dialogs/DicomSettingsArea.h +++ b/src/dialogs/DicomSettingsArea.h @@ -8,6 +8,8 @@ namespace Ui class DicomSettingsArea; } +class ImageSwitch; + class DicomSettingsArea : public QWidget { Q_OBJECT @@ -22,14 +24,18 @@ public: QString getServerPort(); QString getMyAETitle(); QString getServerAETitle(); + bool getMppsIsOpen(); void setServerIpAddress(const QString& aValue); void setServerPort(const QString& aValue); void setMyAETitle(const QString& aValue); void setServerAETitle(const QString& aValue); + void setEnable(bool aIsEnable); + void setMppsMode(); private: Ui::DicomSettingsArea* mUI; + ImageSwitch* mMppsOpen; }; #endif // DICOMSETTINGSAREA_H diff --git a/src/dialogs/MppsSettingsDialog.cpp b/src/dialogs/MppsSettingsDialog.cpp index c10feae..fe2cc3e 100644 --- a/src/dialogs/MppsSettingsDialog.cpp +++ b/src/dialogs/MppsSettingsDialog.cpp @@ -51,6 +51,7 @@ void MppsSettingsDialog::initConfig() mSettingsArea->setServerIpAddress(serverInfo.ip); mSettingsArea->setMyAETitle(serverInfo.name); mSettingsArea->setServerPort(serverInfo.port); + mSettingsArea->setMppsMode(); } bool MppsSettingsDialog::updateReferenceData() @@ -103,6 +104,7 @@ bool MppsSettingsDialog::updateReferenceData() serverInfo.name = myAETitle; serverInfo.port = serverPort; JsonObject::Instance()->setServer(JsonObject::MPPS, serverInfo); + JsonObject::Instance()->setMppsOpen(mSettingsArea->getMppsIsOpen()); return true; } diff --git a/src/json/jsonobject.cpp b/src/json/jsonobject.cpp index 6a7927e..4517b09 100644 --- a/src/json/jsonobject.cpp +++ b/src/json/jsonobject.cpp @@ -92,6 +92,7 @@ void JsonObject::init() mMppsHost.ip = QString(getJsonString("mpps", "ip")); mMppsHost.name = QString(getJsonString("mpps", "name")); mMppsHost.port = QString(getJsonString("mpps", "port")); + mMppsOpen = getBool("mpps","open"); mDefaultIpAddress.ip = QString(getJsonString("address", "ip")); mDefaultIpAddress.mask = QString(getJsonString("address", "mask")); @@ -629,3 +630,14 @@ int JsonObject::getPatientListExpireDays() { return mPatientListExpireDays; } + +bool JsonObject::getMppsOpen() +{ + return mMppsOpen; +} + +void JsonObject::setMppsOpen(bool aIsOpen) +{ + mMppsOpen = aIsOpen; + setBool("mpps","open", aIsOpen, true); +} diff --git a/src/json/jsonobject.h b/src/json/jsonobject.h index a94ff87..22aaef4 100644 --- a/src/json/jsonobject.h +++ b/src/json/jsonobject.h @@ -102,6 +102,9 @@ public: bool getScreenSaverMode(); void setScreenSaverMode(bool aIsOpen); + bool getMppsOpen(); + void setMppsOpen(bool aIsOpen); + const char* getEmptyScanID(); void setEmptyScanID(const char* id); @@ -178,6 +181,7 @@ private: bool mCompleteNotify; bool mAnonymousMode; bool mScreenSaverMode; + bool mMppsOpen;