Banner message

This commit is contained in:
Krad
2021-10-26 13:08:11 +08:00
parent 43442b319f
commit 8c980a458a
5 changed files with 51 additions and 8 deletions

View File

@@ -167,6 +167,19 @@ SelectFormWidget::SelectFormWidget(QWidget *parent) :
if (currentRow<0)return; if (currentRow<0)return;
EventCenter::Default()->triggerEvent(GUIEvents::PatientSelected, nullptr,edit_patient->getPatientInformation()->Copy()); EventCenter::Default()->triggerEvent(GUIEvents::PatientSelected, nullptr,edit_patient->getPatientInformation()->Copy());
}); });
connect(EventCenter::Default(),&EventCenter::ResponsePreview,[=](QObject* sender,QObject* data){
btnSelect->setEnabled(false);
btnDelete->setEnabled(false);
btnEdit->setEnabled(false);
btnAdd->setEnabled(false);
});
connect(EventCenter::Default(),&EventCenter::ResponseStop,[=](QObject* sender,QObject* data){
btnSelect->setEnabled(true);
btnDelete->setEnabled(true);
btnEdit->setEnabled(true);
btnAdd->setEnabled(true);
});
} }
SelectFormWidget::~SelectFormWidget() SelectFormWidget::~SelectFormWidget()

View File

@@ -6,6 +6,8 @@
#include "../event/EventCenter.h" #include "../event/EventCenter.h"
#include <QVariant> #include <QVariant>
#include <QTimerEvent> #include <QTimerEvent>
#include <QDate>
#include <QDateTime>
#include <qdebug.h> #include <qdebug.h>
#define TRIGGER_EVENT EventCenter::Default()->triggerEvent #define TRIGGER_EVENT EventCenter::Default()->triggerEvent
@@ -37,6 +39,7 @@ std::string getJsonFromPatInf(QObject* obj)
void ErrorCallback(const char * msg) void ErrorCallback(const char * msg)
{ {
DeviceManager::Default()->setErrorOccurred(true);
printf("Error Callback , message:%s\r\n", msg); printf("Error Callback , message:%s\r\n", msg);
QString m(msg); QString m(msg);
THROW_ERROR(m); THROW_ERROR(m);
@@ -48,10 +51,7 @@ void DeviceManager::initDevice() {
InitLib(ErrorCallback); InitLib(ErrorCallback);
deviceInfTimerID = startTimer(1000); deviceInfTimerID = startTimer(1000);
// global error flag
connect(EventCenter::Default(),&EventCenter::GUIErrorRaise,[=](QObject* sender, QObject* detail){
this->errorOccured = true;
});
// empty scan // empty scan
connect(EventCenter::Default(),&EventCenter::RequestEmptyScan,[=](QObject* sender, QObject* detail){ connect(EventCenter::Default(),&EventCenter::RequestEmptyScan,[=](QObject* sender, QObject* detail){
std::string json= getJsonFromPatInf(detail); std::string json= getJsonFromPatInf(detail);
@@ -87,13 +87,21 @@ void DeviceManager::initDevice() {
qDebug()<<"Error thrown!"; qDebug()<<"Error thrown!";
lastStatus = -1; lastStatus = -1;
previewing = false; previewing = false;
QString s("%1 %2");
s = s.arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm:ss"), msg);
TRIGGER_EVENT(GUIEvents::GlobalBannerMessage, nullptr,(QObject*)&msg);
return; return;
} }
lastStatus = -1; lastStatus = -1;
previewing = false; previewing = false;
QString s("%1 %2");
s = s.arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm:ss"),("Scan Stopped!"));
TRIGGER_EVENT(GUIEvents::GlobalBannerMessage, nullptr,(QObject*)&s);
} }
TRIGGER_EVENT(GUIEvents::InvokeOperationEnd, nullptr, nullptr); TRIGGER_EVENT(GUIEvents::InvokeOperationEnd, nullptr, nullptr);
TRIGGER_EVENT(GUIEvents::ResponseStop, nullptr, nullptr); TRIGGER_EVENT(GUIEvents::ResponseStop, nullptr, nullptr);
}); });
// preview // preview
connect(EventCenter::Default(),&EventCenter::RequestPreviewScan,[=](){ connect(EventCenter::Default(),&EventCenter::RequestPreviewScan,[=](){
@@ -113,6 +121,8 @@ void DeviceManager::initDevice() {
// timerID = startTimer(500); // timerID = startTimer(500);
TRIGGER_EVENT(GUIEvents::ResponsePreview, nullptr, nullptr); TRIGGER_EVENT(GUIEvents::ResponsePreview, nullptr, nullptr);
TRIGGER_EVENT(GUIEvents::InvokeOperationEnd, nullptr, nullptr); TRIGGER_EVENT(GUIEvents::InvokeOperationEnd, nullptr, nullptr);
QString s("Device Previewing!");
TRIGGER_EVENT(GUIEvents::GlobalBannerMessage, nullptr, (QObject*)&s);
return; return;
} }
} }
@@ -154,7 +164,7 @@ void DeviceManager::timerEvent(QTimerEvent *event) {
qDebug()<<"GetStatus"; qDebug()<<"GetStatus";
StatusInfo inf = GetStatus(); StatusInfo inf = GetStatus();
qDebug() << "Scanning request status, status:" << getStatusString(inf.status); qDebug() << "Scanning request status, status:" << getStatusString(inf.status);
if (errorOccured) if (errorOccurred)
{ {
qDebug() << "Error occurred, exit progress timer" << inf.progress; qDebug() << "Error occurred, exit progress timer" << inf.progress;
goto exitTimer; goto exitTimer;
@@ -172,6 +182,7 @@ void DeviceManager::timerEvent(QTimerEvent *event) {
QVariant var(inf.progress); QVariant var(inf.progress);
qDebug() << "Normal scan, invoke InvokeOperationProgress:" << inf.progress; qDebug() << "Normal scan, invoke InvokeOperationProgress:" << inf.progress;
TRIGGER_EVENT(GUIEvents::InvokeOperationProgress, nullptr, (QObject*)&var); TRIGGER_EVENT(GUIEvents::InvokeOperationProgress, nullptr, (QObject*)&var);
return;
} else{ } else{
//未发生错误并且,之前状态是扫描,代表正常扫描完成 //未发生错误并且,之前状态是扫描,代表正常扫描完成
if (lastStatus == SCANNING) if (lastStatus == SCANNING)
@@ -182,14 +193,18 @@ void DeviceManager::timerEvent(QTimerEvent *event) {
TRIGGER_EVENT(GUIEvents::InvokeOperationEnd, nullptr, (QObject*)&var); TRIGGER_EVENT(GUIEvents::InvokeOperationEnd, nullptr, (QObject*)&var);
lastStatus = -1; lastStatus = -1;
previewing = false; previewing = false;
QString s("%1 %2");
s = s.arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm:ss")).arg("Scan finished");
TRIGGER_EVENT(GUIEvents::GlobalBannerMessage, nullptr,(QObject*)&s);
} }
return;
} }
exitTimer: exitTimer:
qDebug() << "Scanning progress Timer exit";
killTimer(timerID); killTimer(timerID);
timerID=-1; timerID=-1;
lastStatus = -1; lastStatus = -1;
previewing = false; previewing = false;
TRIGGER_EVENT(GUIEvents::GlobalBannerMessage, nullptr,nullptr);
return; return;
} else{ } else{
QString temp = QString(GetDeviceInfo(MEAN_TEMPERATURE)); QString temp = QString(GetDeviceInfo(MEAN_TEMPERATURE));

View File

@@ -16,6 +16,12 @@ public:
return &manager; return &manager;
} }
void initDevice(); void initDevice();
void setErrorOccurred(bool v){
errorOccurred = v;
}
bool getErrorOccurred(){
return errorOccurred;
}
protected: protected:
void timerEvent(QTimerEvent* event) override ; void timerEvent(QTimerEvent* event) override ;
@@ -27,7 +33,7 @@ private:
int lastStatus=-1; int lastStatus=-1;
bool previewing = false; bool previewing = false;
bool endLoop = false; bool endLoop = false;
bool errorOccured = false; bool errorOccurred = false;
QThread* previewDataCaller; QThread* previewDataCaller;
}; };

