diff --git a/src/forms/settings/systemsettingform.cpp b/src/forms/settings/systemsettingform.cpp index 3d49dde..4527666 100644 --- a/src/forms/settings/systemsettingform.cpp +++ b/src/forms/settings/systemsettingform.cpp @@ -5,6 +5,8 @@ #include #include #include +#include + #include "src/dialogs/SelectDialog.h" #include "network/networkcfgdialog.h" @@ -48,7 +50,19 @@ systemSettingForm::systemSettingForm(QWidget* parent) : ui->btnFlt->setText(JsonObject::Instance()->defaultFilter()); ui->btnFlt->setObjectName("BigBtn"); - ////test begin + QGridLayout* gridLayout = (QGridLayout*)ui->block10->layout(); + auto btn_needConfirm = new ImageSwitch(this); + auto lbl_needConfirm = new QLabel(this); + lbl_needConfirm->setText("Scan Confirm"); + gridLayout->addWidget(btn_needConfirm, 4, 2, 1, 1); + gridLayout->addWidget(lbl_needConfirm, 4, 0, 1, 1); + btn_needConfirm->setChecked(JsonObject::Instance()->getScanConfirm()); + QFrame* line5 = new QFrame(this); + line5->setFrameShape(QFrame::HLine); + line5->setFrameShadow(QFrame::Sunken); + gridLayout->addWidget(line5,5,0); + + ////test begin //flag_disksize = true; //m_disksize = 75.0; ////test end @@ -86,6 +100,9 @@ systemSettingForm::systemSettingForm(QWidget* parent) : //// } }); + connect(btn_needConfirm, &ImageSwitch::clicked, [=]() { + JsonObject::Instance()->setScanConfirm(btn_needConfirm->getChecked()); + }); connect(ui->btn_network, &QToolButton::clicked, [=]() { GetAdminPsw dialog(this); if (dialog.exec() == QDialog::Accepted) diff --git a/src/json/jsonobject.cpp b/src/json/jsonobject.cpp index 64f8f7f..58881f5 100644 --- a/src/json/jsonobject.cpp +++ b/src/json/jsonobject.cpp @@ -50,6 +50,41 @@ char* JsonObject::getJsonString(const char* catergory, const char* stringName) return second->valuestring; } + +void JsonObject::setBool(const char *catergory, const char *stringName, bool val, bool save) { + if (!loadcfg()) + return; + + cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, catergory); + if (!first) return; + + cJSON* Item = cJSON_CreateBool(val?1:0); + cJSON* valItem = cJSON_GetObjectItem(first, stringName); + if (valItem){ + cJSON_ReplaceItemInObject(first, stringName, Item); + } + else{ + cJSON_AddItemToObject(first, stringName , Item); + } + if (save) + { + savecfg(); + } +} + +bool JsonObject::getBool(const char* catergory, const char* stringName) +{ + if (!loadcfg()) + return nullptr; + + cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, catergory); + if (!first) return false; + + cJSON* second = cJSON_GetObjectItem(first, stringName); + if (!second) return false; + return second->valueint; +} + char* JsonObject::getArrayNode(const char* catergory, const char* stringName, int index, const char* id) { if (!loadcfg()) @@ -396,6 +431,12 @@ void JsonObject::autoDHCP(bool ena) setJsonString("address", "dhcp", str.toStdString().c_str()); } +bool JsonObject::getScanConfirm() { + return getBool("general","ScanConfirm"); +} +void JsonObject::setScanConfirm(bool val) { + setBool("general","ScanConfirm", val, true); +} IpAddr JsonObject::getDefaultIpAddr() { @@ -474,3 +515,5 @@ void JsonObject::setIpRouteList(const QList& list) } savecfg(); } + + diff --git a/src/json/jsonobject.h b/src/json/jsonobject.h index ebdda46..903f930 100644 --- a/src/json/jsonobject.h +++ b/src/json/jsonobject.h @@ -87,6 +87,9 @@ public: bool isDHCP(); void autoDHCP(bool); + bool getScanConfirm(); + void setScanConfirm(bool val); + IpAddr getDefaultIpAddr(); void setDefaultIpAddr(const IpAddr& addr); @@ -104,6 +107,9 @@ private: void setJsonString(const char* catergory, const char* stringName, const char* stringValue, bool save = true); char* getJsonString(const char* catergory, const char* stringName); + void setBool(const char* catergory, const char* stringName,bool val, bool save = true); + bool JsonObject::getBool(const char* catergory, const char* stringName); + char* getArrayNode(const char* catergory, const char* stringName, int index, const char* id); void setArrayNode(const char* catergory, const char* stringName, int index, const char* id, const char* stringValue); int getArraySize(const char* catergory, const char* stringName);