diff --git a/src/forms/scan/ScanFormWidget.cpp b/src/forms/scan/ScanFormWidget.cpp index 76b5a60..f3dfd35 100644 --- a/src/forms/scan/ScanFormWidget.cpp +++ b/src/forms/scan/ScanFormWidget.cpp @@ -16,6 +16,7 @@ #include #include "log/UserOperationLog.h" #include +#include "json/jsonobject.h" #ifdef WIN32 #else @@ -229,6 +230,11 @@ ScanFormWidget::ScanFormWidget(QWidget* parent) : TabFormWidget(parent) { connect(btnScan, &QToolButton::clicked, [=]() { QString patientInf(patient_information->getCurrentPatientJsonString(false)); LOG_USER_OPERATION(StartScan); + if (!JsonObject::Instance()->getEmptyScanID()){ + QString msg(tr("No refresh data exists, please do Refresh operation first.")); + EventCenter::Default()->triggerEvent(GUIEvents::DeviceErrorRaise, nullptr, (QObject*)(&msg)); + return; + } EventCenter::Default()->triggerEvent(GUIEvents::RequestPatientScan, nullptr, (QObject*)(&patientInf)); }); connect(btnStop, &QToolButton::clicked, [=]() { diff --git a/src/json/ScanJson.cpp b/src/json/ScanJson.cpp index e6145b0..adae9c3 100644 --- a/src/json/ScanJson.cpp +++ b/src/json/ScanJson.cpp @@ -8,7 +8,11 @@ #include void ScanJson::save() { if (!root) return; - QFile f(QString("%1/%2.json").arg(QCoreApplication::applicationDirPath(),scanID.c_str())); + QDir d(QCoreApplication::applicationDirPath()); + if (!d.exists("jsons")){ + d.mkdir("jsons"); + } + QFile f(QString("%1/jsons/%2.json").arg(QCoreApplication::applicationDirPath(),scanID.c_str())); f.open(QFileDevice::ReadWrite); cJSON_AddItemToObject(root, "EmptyScanID", cJSON_CreateString(emptyScanID.c_str())); cJSON_AddItemToObject(root, "ScanID", cJSON_CreateString(scanID.c_str())); diff --git a/src/json/ScanJson.h b/src/json/ScanJson.h index 296dda4..c4d7a8b 100644 --- a/src/json/ScanJson.h +++ b/src/json/ScanJson.h @@ -7,6 +7,7 @@ #include #include "cJSON.h" +#include "jsonobject.h" class ScanJson { public: @@ -27,8 +28,10 @@ public: void setEmptyScanID(const char * id){ emptyScanID.clear(); emptyScanID.append(id); + JsonObject::Instance()->setEmptyScanID(id); setScanID(id); } + void save(); static ScanJson* Current(){ static ScanJson instance; diff --git a/src/json/jsonobject.cpp b/src/json/jsonobject.cpp index 58881f5..6d694ee 100644 --- a/src/json/jsonobject.cpp +++ b/src/json/jsonobject.cpp @@ -30,7 +30,13 @@ void JsonObject::setJsonString(const char* catergory, const char* stringName, co if (!first) return; cJSON* Item = cJSON_CreateString(stringValue); - cJSON_ReplaceItemInObject(first, stringName, Item); + cJSON* valItem = cJSON_GetObjectItem(first, stringName); + if (valItem){ + cJSON_ReplaceItemInObject(first, stringName, Item); + } + else{ + cJSON_AddItemToObject(first, stringName , Item); + } if (save) { savecfg(); @@ -516,4 +522,12 @@ void JsonObject::setIpRouteList(const QList& list) savecfg(); } +void JsonObject::setEmptyScanID(const char *id) { + setJsonString("deviceparam","EmptyScanID",id, true); +} + +const char *JsonObject::getEmptyScanID() { + return getJsonString("deviceparam","EmptyScanID"); +} + diff --git a/src/json/jsonobject.h b/src/json/jsonobject.h index 903f930..7b0daa8 100644 --- a/src/json/jsonobject.h +++ b/src/json/jsonobject.h @@ -90,6 +90,9 @@ public: bool getScanConfirm(); void setScanConfirm(bool val); + const char* getEmptyScanID(); + void setEmptyScanID(const char* id); + IpAddr getDefaultIpAddr(); void setDefaultIpAddr(const IpAddr& addr);