Add UsctStateManager and add DmsState in GUI.
This commit is contained in:
@@ -98,8 +98,9 @@ WarningMessageWidget::WarningMessageWidget(QWidget *parent):QWidget(parent)
|
|||||||
clearBtn->setObjectName("WarningPanelBtn");
|
clearBtn->setObjectName("WarningPanelBtn");
|
||||||
hl->addWidget(clearBtn);
|
hl->addWidget(clearBtn);
|
||||||
connect(clearBtn, &QToolButton::clicked, this, &WarningMessageWidget::clearWarning);
|
connect(clearBtn, &QToolButton::clicked, this, &WarningMessageWidget::clearWarning);
|
||||||
connect(EventCenter::Default(),&EventCenter::WarningMessageRaise,this,&WarningMessageWidget::addWarningProxySlot,Qt::QueuedConnection);
|
connect(EventCenter::Default(),&EventCenter::WarningMessageRaise,this,&WarningMessageWidget::addWarningProxySlot);
|
||||||
connect(EventCenter::Default(),&EventCenter::ErrorStateUnactive,this,&WarningMessageWidget::unactiveErrorProxySlot,Qt::QueuedConnection);
|
connect(EventCenter::Default(),&EventCenter::ErrorStateUnactive,this,&WarningMessageWidget::unactiveErrorProxySlot);
|
||||||
|
connect(EventCenter::Default(),&EventCenter::ErrorStateActive,this,&WarningMessageWidget::activeErrorProxySlot);
|
||||||
|
|
||||||
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, this, &WarningMessageWidget::reloadLanguage);
|
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, this, &WarningMessageWidget::reloadLanguage);
|
||||||
|
|
||||||
@@ -137,7 +138,6 @@ void WarningMessageWidget::addWarningProxySlot(QObject*, QObject* aData)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString str = *((QString*)aData);
|
QString str = *((QString*)aData);
|
||||||
delete (QString*)aData;
|
|
||||||
activeError(601, "TestError");
|
activeError(601, "TestError");
|
||||||
addWarning(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"), str);
|
addWarning(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"), str);
|
||||||
}
|
}
|
||||||
@@ -149,18 +149,19 @@ void WarningMessageWidget::activeErrorProxySlot(QObject*, QObject* aData)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//TODO: real active error logic
|
//TODO: real active error logic
|
||||||
QString str = "Test Error";
|
QPair<int, QString> state = *(QPair<int, QString>*)aData;
|
||||||
activeError(601, str);
|
activeError(state.first, state.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WarningMessageWidget::unactiveErrorProxySlot(QObject*, QObject* aData)
|
void WarningMessageWidget::unactiveErrorProxySlot(QObject*, QObject* aData)
|
||||||
{
|
{
|
||||||
//TODO: real unactive error logic
|
//TODO: real unactive error logic
|
||||||
// if (!aData){
|
if (!aData){
|
||||||
// qDebug()<<"unactiveErrorProxy with null aData";
|
qDebug()<<"unactiveErrorProxy with null aData";
|
||||||
// return;
|
return;
|
||||||
// }
|
};
|
||||||
unactiveError(601);
|
int stateCode = *(int*)aData;
|
||||||
|
unactiveError(stateCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WarningMessageWidget::reloadLanguage()
|
void WarningMessageWidget::reloadLanguage()
|
||||||
@@ -233,4 +234,3 @@ void WarningMessageWidget::showEvent(QShowEvent* aEvent)
|
|||||||
showAnimation->start();
|
showAnimation->start();
|
||||||
QWidget::showEvent(aEvent);
|
QWidget::showEvent(aEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
70
src/device/UsctStateManager.cpp
Normal file
70
src/device/UsctStateManager.cpp
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
#include "UsctStateManager.h"
|
||||||
|
|
||||||
|
#include "event/EventCenter.h"
|
||||||
|
|
||||||
|
UsctStateManager* UsctStateManager::getInstance()
|
||||||
|
{
|
||||||
|
static UsctStateManager instance;
|
||||||
|
return &instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
UsctStateManager::UsctStateManager(QObject* aParent)
|
||||||
|
: QObject (aParent)
|
||||||
|
, mState()
|
||||||
|
{
|
||||||
|
mState.insert(DmsState, true);
|
||||||
|
mState.insert(DmsConnectionState, true);
|
||||||
|
mState.insert(ReconState, true);
|
||||||
|
mState.insert(ReconMppsState, true);
|
||||||
|
mState.insert(ReconPacsState, true);
|
||||||
|
mState.insert(ReconConnectionState, true);
|
||||||
|
mState.insert(ReconEmptyScanState, true);
|
||||||
|
mState.insert(ReconDBState, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UsctStateManager::setState(int aStateCode, bool aState)
|
||||||
|
{
|
||||||
|
bool stateTemp = mState[aStateCode];
|
||||||
|
mState[aStateCode] = aState;
|
||||||
|
if(stateTemp != aState)
|
||||||
|
{
|
||||||
|
bool UsctState = getUsctState();
|
||||||
|
EventCenter::Default()->triggerEvent(UsctStateUpdated, nullptr, (QObject*)&UsctState);
|
||||||
|
}
|
||||||
|
mState[aStateCode] = aState;
|
||||||
|
if(aState)
|
||||||
|
{
|
||||||
|
int msg = aStateCode;
|
||||||
|
EventCenter::Default()->triggerEvent(ErrorStateUnactive, nullptr, (QObject*)&msg);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
QPair<int, QString> msg(QPair<int, QString>(aStateCode, getStateErrorMessage(aStateCode)));
|
||||||
|
EventCenter::Default()->triggerEvent(ErrorStateActive, nullptr, (QObject*)&msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UsctStateManager::getUsctState()
|
||||||
|
{
|
||||||
|
bool result = true;
|
||||||
|
QMap<int, bool>::const_iterator it;
|
||||||
|
for (it = mState.constBegin(); it != mState.constEnd(); ++it)
|
||||||
|
{
|
||||||
|
result = result & it.value();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString UsctStateManager::getStateErrorMessage(int aStateCode)
|
||||||
|
{
|
||||||
|
switch (aStateCode)
|
||||||
|
{
|
||||||
|
case DmsState : return "Dms Error";
|
||||||
|
case DmsConnectionState : return "Dms Connection Error";
|
||||||
|
case ReconState : return "Recon Fatal Error";
|
||||||
|
case ReconMppsState : return "Recon Mpps Connection Error";
|
||||||
|
case ReconPacsState : return "Recon Pacs Connection Error";
|
||||||
|
case ReconEmptyScanState : return "Recon Empty Scan Data Error";
|
||||||
|
case ReconDBState : return "Recon Database Connection Error";
|
||||||
|
default: return "Unknow Error";
|
||||||
|
}
|
||||||
|
}
|
||||||
42
src/device/UsctStateManager.h
Normal file
42
src/device/UsctStateManager.h
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#ifndef USCTSTATEMANAGER_H
|
||||||
|
#define USCTSTATEMANAGER_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QMap>
|
||||||
|
|
||||||
|
enum UsctState
|
||||||
|
{
|
||||||
|
DmsState = 0, //Dms是否有致命错误,false代表存在致命错误
|
||||||
|
DmsConnectionState,
|
||||||
|
ReconState, //Recon是否有致命错误,false代表存在致命错误
|
||||||
|
ReconMppsState,
|
||||||
|
ReconPacsState,
|
||||||
|
ReconConnectionState,
|
||||||
|
ReconEmptyScanState,
|
||||||
|
ReconDBState
|
||||||
|
};
|
||||||
|
|
||||||
|
class UsctStateManager : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
static UsctStateManager* getInstance();
|
||||||
|
|
||||||
|
bool getUsctState();
|
||||||
|
void setState(int aStateCode, bool aState);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString getStateErrorMessage(int aStateCode);
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
UsctStateManager(QObject* aParent = nullptr);
|
||||||
|
UsctStateManager(const UsctStateManager&);
|
||||||
|
UsctStateManager& operator=(const UsctStateManager&);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QMap<int, bool> mState;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // USCTSTATEMANAGER_H
|
||||||
@@ -44,6 +44,7 @@ ADD_EVENT_VALUE(StartScanProcess)\
|
|||||||
ADD_EVENT_VALUE(CurrentUserNameChanged)\
|
ADD_EVENT_VALUE(CurrentUserNameChanged)\
|
||||||
ADD_EVENT_VALUE(EmptyScanFinished)\
|
ADD_EVENT_VALUE(EmptyScanFinished)\
|
||||||
ADD_EVENT_VALUE(UserVerificationSuccess)\
|
ADD_EVENT_VALUE(UserVerificationSuccess)\
|
||||||
|
ADD_EVENT_VALUE(UsctStateUpdated)\
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -61,10 +61,17 @@ TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent,
|
|||||||
});
|
});
|
||||||
|
|
||||||
auto readyIcon = new QToolButton(this);
|
auto readyIcon = new QToolButton(this);
|
||||||
|
readyIcon->setIcon(QIcon(":/icons/dicom/echo_suc.png"));
|
||||||
readyIcon->setObjectName("ready");
|
readyIcon->setObjectName("ready");
|
||||||
connect(readyIcon, &QToolButton::clicked,[=](){
|
connect(readyIcon, &QToolButton::clicked,[=](){
|
||||||
emit warnBtnClicked();
|
emit warnBtnClicked();
|
||||||
});
|
});
|
||||||
|
connect(EventCenter::Default(), &EventCenter::UsctStateUpdated,[readyIcon](QObject*, QObject* msg)
|
||||||
|
{
|
||||||
|
bool state = *(bool*)msg;
|
||||||
|
QIcon icon(state ? ":/icons/dicom/echo_suc.png" :":/icons/dicom/echo_fail.png" );
|
||||||
|
readyIcon->setIcon(icon);
|
||||||
|
});
|
||||||
|
|
||||||
auto lockIcon = new QLabel(this);
|
auto lockIcon = new QLabel(this);
|
||||||
lockIcon->setText("");
|
lockIcon->setText("");
|
||||||
|
|||||||
@@ -450,7 +450,6 @@ QToolButton#ready {
|
|||||||
min-height: 28px;
|
min-height: 28px;
|
||||||
max-height: 28px;
|
max-height: 28px;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
qproperty-icon:url(":/icons/dicom/echo_suc.png");
|
|
||||||
qproperty-toolButtonStyle:ToolButtonTextBesideIcon;
|
qproperty-toolButtonStyle:ToolButtonTextBesideIcon;
|
||||||
qproperty-iconSize:26px 26px;
|
qproperty-iconSize:26px 26px;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user