merge 1.14
This commit is contained in:
@@ -161,11 +161,15 @@ SelectFormWidget::SelectFormWidget(QWidget* parent) :
|
|||||||
});
|
});
|
||||||
|
|
||||||
connect(btnAdd, &QToolButton::clicked, [=]() {
|
connect(btnAdd, &QToolButton::clicked, [=]() {
|
||||||
|
edit_patient->show();
|
||||||
|
btnShowEdit->hide();
|
||||||
edit_patient->clearPatientInformation();
|
edit_patient->clearPatientInformation();
|
||||||
edit_patient->setEditEnable(true);
|
edit_patient->setEditEnable(true);
|
||||||
btnSelect->setEnabled(false);
|
btnSelect->setEnabled(false);
|
||||||
});
|
});
|
||||||
connect(btnEdit, &QToolButton::clicked, [=]() {
|
connect(btnEdit, &QToolButton::clicked, [=]() {
|
||||||
|
edit_patient->show();
|
||||||
|
btnShowEdit->hide();
|
||||||
table->clicked(table->currentIndex());
|
table->clicked(table->currentIndex());
|
||||||
edit_patient->setEditEnable(true);
|
edit_patient->setEditEnable(true);
|
||||||
btnSelect->setEnabled(false);
|
btnSelect->setEnabled(false);
|
||||||
@@ -238,6 +242,8 @@ SelectFormWidget::SelectFormWidget(QWidget* parent) :
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
currentRow = -1;
|
currentRow = -1;
|
||||||
|
edit_patient->editCancel();
|
||||||
|
edit_patient->clearPatientInformation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include "event/EventCenter.h"
|
#include "event/EventCenter.h"
|
||||||
#include "errorhandle/GUIErrorLW.h"
|
#include "errorhandle/GUIErrorLW.h"
|
||||||
|
#include "json/jsonobject.h"
|
||||||
|
|
||||||
TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) {
|
TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) {
|
||||||
QHBoxLayout* layout = new QHBoxLayout(this);
|
QHBoxLayout* layout = new QHBoxLayout(this);
|
||||||
@@ -32,13 +33,14 @@ TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent,
|
|||||||
layout->addWidget(lbl_msglogo);
|
layout->addWidget(lbl_msglogo);
|
||||||
|
|
||||||
QWidget* widgetMsg = new QWidget(this);
|
QWidget* widgetMsg = new QWidget(this);
|
||||||
layout->addWidget(widgetMsg);
|
layout->addWidget(widgetMsg,1);
|
||||||
widgetMsg->setObjectName("need_border");
|
// widgetMsg->setObjectName("need_border");
|
||||||
|
widgetMsg->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
|
||||||
|
layout->addSpacerItem(new QSpacerItem(10, 10, QSizePolicy::Expanding));
|
||||||
QWidget* statusBarWidget = new QWidget(this);
|
QWidget* statusBarWidget = new QWidget(this);
|
||||||
layout->addWidget(statusBarWidget);
|
layout->addWidget(statusBarWidget);
|
||||||
QLabel* hosp = new QLabel(this);
|
QLabel* hosp = new QLabel(this);
|
||||||
// hosp->setText(tr("浙江大学医学院附属第二医院"));
|
hosp->setText(JsonObject::Instance()->institutionName());
|
||||||
QLabel* nowDate = new QLabel(this);
|
QLabel* nowDate = new QLabel(this);
|
||||||
nowDate->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
|
nowDate->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
|
||||||
QLabel* linkIcon = new QLabel(this);
|
QLabel* linkIcon = new QLabel(this);
|
||||||
@@ -50,7 +52,7 @@ TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent,
|
|||||||
// lockIcon->setPixmap(QPixmap(":/icons/lock.png").scaledToHeight(22,Qt::SmoothTransformation));
|
// lockIcon->setPixmap(QPixmap(":/icons/lock.png").scaledToHeight(22,Qt::SmoothTransformation));
|
||||||
QHBoxLayout* status_layout = new QHBoxLayout(statusBarWidget);
|
QHBoxLayout* status_layout = new QHBoxLayout(statusBarWidget);
|
||||||
status_layout->setMargin(0);
|
status_layout->setMargin(0);
|
||||||
status_layout->addSpacerItem(new QSpacerItem(10, 10, QSizePolicy::Expanding));
|
|
||||||
status_layout->addWidget(hosp);
|
status_layout->addWidget(hosp);
|
||||||
status_layout->addWidget(nowDate);
|
status_layout->addWidget(nowDate);
|
||||||
QWidget* spacerLine = new QWidget(this);
|
QWidget* spacerLine = new QWidget(this);
|
||||||
|
|||||||
@@ -6,27 +6,19 @@
|
|||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QShowEvent>
|
||||||
|
|
||||||
|
|
||||||
const int ROLL_DISTANCE = 32;
|
const int WAIT_TIMES = 60;
|
||||||
const int WAIT_TIMES = 30;
|
|
||||||
|
|
||||||
RollingMessageWidget::RollingMessageWidget(QWidget *parent) :QWidget(parent){
|
RollingMessageWidget::RollingMessageWidget(QWidget *parent) :QWidget(parent){
|
||||||
this->setFixedHeight(36);
|
this->setFixedHeight(36);
|
||||||
this->setFixedWidth(500);
|
// this->setMinimumWidth(1000);
|
||||||
|
|
||||||
|
this->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
|
||||||
label_current = new QLabel(this);
|
label_current = new QLabel(this);
|
||||||
label_next = new QLabel(this);
|
label_next = new QLabel(this);
|
||||||
QPoint p1 = this->mapToGlobal({5,2});
|
|
||||||
label_current->setFixedSize(400, 30);
|
|
||||||
label_current->show();
|
|
||||||
label_current->move(p1);
|
|
||||||
label_current->setText(tr("Message of warn!"));
|
|
||||||
QPoint p2 = this->mapToGlobal({5,-30});
|
|
||||||
label_next->setFixedSize(400, 30);
|
|
||||||
label_next->show();
|
|
||||||
label_next->move(p2);
|
|
||||||
label_next->setText(tr("Message2 of warn!"));
|
|
||||||
timerId = startTimer(100);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RollingMessageWidget::timerEvent(QTimerEvent *e) {
|
void RollingMessageWidget::timerEvent(QTimerEvent *e) {
|
||||||
@@ -35,29 +27,34 @@ void RollingMessageWidget::timerEvent(QTimerEvent *e) {
|
|||||||
if (rolling) {
|
if (rolling) {
|
||||||
//end rolling, reset next
|
//end rolling, reset next
|
||||||
if (rollStep == ROLL_DISTANCE){
|
if (rollStep == ROLL_DISTANCE){
|
||||||
std::swap(label_current,label_next);
|
waitStep = 0;
|
||||||
rolling = false;
|
rolling = false;
|
||||||
QPoint p3 = this->mapToGlobal({5,-30});
|
QPoint p3 = {ROLL_DISTANCE+5,2};
|
||||||
p3.setX(label_next->geometry().x());
|
// p3.setY(label_next->geometry().y());
|
||||||
label_next->move(p3);
|
label_current->move(p3);
|
||||||
|
// printf("move last to 505,2\n");
|
||||||
|
std::swap(label_current,label_next);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//rolling
|
//rolling
|
||||||
QPoint p1 = label_current->geometry().topLeft();
|
rollStep+=2;
|
||||||
p1.setY(p1.y()+1);
|
QPoint p1 = {ROLL_DISTANCE+5 - rollStep,2};
|
||||||
label_current->move(p1);
|
label_next->move(p1);
|
||||||
QPoint p2 = label_next->geometry().topLeft();
|
if (p1.x()-label_current->geometry().x()<=label_current->width()+20)
|
||||||
p2.setY(p2.y()+1);
|
{
|
||||||
label_next->move(p2);
|
QPoint p2 = {label_current->geometry().x()-2,2};
|
||||||
rollStep++;
|
label_current->move(p2);
|
||||||
|
}
|
||||||
|
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|
||||||
//有等待的高优先级消息时,不停顿
|
//有等待的高优先级消息时,不停顿
|
||||||
if (waitStep == WAIT_TIMES || waitPriorityCount > 0){
|
if (waitStep == WAIT_TIMES || (waitPriorityCount > 0 && waitStep == WAIT_TIMES/3)){
|
||||||
locker.lock();
|
locker.lock();
|
||||||
label_next->setText(getNextMessage());
|
label_next->setText(getNextMessage());
|
||||||
|
label_next->setFixedWidth(label_next->text().length()*16);
|
||||||
locker.unlock();
|
locker.unlock();
|
||||||
} else{
|
} else{
|
||||||
waitStep++;
|
waitStep++;
|
||||||
@@ -144,3 +141,26 @@ QString RollingMessageWidget::getNextMessage() {
|
|||||||
waitStep = 0;
|
waitStep = 0;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RollingMessageWidget::showEvent(QShowEvent *event) {
|
||||||
|
QWidget::showEvent(event);
|
||||||
|
if (!init)
|
||||||
|
{
|
||||||
|
ROLL_DISTANCE = this->width();
|
||||||
|
QPoint p1 = {5,2};
|
||||||
|
label_current->setFixedHeight(30);
|
||||||
|
label_current->show();
|
||||||
|
label_current->move(p1);
|
||||||
|
label_current->setText(tr("Message of warn!"));
|
||||||
|
label_current->setFixedWidth(label_current->text().length()*16);
|
||||||
|
QPoint p2 = {ROLL_DISTANCE+5,2};
|
||||||
|
label_next->setFixedHeight(30);
|
||||||
|
label_next->show();
|
||||||
|
label_next->move(p2);
|
||||||
|
label_next->setText(tr("Message2 of warn!"));
|
||||||
|
label_next->setFixedWidth(label_next->text().length()*16);
|
||||||
|
|
||||||
|
timerId = startTimer(40);
|
||||||
|
init = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -27,8 +27,10 @@ public:
|
|||||||
explicit RollingMessageWidget(QWidget *parent = nullptr);
|
explicit RollingMessageWidget(QWidget *parent = nullptr);
|
||||||
void setMessageList(const QStringList& message);
|
void setMessageList(const QStringList& message);
|
||||||
void updateMessagePriority(int innerIndex, int priority);
|
void updateMessagePriority(int innerIndex, int priority);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void timerEvent(QTimerEvent* event) override ;
|
void timerEvent(QTimerEvent* event) override ;
|
||||||
|
void showEvent(QShowEvent *event) override ;
|
||||||
QString getNextMessage();
|
QString getNextMessage();
|
||||||
private:
|
private:
|
||||||
int timerId = -1;
|
int timerId = -1;
|
||||||
@@ -41,6 +43,8 @@ private:
|
|||||||
QLabel* label_next = nullptr;
|
QLabel* label_next = nullptr;
|
||||||
QList<WarnMessage> messages;
|
QList<WarnMessage> messages;
|
||||||
QMutex locker;
|
QMutex locker;
|
||||||
|
bool init = false;
|
||||||
|
int ROLL_DISTANCE=2000;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -39,12 +39,15 @@ std::string getJsonFromPatInf(QObject* obj)
|
|||||||
|
|
||||||
void ErrorCallback(const char* msg)
|
void ErrorCallback(const char* msg)
|
||||||
{
|
{
|
||||||
DeviceManager::Default()->setErrorOccurred(true);
|
DeviceManager::Default()->emitErrorCallback(msg);
|
||||||
printf("Error Callback , message:%s\r\n", msg);
|
|
||||||
QString m(msg);
|
|
||||||
THROW_ERROR(m);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DeviceManager::emitErrorCallback(const char *msg) {
|
||||||
|
this->setErrorOccurred(true);
|
||||||
|
printf("Error Callback , message:%s\r\n", msg);
|
||||||
|
QString m(msg);
|
||||||
|
emit raiseGlobalError( m);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DeviceManager::initDevice() {
|
void DeviceManager::initDevice() {
|
||||||
|
|||||||
@@ -11,17 +11,20 @@ class DeviceManager :public QObject {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static DeviceManager* Default() {
|
static DeviceManager* Default(){
|
||||||
static DeviceManager manager;
|
static DeviceManager manager;
|
||||||
return &manager;
|
return &manager;
|
||||||
}
|
}
|
||||||
void initDevice();
|
void initDevice();
|
||||||
void setErrorOccurred(bool v) {
|
void setErrorOccurred(bool v){
|
||||||
errorOccurred = v;
|
errorOccurred = v;
|
||||||
}
|
}
|
||||||
bool getErrorOccurred() {
|
bool getErrorOccurred(){
|
||||||
return errorOccurred;
|
return errorOccurred;
|
||||||
}
|
}
|
||||||
|
void emitErrorCallback(const char * msg);
|
||||||
|
signals:
|
||||||
|
void raiseGlobalError(QString msg);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void timerEvent(QTimerEvent* event) override;
|
void timerEvent(QTimerEvent* event) override;
|
||||||
|
|||||||
@@ -27,5 +27,7 @@ GUIErrorBase *GUIErrorFactory::getError(const QString &errorMsg) {
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new GUIErrorLE;
|
auto error = new GUIErrorLE;
|
||||||
|
error->parse(errorMsg);
|
||||||
|
return error;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,5 +21,6 @@ void GUIErrorHandle::init() {
|
|||||||
// error->setErrorHandleParent(qApp->activeWindow());
|
// error->setErrorHandleParent(qApp->activeWindow());
|
||||||
// }
|
// }
|
||||||
error->handle();
|
error->handle();
|
||||||
|
delete error;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ void GUIErrorLE::parse(const QString &errorMsg) {
|
|||||||
if (errorMsg[0] == 'e' && errorMsg[1] == ' ')
|
if (errorMsg[0] == 'e' && errorMsg[1] == ' ')
|
||||||
{
|
{
|
||||||
errorMessage = errorMsg.right(errorMsg.length()-2);
|
errorMessage = errorMsg.right(errorMsg.length()-2);
|
||||||
|
} else{
|
||||||
|
errorMessage = errorMsg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -161,6 +161,7 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||||||
}
|
}
|
||||||
qApp->processEvents();
|
qApp->processEvents();
|
||||||
});
|
});
|
||||||
|
connect(DeviceManager::Default(),&DeviceManager::raiseGlobalError,this,&MainWindow::triggerError,Qt::ConnectionType::QueuedConnection);
|
||||||
GUIErrorHandle::Default()->init();
|
GUIErrorHandle::Default()->init();
|
||||||
l = new LoginWindow(this);
|
l = new LoginWindow(this);
|
||||||
QThread* t = QThread::create([]() {
|
QThread* t = QThread::create([]() {
|
||||||
@@ -262,3 +263,9 @@ void MainWindow::debugConsoleOn() {
|
|||||||
//clear buffer before redirect;
|
//clear buffer before redirect;
|
||||||
this->console = text_edit;
|
this->console = text_edit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::triggerError(const QString & msg) {
|
||||||
|
QString s(msg);
|
||||||
|
qDebug()<<"invoke trigger error slot msg:"<<msg;
|
||||||
|
EventCenter::Default()->triggerEvent(GUIErrorRaise, nullptr,(QObject*)&s);
|
||||||
|
}
|
||||||
|
|||||||
@@ -28,10 +28,12 @@ public:
|
|||||||
void requestLogin();
|
void requestLogin();
|
||||||
QTextEdit* getEdit();
|
QTextEdit* getEdit();
|
||||||
void debugConsoleOn();
|
void debugConsoleOn();
|
||||||
|
public slots:
|
||||||
|
void triggerError(const QString&);
|
||||||
protected:
|
protected:
|
||||||
void changeEvent(QEvent* event);
|
void changeEvent(QEvent* event);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadStyleSheet(const QString& sheetName);
|
void loadStyleSheet(const QString& sheetName);
|
||||||
cJSON* json_root = nullptr;
|
cJSON* json_root = nullptr;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user