2022-07-19 14:15:00 +08:00
|
|
|
|
#include "DialogManager.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include <QApplication>
|
2022-07-28 16:27:51 +08:00
|
|
|
|
#include <QDebug>
|
2022-07-19 14:15:00 +08:00
|
|
|
|
|
|
|
|
|
|
#include "event/EventCenter.h"
|
|
|
|
|
|
#include "dialogs/GUIMessageDialog.h"
|
2022-07-20 16:45:33 +08:00
|
|
|
|
#include "dialogs/ChangePasswordFormDialog.h"
|
|
|
|
|
|
#include "dialogs/AccountFormDialog.h"
|
2022-07-28 16:27:51 +08:00
|
|
|
|
#include "dialogs/MultyMessageDialogManager.h"
|
2022-08-10 15:28:59 +08:00
|
|
|
|
#include "dialogs/EditPatientDialog.h"
|
|
|
|
|
|
#include "dialogs/AlertDialog.h"
|
|
|
|
|
|
#include "dialogs/DateSelectDialog.h"
|
2023-08-21 14:22:41 +08:00
|
|
|
|
#include "dialogs/TimeSelectDialog.h"
|
2022-08-10 15:28:59 +08:00
|
|
|
|
#include "dialogs/SelectDialog.h"
|
2022-09-29 17:36:55 +08:00
|
|
|
|
#include "dialogs/GetWorkListDialog.h"
|
2023-09-08 17:09:49 +08:00
|
|
|
|
#include "dialogs/PatientConfirmDialog.h"
|
2023-09-11 16:23:59 +08:00
|
|
|
|
#include "dialogs/AdminSPwdDialog.h"
|
2024-04-25 14:37:38 +08:00
|
|
|
|
#include "dialogs/WorklistSettingsDialog.h"
|
|
|
|
|
|
#include "dialogs/PacsSettingsDialog.h"
|
|
|
|
|
|
#include "dialogs/ReconSettingsDialog.h"
|
|
|
|
|
|
#include "dialogs/IpSettingsDialog.h"
|
|
|
|
|
|
#include "dialogs/MppsSettingsDialog.h"
|
2024-04-29 17:57:04 +08:00
|
|
|
|
#include "dialogs/StartScanProcessDialog.h"
|
2022-08-10 15:28:59 +08:00
|
|
|
|
|
|
|
|
|
|
#include "network/DicomCfgDialog.h"
|
|
|
|
|
|
#include "network/GetAdminPsw.h"
|
|
|
|
|
|
#include "network/NetworkCfgDialog.h"
|
|
|
|
|
|
#include "network/GetIPDialog.h"
|
|
|
|
|
|
#include "network/GetRouteDialog.h"
|
|
|
|
|
|
|
2024-04-01 16:02:40 +08:00
|
|
|
|
#include "dicom/WorkListManager.h"
|
|
|
|
|
|
|
2022-07-20 16:45:33 +08:00
|
|
|
|
#include "windows/LoginDialog.h"
|
2022-08-18 17:09:16 +08:00
|
|
|
|
#include "screensaver/ScreenSaverWindow.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "appvals/AppGlobalValues.h"
|
2022-08-10 15:28:59 +08:00
|
|
|
|
#include "json/jsonobject.h"
|
2023-03-31 11:37:26 +08:00
|
|
|
|
//#include "shimlib/ShimLib.h"
|
2022-07-20 16:45:33 +08:00
|
|
|
|
|
2022-08-10 15:28:59 +08:00
|
|
|
|
namespace
|
2022-07-28 16:27:51 +08:00
|
|
|
|
{
|
2022-08-10 15:28:59 +08:00
|
|
|
|
const int GUIMESSAGEDIALOG_OFFSET = 30;
|
2022-07-28 16:27:51 +08:00
|
|
|
|
}
|
2022-07-20 16:45:33 +08:00
|
|
|
|
|
|
|
|
|
|
DialogManager::DialogManager()
|
|
|
|
|
|
: QObject()
|
|
|
|
|
|
, mFunctionDialog(nullptr)
|
2022-08-18 17:09:16 +08:00
|
|
|
|
, mScreenSaverWindow(nullptr)
|
2022-08-10 15:28:59 +08:00
|
|
|
|
, mOperationMessageDialog(nullptr)
|
|
|
|
|
|
, mSyncDialog(nullptr)
|
2022-07-28 16:27:51 +08:00
|
|
|
|
, mTopWidget(nullptr)
|
2024-04-01 16:02:40 +08:00
|
|
|
|
, mGetWorkListDialog(nullptr)
|
2022-07-20 16:45:33 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2022-07-19 14:15:00 +08:00
|
|
|
|
|
2022-07-28 16:27:51 +08:00
|
|
|
|
void DialogManager::init(QWidget* aParent) {
|
2022-07-19 14:15:00 +08:00
|
|
|
|
connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise,this,&DialogManager::raiseDeviceError);
|
2022-08-10 15:28:59 +08:00
|
|
|
|
connect(EventCenter::Default(), &EventCenter::DeviceInfoRaise,this,&DialogManager::raiseDeviceInfo);
|
2022-07-19 14:15:00 +08:00
|
|
|
|
connect(EventCenter::Default(), &EventCenter::InvokeOperationStart,this,&DialogManager::invokeOperationStart);
|
|
|
|
|
|
connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress,this,&DialogManager::invokeOperationProgress);
|
|
|
|
|
|
connect(EventCenter::Default(), &EventCenter::InvokeOperationPending,this,&DialogManager::invokeOperationPending);
|
|
|
|
|
|
connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd,this,&DialogManager::invokeOperationEnd);
|
2024-04-01 16:02:40 +08:00
|
|
|
|
connect(EventCenter::Default(), &EventCenter::InputWorkListSearchValue,this,&DialogManager::receiveWorkListInput);
|
2022-07-28 16:27:51 +08:00
|
|
|
|
MultyMessageDialogManager::getInstance()->setDialogParent(aParent);
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mTopWidget = aParent;
|
2022-08-18 17:09:16 +08:00
|
|
|
|
mScreenSaverWindow = new ScreenSaverWindow();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2022-07-21 10:39:24 +08:00
|
|
|
|
//得考虑多线程的问题
|
|
|
|
|
|
void DialogManager::setTopWidget(QWidget* widget) {
|
2022-07-28 16:27:51 +08:00
|
|
|
|
std::lock_guard<std::mutex> lockGuard(mMutex);
|
|
|
|
|
|
if (nullptr == widget)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2022-08-10 15:28:59 +08:00
|
|
|
|
qDebug()<<"last top:"<<mTopWidget<<", new top:"<<widget;
|
2022-07-28 16:27:51 +08:00
|
|
|
|
mTopWidget = widget;
|
2022-07-21 10:39:24 +08:00
|
|
|
|
++mDialogCount;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DialogManager::releaseTopWidget(QWidget* expectedTopWidget) {
|
2022-07-28 16:27:51 +08:00
|
|
|
|
std::lock_guard<std::mutex> lockGuard(mMutex);
|
|
|
|
|
|
if (nullptr == expectedTopWidget)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (mTopWidget == expectedTopWidget){
|
|
|
|
|
|
mTopWidget = expectedTopWidget->parentWidget();
|
|
|
|
|
|
--mDialogCount;
|
2022-07-21 10:39:24 +08:00
|
|
|
|
}
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2022-08-10 15:28:59 +08:00
|
|
|
|
void DialogManager::requestLogin(QWidget* aParent)
|
2022-07-20 16:45:33 +08:00
|
|
|
|
{
|
|
|
|
|
|
//Login 直接最顶层模态
|
|
|
|
|
|
if (!mFunctionDialog){
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mFunctionDialog = new LoginDialog(aParent);
|
2023-08-31 14:26:54 +08:00
|
|
|
|
connect(mFunctionDialog, &LoginDialog::loginDialogShown, this, &DialogManager::loginDialogShown, Qt::QueuedConnection);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
}
|
2023-08-21 14:22:41 +08:00
|
|
|
|
|
|
|
|
|
|
if(mFunctionDialog->isRunning())
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2022-08-18 17:09:16 +08:00
|
|
|
|
setTopWidget(mFunctionDialog);
|
2022-07-21 10:39:24 +08:00
|
|
|
|
mFunctionDialog->setWindowModality(Qt::WindowModal);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
mFunctionDialog->exec();
|
|
|
|
|
|
while (QDialog::Accepted != mFunctionDialog->result())
|
|
|
|
|
|
{
|
|
|
|
|
|
mFunctionDialog->exec();
|
|
|
|
|
|
}
|
2022-08-18 17:09:16 +08:00
|
|
|
|
releaseTopWidget(mFunctionDialog);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DialogManager::requestScreenSaverPlay()
|
|
|
|
|
|
{
|
|
|
|
|
|
setFocusToTopDialog();
|
|
|
|
|
|
mScreenSaverWindow->play();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DialogManager::requestScreenSaverStop(bool aIsStopLocker)
|
|
|
|
|
|
{
|
|
|
|
|
|
mScreenSaverWindow->stop(aIsStopLocker);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2023-09-13 14:27:37 +08:00
|
|
|
|
DialogResult DialogManager::requestResetAdminPwd()
|
2023-09-11 16:23:59 +08:00
|
|
|
|
{
|
|
|
|
|
|
AdminSPwdDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
2023-09-13 14:27:37 +08:00
|
|
|
|
return DialogResult(ret, dialog.getNewPwd());
|
2023-09-11 16:23:59 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2022-07-20 16:45:33 +08:00
|
|
|
|
int DialogManager::requestAddAccount(QSqlTableModel* model) {
|
2022-08-10 15:28:59 +08:00
|
|
|
|
AccountFormDialog dialog(mTopWidget, New);
|
2022-07-21 10:39:24 +08:00
|
|
|
|
setTopWidget(&dialog);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
dialog.setReferenceModel(model);
|
|
|
|
|
|
int ret = dialog.exec();
|
2022-07-21 10:39:24 +08:00
|
|
|
|
releaseTopWidget(&dialog);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int DialogManager::requestEditSelfAccount() {
|
2022-08-10 15:28:59 +08:00
|
|
|
|
AccountFormDialog dialog(mTopWidget, Self);
|
2022-07-21 10:39:24 +08:00
|
|
|
|
setTopWidget(&dialog);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
2022-07-21 10:39:24 +08:00
|
|
|
|
releaseTopWidget(&dialog);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int DialogManager::requestEditAdminAccount(const QMap<QString, QVariant>& values) {
|
2022-08-10 15:28:59 +08:00
|
|
|
|
AccountFormDialog dialog(mTopWidget, Admin);
|
2022-07-21 10:39:24 +08:00
|
|
|
|
setTopWidget(&dialog);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
dialog.setAccountInformation(values);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
2022-07-21 10:39:24 +08:00
|
|
|
|
releaseTopWidget(&dialog);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DialogManager::requestChangePassword() {
|
2022-08-10 15:28:59 +08:00
|
|
|
|
ChangePasswordFormDialog dialog(mTopWidget);
|
2022-07-21 10:39:24 +08:00
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setGeometry(dialog.parentWidget()->geometry());
|
2022-07-20 16:45:33 +08:00
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
dialog.exec();
|
2022-07-21 10:39:24 +08:00
|
|
|
|
releaseTopWidget(&dialog);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2022-08-10 15:28:59 +08:00
|
|
|
|
int DialogManager::requestEditPatientInfo(PatientInformation* aPatientFrom, QSqlTableModel* aModel)
|
|
|
|
|
|
{
|
|
|
|
|
|
EditPatientDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
dialog.setPatientInformation(aPatientFrom);
|
|
|
|
|
|
dialog.setModel(aModel);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int DialogManager::requestAlertMessage(const QString& aMessage, DialogButtonMode aButtonMode, const QString& aTitle)
|
|
|
|
|
|
{
|
|
|
|
|
|
AlertDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setAlertMessage(aMessage);
|
|
|
|
|
|
if (!aTitle.isEmpty())
|
|
|
|
|
|
{
|
|
|
|
|
|
dialog.setTitle(aTitle);
|
|
|
|
|
|
}
|
|
|
|
|
|
dialog.setButtonMode(aButtonMode);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
2023-09-08 13:52:42 +08:00
|
|
|
|
if(dialog.parentWidget()->inherits("LoginDialog"))
|
|
|
|
|
|
{
|
|
|
|
|
|
dialog.setWindowFlags(dialog.windowFlags() | Qt::WindowStaysOnTopHint | Qt::BypassWindowManagerHint );
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-08-10 15:28:59 +08:00
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DialogResult DialogManager::requestSelectDate(const QString& aDate)
|
|
|
|
|
|
{
|
|
|
|
|
|
DateSelectDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setSelectedValue(aDate);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,dialog.getSelectedValue());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-08-21 14:22:41 +08:00
|
|
|
|
DialogResult DialogManager::requestSelectTime(const int& aSeconds)
|
|
|
|
|
|
{
|
|
|
|
|
|
TimeSelectDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setSelectedValue(aSeconds);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret, dialog.getTotalSeconds());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-08-10 15:28:59 +08:00
|
|
|
|
DialogResult DialogManager::requestSelectLanguage()
|
|
|
|
|
|
{
|
|
|
|
|
|
SelectDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
dialog.setValues(JsonObject::Instance()->language());
|
|
|
|
|
|
dialog.setSelectedValue(JsonObject::Instance()->defaultLanguage());
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,dialog.getSelectedValue());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DialogResult DialogManager::requestSelectProtocal()
|
|
|
|
|
|
{
|
|
|
|
|
|
SelectDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
dialog.setValues(JsonObject::Instance()->protocals());
|
|
|
|
|
|
dialog.setSelectedValue(JsonObject::Instance()->defaultProtocal());
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,dialog.getSelectedValue());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DialogResult DialogManager::requestSelectFilter()
|
|
|
|
|
|
{
|
|
|
|
|
|
SelectDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
dialog.setValues(JsonObject::Instance()->worklistFilters());
|
|
|
|
|
|
dialog.setSelectedValue(JsonObject::Instance()->defaultFilter());
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,dialog.getSelectedValue());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-25 14:37:38 +08:00
|
|
|
|
DialogResult DialogManager::requestSelectLockScreenTime()
|
|
|
|
|
|
{
|
|
|
|
|
|
SelectDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
dialog.setValues(JsonObject::Instance()->lockScreenTimes());
|
|
|
|
|
|
dialog.setSelectedValue(JsonObject::Instance()->defaultLockScreenTime());
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,dialog.getSelectedValue());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-08-10 15:28:59 +08:00
|
|
|
|
int DialogManager::requestEditDicomConfig()
|
|
|
|
|
|
{
|
|
|
|
|
|
DicomCfgDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-25 14:37:38 +08:00
|
|
|
|
int DialogManager::requestWorklistSettings()
|
|
|
|
|
|
{
|
|
|
|
|
|
WorklistSettingsDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int DialogManager::requestPacsSettings()
|
|
|
|
|
|
{
|
|
|
|
|
|
PacsSettingsDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int DialogManager::requestReconSettings()
|
|
|
|
|
|
{
|
|
|
|
|
|
ReconSettingsDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int DialogManager::requestMppsSettings()
|
|
|
|
|
|
{
|
|
|
|
|
|
MppsSettingsDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-09-20 10:09:57 +08:00
|
|
|
|
DialogResult DialogManager::requestInputAdminPasswd()
|
2022-08-10 15:28:59 +08:00
|
|
|
|
{
|
|
|
|
|
|
GetAdminPsw dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
2023-09-20 10:09:57 +08:00
|
|
|
|
return DialogResult(ret, dialog.getPsw());
|
2022-08-10 15:28:59 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int DialogManager::requestEditNetworkConfig()
|
|
|
|
|
|
{
|
2024-04-25 14:37:38 +08:00
|
|
|
|
// NetworkCfgDialog dialog(mTopWidget);
|
|
|
|
|
|
// setTopWidget(&dialog);
|
|
|
|
|
|
// dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
// int ret = dialog.exec();
|
|
|
|
|
|
// releaseTopWidget(&dialog);
|
|
|
|
|
|
// return ret;
|
|
|
|
|
|
IpSettingsDialog dialog(mTopWidget);
|
2022-08-10 15:28:59 +08:00
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DialogResult DialogManager::requestEditIpAndNetMask()
|
|
|
|
|
|
{
|
|
|
|
|
|
GetIPDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,dialog.getList());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DialogResult DialogManager::requestEditIpAndNetMask(const QStringList& aEditData)
|
|
|
|
|
|
{
|
|
|
|
|
|
GetIPDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
dialog.setList(aEditData);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,dialog.getList());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DialogResult DialogManager::requestEditRouteInfo()
|
|
|
|
|
|
{
|
|
|
|
|
|
GetRouteDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,dialog.getList());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DialogResult DialogManager::requestEditRouteInfo(const QStringList& aEditData)
|
|
|
|
|
|
{
|
|
|
|
|
|
GetRouteDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
dialog.setList(aEditData);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,dialog.getList());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-29 17:57:04 +08:00
|
|
|
|
DialogResult DialogManager::reuqestConfirmStartScan(PatientInformation* aPatient)
|
|
|
|
|
|
{
|
|
|
|
|
|
StartScanProcessDialog dialog(mTopWidget);
|
|
|
|
|
|
dialog.setPatientDetailForm(aPatient);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);;
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return DialogResult(ret,QVariant(""));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-09-08 17:09:49 +08:00
|
|
|
|
int DialogManager::requestPatientConfirm(PatientInformation* patientInf, int type)
|
|
|
|
|
|
{
|
|
|
|
|
|
PatientConfirmDialog dialog(mTopWidget);
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setPatientInformation(patientInf, type);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-01 16:02:40 +08:00
|
|
|
|
int DialogManager::requestGetWorkList()
|
|
|
|
|
|
{
|
|
|
|
|
|
GetWorkListDialog dialog(WorkListManager::getInstance()->getTableModel(), WorkListManager::getInstance()->getTableView(), mTopWidget);
|
|
|
|
|
|
mGetWorkListDialog = &dialog;
|
|
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
|
|
|
|
|
mGetWorkListDialog = nullptr;
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int DialogManager::requestGetWorkList(const QString& aInputValue)
|
2022-09-29 17:36:55 +08:00
|
|
|
|
{
|
2024-04-01 16:02:40 +08:00
|
|
|
|
GetWorkListDialog dialog(WorkListManager::getInstance()->getTableModel(), WorkListManager::getInstance()->getTableView(), mTopWidget);
|
|
|
|
|
|
mGetWorkListDialog = &dialog;
|
2022-09-29 17:36:55 +08:00
|
|
|
|
setTopWidget(&dialog);
|
|
|
|
|
|
dialog.setWindowModality(Qt::WindowModal);
|
2024-04-01 16:02:40 +08:00
|
|
|
|
mGetWorkListDialog->search(aInputValue);
|
2022-09-29 17:36:55 +08:00
|
|
|
|
int ret = dialog.exec();
|
|
|
|
|
|
releaseTopWidget(&dialog);
|
2024-04-01 16:02:40 +08:00
|
|
|
|
mGetWorkListDialog = nullptr;
|
2022-09-29 17:36:55 +08:00
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-01 16:02:40 +08:00
|
|
|
|
void DialogManager::receiveWorkListInput(QObject *parent, QObject *msg)
|
|
|
|
|
|
{
|
|
|
|
|
|
QString inputValue = *(QString*)msg;
|
|
|
|
|
|
if(mGetWorkListDialog == nullptr)
|
|
|
|
|
|
{
|
|
|
|
|
|
requestGetWorkList(inputValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-08-10 15:28:59 +08:00
|
|
|
|
void DialogManager::raiseDeviceInfo(QObject* parent, QObject* aInfoData)
|
|
|
|
|
|
{
|
|
|
|
|
|
QPair<QString, unsigned int>* infoData = (QPair<QString, unsigned int>*)(aInfoData);
|
|
|
|
|
|
raiseMultyMessageDialog(infoData->first,MessageLevel(infoData->second));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-07-20 16:45:33 +08:00
|
|
|
|
//考虑以后使用另外的dialog显示错误
|
2022-07-19 14:15:00 +08:00
|
|
|
|
void DialogManager::raiseDeviceError(QObject *parent, QObject *msg) {
|
2022-07-20 16:45:33 +08:00
|
|
|
|
clearMessageDialog();
|
2022-08-10 15:28:59 +08:00
|
|
|
|
auto dialog = new GUIMessageDialog(mTopWidget);
|
|
|
|
|
|
|
2023-09-11 16:45:31 +08:00
|
|
|
|
if(mFunctionDialog!= nullptr && mFunctionDialog->isRunning())
|
2023-09-11 16:29:30 +08:00
|
|
|
|
{
|
|
|
|
|
|
dialog->setWindowFlags(dialog->windowFlags() | Qt::WindowStaysOnTopHint | Qt::BypassWindowManagerHint );
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-08-10 15:28:59 +08:00
|
|
|
|
if (nullptr != mTopWidget && mTopWidget->inherits("GUIMessageDialog"))
|
|
|
|
|
|
{
|
|
|
|
|
|
GUIMessageDialog* parent = qobject_cast<GUIMessageDialog*>(mTopWidget);
|
|
|
|
|
|
if (parent->getDialogPos().y() + 320 + GUIMESSAGEDIALOG_OFFSET < 1080)
|
|
|
|
|
|
{
|
|
|
|
|
|
dialog->moveDialog(parent->getDialogPos() + QPoint(GUIMESSAGEDIALOG_OFFSET, GUIMESSAGEDIALOG_OFFSET));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2022-07-21 10:39:24 +08:00
|
|
|
|
|
2022-07-20 16:45:33 +08:00
|
|
|
|
if (msg) {
|
|
|
|
|
|
QString *str = (QString *) msg;
|
2022-07-19 14:15:00 +08:00
|
|
|
|
dialog->showMessage(*str);
|
2022-07-20 16:45:33 +08:00
|
|
|
|
} else {
|
2022-07-19 14:15:00 +08:00
|
|
|
|
dialog->showMessage("Something went error!");
|
|
|
|
|
|
}
|
|
|
|
|
|
dialog->stopLoading();
|
|
|
|
|
|
dialog->showExitButton();
|
2022-07-21 10:39:24 +08:00
|
|
|
|
setTopWidget(dialog);
|
2022-08-10 15:28:59 +08:00
|
|
|
|
dialog->setWindowModality(Qt::WindowModal);
|
2022-08-18 17:09:16 +08:00
|
|
|
|
mScreenSaverWindow->stop(true);
|
2022-07-28 16:27:51 +08:00
|
|
|
|
dialog->showFullScreen ();
|
2022-07-20 16:45:33 +08:00
|
|
|
|
dialog->exec();
|
2022-07-21 10:39:24 +08:00
|
|
|
|
releaseTopWidget(dialog);
|
|
|
|
|
|
dialog->deleteLater();
|
2022-08-25 14:53:43 +08:00
|
|
|
|
if (nullptr != mTopWidget && !mTopWidget->inherits("GUIMessageDialog"))
|
|
|
|
|
|
{
|
|
|
|
|
|
mScreenSaverWindow->startLocker();
|
|
|
|
|
|
}
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2022-07-20 16:45:33 +08:00
|
|
|
|
// 扫描过程 dialog 只能为最底层,并且会被error dialog 清除!
|
2022-07-19 14:15:00 +08:00
|
|
|
|
void DialogManager::invokeOperationStart(QObject *parent, QObject *msg) {
|
2022-07-20 16:45:33 +08:00
|
|
|
|
//没有目标parent 撤销操作
|
|
|
|
|
|
if (!QApplication::activeWindow()) return;
|
|
|
|
|
|
//只能在最底层窗口上模态
|
2022-07-21 10:39:24 +08:00
|
|
|
|
if (mDialogCount>0) return;
|
2022-07-20 16:45:33 +08:00
|
|
|
|
clearMessageDialog();
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog = new GUIMessageDialog(QApplication::activeWindow());
|
2022-07-19 14:15:00 +08:00
|
|
|
|
if (msg)
|
|
|
|
|
|
{
|
|
|
|
|
|
QString* str = (QString*)msg;
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->showMessage(*str);
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->hideMessage();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->hideExitButton();
|
|
|
|
|
|
mOperationMessageDialog->startLoading();
|
|
|
|
|
|
if (mOperationMessageDialog->isHidden())
|
2022-07-19 14:15:00 +08:00
|
|
|
|
{
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->showFullScreen();
|
2022-09-14 10:54:52 +08:00
|
|
|
|
//mOperationMessageDialog->exec();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DialogManager::invokeOperationProgress(QObject *parent, QObject *msg) {
|
2022-07-20 16:45:33 +08:00
|
|
|
|
//窗口不存在,撤销操作
|
2022-08-10 15:28:59 +08:00
|
|
|
|
if (!mOperationMessageDialog) return;
|
2022-07-19 14:15:00 +08:00
|
|
|
|
if (msg)
|
|
|
|
|
|
{
|
|
|
|
|
|
QVariant* var = (QVariant*)msg;
|
2022-08-10 15:28:59 +08:00
|
|
|
|
if (mOperationMessageDialog->Pending())
|
2022-07-19 14:15:00 +08:00
|
|
|
|
{
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->stopPending();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->showMessage(var->toString());
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->hideMessage();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
2022-08-10 15:28:59 +08:00
|
|
|
|
if (mOperationMessageDialog->isHidden())
|
2022-07-19 14:15:00 +08:00
|
|
|
|
{
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->showFullScreen();
|
2022-09-14 10:54:52 +08:00
|
|
|
|
//mOperationMessageDialog->exec();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DialogManager::invokeOperationPending(QObject *parent, QObject *msg) {
|
2022-07-20 16:45:33 +08:00
|
|
|
|
//窗口不存在,撤销操作
|
2022-08-10 15:28:59 +08:00
|
|
|
|
if (!mOperationMessageDialog) return;
|
|
|
|
|
|
if (!mOperationMessageDialog->Pending())
|
2022-07-19 14:15:00 +08:00
|
|
|
|
{
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->startPending();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
QVariant* var = (QVariant*)msg;
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->showMessage(var->toString());
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DialogManager::invokeOperationEnd(QObject *parent, QObject *msg) {
|
2022-07-20 16:45:33 +08:00
|
|
|
|
//窗口不存在,撤销操作
|
2022-08-10 15:28:59 +08:00
|
|
|
|
if (!mOperationMessageDialog) return;
|
|
|
|
|
|
if (!mOperationMessageDialog->isHidden())
|
2022-07-19 14:15:00 +08:00
|
|
|
|
{
|
2023-08-21 14:22:41 +08:00
|
|
|
|
if (msg != nullptr)
|
2022-07-19 14:15:00 +08:00
|
|
|
|
{
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->stopLoading();
|
|
|
|
|
|
mOperationMessageDialog->showExitButton();
|
2023-09-07 16:02:45 +08:00
|
|
|
|
mOperationMessageDialog->showMessage(*(QString*)msg);
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
mOperationMessageDialog->showFullScreen();
|
|
|
|
|
|
mOperationMessageDialog->exec();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2022-08-10 15:28:59 +08:00
|
|
|
|
mOperationMessageDialog->accept();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
2022-08-10 15:28:59 +08:00
|
|
|
|
delete mOperationMessageDialog;
|
2022-07-19 14:15:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2022-07-20 16:45:33 +08:00
|
|
|
|
|
|
|
|
|
|
void DialogManager::clearMessageDialog() {
|
2022-08-10 15:28:59 +08:00
|
|
|
|
if (mOperationMessageDialog)
|
|
|
|
|
|
{
|
|
|
|
|
|
releaseTopWidget(mOperationMessageDialog);
|
|
|
|
|
|
delete mOperationMessageDialog;
|
2022-07-20 16:45:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DialogManager::~DialogManager() {
|
|
|
|
|
|
clearMessageDialog();
|
2024-04-25 14:37:38 +08:00
|
|
|
|
//delete mScreenSaverWindow;
|
2022-07-20 16:45:33 +08:00
|
|
|
|
}
|
2022-07-28 16:27:51 +08:00
|
|
|
|
|
2022-08-10 15:28:59 +08:00
|
|
|
|
void DialogManager::raiseMultyMessageDialog(const QString& aMessage, MessageLevel aMessageLevel)
|
2022-07-28 16:27:51 +08:00
|
|
|
|
{
|
|
|
|
|
|
MultyMessageDialogManager::getInstance()->raiseDialog(aMessage, aMessageLevel);
|
|
|
|
|
|
}
|
2022-08-10 15:28:59 +08:00
|
|
|
|
|
|
|
|
|
|
void DialogManager::raiseSyncDialog(const QString& aMessage)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!mSyncDialog)
|
|
|
|
|
|
{
|
|
|
|
|
|
mSyncDialog = new GUIMessageDialog(mTopWidget);
|
|
|
|
|
|
}
|
|
|
|
|
|
mSyncDialog->showMessage(aMessage);
|
|
|
|
|
|
setTopWidget(mSyncDialog);
|
|
|
|
|
|
mSyncDialog->setWindowModality(Qt::WindowModal);
|
|
|
|
|
|
mSyncDialog->showFullScreen ();
|
|
|
|
|
|
mSyncDialog->exec();
|
|
|
|
|
|
releaseTopWidget(mSyncDialog);
|
|
|
|
|
|
delete mSyncDialog;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DialogManager::hideTopSyncDialog()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (mSyncDialog)
|
|
|
|
|
|
{
|
|
|
|
|
|
mSyncDialog->accept();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DialogManager::setFocusToTopDialog()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (0 < mDialogCount && nullptr != mTopWidget)
|
|
|
|
|
|
{
|
|
|
|
|
|
mTopWidget->setFocus();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|