diff --git a/src/json/jsonobject.cpp b/src/json/jsonobject.cpp index 9eff13a..ee905e2 100644 --- a/src/json/jsonobject.cpp +++ b/src/json/jsonobject.cpp @@ -46,6 +46,7 @@ char* JsonObject::getJsonString(const char* catergory, const char* stringName) if (!first) return nullptr; cJSON* second = cJSON_GetObjectItem(first, stringName); + if (!second) return nullptr; return second->valuestring; } @@ -61,8 +62,10 @@ char* JsonObject::getArrayNode(const char* catergory, const char* stringName, in if (!second) return nullptr; cJSON* third = cJSON_GetArrayItem(second, index); - + if (!third) return nullptr; cJSON* fourth = cJSON_GetObjectItem(third, id); + + if (!fourth) return nullptr; return fourth->valuestring; } @@ -78,7 +81,7 @@ void JsonObject::setArrayNode(const char* catergory, const char* stringName, int if (!second) return; cJSON* third = cJSON_GetArrayItem(second, index); - + if (!third) return; cJSON* Item = cJSON_CreateString(stringValue); cJSON_ReplaceItemInObject(third, id, Item); } @@ -93,7 +96,7 @@ int JsonObject::getArraySize(const char* catergory, const char* stringName) if (!first) return 0; cJSON* second = cJSON_GetObjectItem(first, stringName); - + if (!second) return 0; return cJSON_GetArraySize(second); } @@ -153,6 +156,8 @@ QStringList JsonObject::worklistFilters() if (!first) return QStringList(); cJSON* second = cJSON_GetObjectItem(first, "lists"); + + std::string lans = second->valuestring; QString str = QString::fromLocal8Bit(QByteArray::fromRawData(lans.c_str(), lans.size())); return str.split(";"); @@ -170,6 +175,8 @@ QStringList JsonObject::language() if (!first) return QStringList(); cJSON* second = cJSON_GetObjectItem(first, "language"); + if (!second) return QStringList(); + std::string lans = second->valuestring; QString str = QString::fromLocal8Bit(QByteArray::fromRawData(lans.c_str(), lans.size())); return str.split(";"); diff --git a/src/main.cpp b/src/main.cpp index 33c17d3..ec8c898 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -70,14 +70,14 @@ int main(int argc, char* argv[]) //暂时为了调试关闭锁屏 //Locker::Instance()->start(); //QObject::connect(obj, SIGNAL(touchScreen()), Locker::Instance(), SLOT(refreshTimer())); - - - - + QList gestures; + gestures << Qt::SwipeGesture; + w.grabGestures(gestures); QStringList app_args = a.arguments(); int ret = 0; if (app_args.contains("-d")) + //if (true) { w.debugConsoleOn(); qInstallMessageHandler(MainWindow::QMessageOutput); @@ -91,7 +91,7 @@ int main(int argc, char* argv[]) Timer.start(1000); thread.start(); w.showFullScreen(); - DeviceManager::Default()->initDevice(); + DeviceManager::Default()->initDevice(); w.requestLogin(); ret = a.exec(); @@ -100,7 +100,7 @@ int main(int argc, char* argv[]) } else { w.showFullScreen(); - DeviceManager::Default()->initDevice(); + DeviceManager::Default()->initDevice(); w.requestLogin(); ret = a.exec(); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index ecabe57..4df3683 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -20,7 +20,7 @@ #include #include #include "TopBarWidget.h" - +#include void MainWindow::QMessageOutput(QtMsgType type, const QMessageLogContext& context, const QString& msg) @@ -79,7 +79,7 @@ MainWindow::MainWindow(QWidget* parent) : ui->centralWidget->setLayout(layout); this->setWindowFlags(Qt::Window); connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise, [=](QObject* parent, QObject* msg) { - if (!this->ui->centralWidget->isVisible()) return; + if (!this->ui->centralWidget->isVisible()) return; //默认旧模式 if (!msgDialog) { msgDialog = new GUIMessageDialog(this); @@ -182,7 +182,7 @@ MainWindow::MainWindow(QWidget* parent) : } }); t->start(); - l->showFullScreen(); + l->showFullScreen(); centerWidgetHide(); connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() { @@ -242,7 +242,7 @@ QTextEdit* MainWindow::getEdit() } void MainWindow::requestLogin() { - l->setParent(this); + l->clearInputData(); l->setWindowModality(Qt::WindowModal); l->showFullScreen(); @@ -257,6 +257,7 @@ void MainWindow::requestLogin() { void MainWindow::debugConsoleOn() { QTextEdit* text_edit = new QTextEdit(this); + text_edit->setFocusPolicy(Qt::NoFocus); ui->centralWidget->layout()->addWidget(text_edit); const QString edit_style = "QScrollBar:vertical{border: 0px solid grey; background:#2d2d2d; width: 15px; margin: 0px 0 0px 0; }" @@ -267,8 +268,57 @@ void MainWindow::debugConsoleOn() { this->console = text_edit; } -void MainWindow::triggerError(const QString & msg) { - QString s(msg); - qDebug()<<"invoke trigger error slot msg:"<triggerEvent(GUIErrorRaise, nullptr,(QObject*)&s); +void MainWindow::triggerError(const QString& msg) { + QString s(msg); + qDebug() << "invoke trigger error slot msg:" << msg; + EventCenter::Default()->triggerEvent(GUIErrorRaise, nullptr, (QObject*)&s); } + +void MainWindow::grabGestures(const QList& gestures) +{ + //! [enable gestures] + foreach(Qt::GestureType gesture, gestures) + grabGesture(gesture); + //! [enable gestures] +} + +//! [event handler] +bool MainWindow::event(QEvent* event) +{ + if (event->type() == QEvent::Gesture) + return gestureEvent(static_cast(event)); + return QWidget::event(event); +} + +bool MainWindow::gestureEvent(QGestureEvent* event) +{ + //qCDebug(lcExample) << "gestureEvent():" << event; + if (QGesture* swipe = event->gesture(Qt::SwipeGesture)) + swipeTriggered(static_cast(swipe)); + else if (QGesture* pan = event->gesture(Qt::PanGesture)) + //panTriggered(static_cast(pan)); + if (QGesture* pinch = event->gesture(Qt::PinchGesture)) + //pinchTriggered(static_cast(pinch)); + return true; +} +void MainWindow::swipeTriggered(QSwipeGesture* gesture) +{ + if (gesture->state() == Qt::GestureFinished) { + if (gesture->horizontalDirection() == QSwipeGesture::Right) { + int index = tab->currentIndex(); + index--; + if (index >= 0) { + tab->setCurrentIndex(index); + } + + } + if (gesture->horizontalDirection() == QSwipeGesture::Left) { + int index = tab->currentIndex(); + index++; + if (index < tab->count()) { + tab->setCurrentIndex(index); + } + } + //update(); + } +} \ No newline at end of file diff --git a/src/mainwindow.h b/src/mainwindow.h index dd8032c..e056bda 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -13,6 +13,8 @@ namespace Ui { } class GUIMessageDialog; class QTabWidget; +class QGestureEvent; +class QSwipeGesture; class MainWindow : public QMainWindow @@ -28,13 +30,17 @@ public: void requestLogin(); QTextEdit* getEdit(); void debugConsoleOn(); - public slots: - void triggerError(const QString&); + + void grabGestures(const QList& gestures); +public slots: + void triggerError(const QString&); protected: void changeEvent(QEvent* event); - + bool event(QEvent* event) override; private: + bool gestureEvent(QGestureEvent* event); + void swipeTriggered(QSwipeGesture*); void loadStyleSheet(const QString& sheetName); cJSON* json_root = nullptr; diff --git a/src/translations/en_US.ts b/src/translations/en_US.ts index d7ffef0..e3d904f 100644 --- a/src/translations/en_US.ts +++ b/src/translations/en_US.ts @@ -289,6 +289,14 @@ Accept + + ... + + + + Hide Panel + + GUIFormBaseDialog diff --git a/src/translations/en_US.ts.bak b/src/translations/en_US.ts.bak index d7ffef0..e3d904f 100644 --- a/src/translations/en_US.ts.bak +++ b/src/translations/en_US.ts.bak @@ -289,6 +289,14 @@ Accept + + ... + + + + Hide Panel + + GUIFormBaseDialog diff --git a/src/translations/zh_CN.qm b/src/translations/zh_CN.qm index 84b94e5..6cb8394 100644 Binary files a/src/translations/zh_CN.qm and b/src/translations/zh_CN.qm differ diff --git a/src/translations/zh_CN.ts b/src/translations/zh_CN.ts index f151828..05661f0 100644 --- a/src/translations/zh_CN.ts +++ b/src/translations/zh_CN.ts @@ -364,56 +364,66 @@ EditPatientForm - + Form - + + ... + DICOM + + + ID - + Name 姓名 - + Date Of Birth 出生日期 - + Comment 备注 - + Gender 性别 - - + + Female - - + + Male - - + + Hide Panel + + + + + Cancel 取消 - - + + Accept 接受 @@ -555,22 +565,22 @@ LoginWindow - + U S C T - + Username 用户名 - + Password 密码 - + Login 登录 @@ -609,7 +619,7 @@ 管理 - + Settings 设置 @@ -680,12 +690,12 @@ RollingMessageWidget - + Message of warn! - + Message2 of warn! @@ -761,67 +771,67 @@ parameters SelectFormWidget - - + + Account 账户 - + Worklist - - + + Add 新增 - - + + Edit 编辑 - - + + Delete 删除 - - + + Select 选择 - - + + Name 姓名 - - + + Birth Date 出生日期 - - + + Gender 性别 - - + + Add Date 添加日期 - - + + Comment 备注 @@ -837,12 +847,12 @@ parameters TopBarWidget - + 浙江衡玖医疗科技 - + °C @@ -1165,22 +1175,22 @@ parameters 正在加载... - + total: %1G 总量:%1G - + Get disk total size fail! 磁盘总空间获取失败! - + used: %1G 使用:%1G - + Get disk used size fail! 磁盘使用空间获取失败! diff --git a/src/translations/zh_CN.ts.bak b/src/translations/zh_CN.ts.bak index f151828..05661f0 100644 --- a/src/translations/zh_CN.ts.bak +++ b/src/translations/zh_CN.ts.bak @@ -364,56 +364,66 @@ EditPatientForm - + Form - + + ... + DICOM + + + ID - + Name 姓名 - + Date Of Birth 出生日期 - + Comment 备注 - + Gender 性别 - - + + Female - - + + Male - - + + Hide Panel + + + + + Cancel 取消 - - + + Accept 接受 @@ -555,22 +565,22 @@ LoginWindow - + U S C T - + Username 用户名 - + Password 密码 - + Login 登录 @@ -609,7 +619,7 @@ 管理 - + Settings 设置 @@ -680,12 +690,12 @@ RollingMessageWidget - + Message of warn! - + Message2 of warn! @@ -761,67 +771,67 @@ parameters SelectFormWidget - - + + Account 账户 - + Worklist - - + + Add 新增 - - + + Edit 编辑 - - + + Delete 删除 - - + + Select 选择 - - + + Name 姓名 - - + + Birth Date 出生日期 - - + + Gender 性别 - - + + Add Date 添加日期 - - + + Comment 备注 @@ -837,12 +847,12 @@ parameters TopBarWidget - + 浙江衡玖医疗科技 - + °C @@ -1165,22 +1175,22 @@ parameters 正在加载... - + total: %1G 总量:%1G - + Get disk total size fail! 磁盘总空间获取失败! - + used: %1G 使用:%1G - + Get disk used size fail! 磁盘使用空间获取失败!