View File

@@ -23,6 +23,7 @@ ADD_EVENT_VALUE(InvokeOperationStart)\
ADD_EVENT_VALUE(InvokeOperationProgress)\ ADD_EVENT_VALUE(InvokeOperationProgress)\
ADD_EVENT_VALUE(InvokeOperationEnd)\ ADD_EVENT_VALUE(InvokeOperationEnd)\
ADD_EVENT_VALUE(PromptDialogOpen)\ ADD_EVENT_VALUE(PromptDialogOpen)\
ADD_EVENT_VALUE(GlobalBannerMessage)\
ADD_EVENT_VALUE(GUIErrorRaise) ADD_EVENT_VALUE(GUIErrorRaise)
enum GUIEvents{ enum GUIEvents{

View File

@@ -48,7 +48,15 @@ TabFormWidget::TabFormWidget(QWidget* parent) :
if (!msg) return; if (!msg) return;
QString* s = (QString*)msg; QString* s = (QString*)msg;
lockIcon->setText(QString("%1%2").arg(*s).arg(tr("°C"))); lockIcon->setText(QString("%1%2").arg(*s).arg(tr("°C")));
}); });
connect(EventCenter::Default(), &EventCenter::GlobalBannerMessage, [=](QObject*, QObject* msg) {
if (!msg) {
ui->systemMsgBar->setText("");
return;
}
QString* s = (QString*)msg;
ui->systemMsgBar->setText(*s);
});
} }
TabFormWidget::~TabFormWidget() TabFormWidget::~TabFormWidget()