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