Add a Scan confirm setting.

This commit is contained in:
Krad
2022-05-13 14:20:49 +08:00
parent d5038bb548
commit d268d48bc2
3 changed files with 67 additions and 1 deletions

View File

@@ -5,6 +5,8 @@
#include <QDebug>
#include <QLineEdit>
#include <QToolButton>
#include <QGridLayout>
#include "src/dialogs/SelectDialog.h"
#include "network/networkcfgdialog.h"
@@ -48,6 +50,18 @@ systemSettingForm::systemSettingForm(QWidget* parent) :
ui->btnFlt->setText(JsonObject::Instance()->defaultFilter());
ui->btnFlt->setObjectName("BigBtn");
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;
@@ -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)

View File

@@ -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<QStringList>& list)
}
savecfg();
}

View File

@@ -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);