From 591b5b161314916ad4f6303b44187a923f4d9d57 Mon Sep 17 00:00:00 2001 From: yangjiaxuan <171295266@qq.com> Date: Wed, 5 Jul 2023 10:46:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BF=9D=E5=AD=98=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/twainui/hg_settingdialog.cpp | 80 ++++------------------------ 1 file changed, 10 insertions(+), 70 deletions(-) diff --git a/modules/twainui/hg_settingdialog.cpp b/modules/twainui/hg_settingdialog.cpp index a4ce2ffd..10cfe9ce 100644 --- a/modules/twainui/hg_settingdialog.cpp +++ b/modules/twainui/hg_settingdialog.cpp @@ -2146,72 +2146,13 @@ void hg_settingdialog::save_scheme(void) if (comb_->currentIndex() == 0) return; - std::string name(cur_scheme_->get_scheme_name()); - - bool add = name.empty(); - - if(add) - { - name = getCurUiShemeName(name); - } - else - { - int items = 0; - add = cur_scheme_->has_changed(&items); - if(add) - { - if(items == 0) // while shemes is default - { - cur_cfg_->select_scheme(nullptr); - cur_cfg_->remove_scheme(cur_scheme_->get_scheme_name().c_str()); - cur_cfg_->save(); - return; - } - else - add = false; - } - } - if(add) - { - if(name.empty() && cur_scheme_->get_scheme_name().empty()) - { - cur_scheme_->end_setting(true); - return; - } - - gb::sane_config_schm* cp = cur_scheme_->copy(); - - cur_scheme_->end_setting(true); - cur_scheme_->release(); - cur_scheme_ = cp; - - size_t pos = name.rfind('-'); - int ind = 0; - char append[20] = {0}; - - if(pos != std::string::npos) - { - ind = atoi(name.c_str() + pos + 1); - if(ind > 0) - { - name.erase(pos); -// sprintf(append, "-%d", ++ind); - } - } - cur_cfg_->add_scheme(cur_scheme_, (name + append).c_str()); -// while (!cur_cfg_->add_scheme(cur_scheme_, (name + append).c_str())) -// { -// sprintf(append, "-%d", ++ind); -// } - } - else - { - cur_scheme_->end_setting(false); - } - - cur_cfg_->select_scheme(cur_scheme_->get_scheme_name().c_str()); - + this->cur_scheme_ = this->cur_cfg_->get_scheme(comb_->currentText().toStdString().c_str()); + cur_scheme_->end_setting(true); + cur_scheme_->begin_setting(); + updateSchemeFromUi(); + cur_scheme_->end_setting(false); cur_cfg_->save(); + cur_cfg_->select_scheme(cur_scheme_->get_scheme_name().c_str()); } void hg_settingdialog::cancel_setting(void) { @@ -2408,16 +2349,15 @@ void hg_settingdialog::updateDefaultScheme() if (comb_->currentIndex() == 0) { - bool check = false; if (searchKeyName("default", opt->name)) { - check = getDefaultCfgValue("default", opt->name, false); - } - cb->setCheckState(check ? Qt::Checked : Qt::Unchecked); - if (strcmp(opt->name, SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA) == 0 && btn_gamma_ != nullptr) + bool check = getDefaultCfgValue("default", opt->name, false); + cb->setCheckState(check ? Qt::Checked : Qt::Unchecked); + if (strcmp(opt->name, SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA) == 0 && btn_gamma_ != nullptr) { btn_gamma_->setEnabled(check); } + } } //connect(cb, SIGNAL(stateChanged(int)), this, SLOT(slot_checkedClicked())); break;