调整保存配置功能

This commit is contained in:
yangjiaxuan 2023-07-05 10:46:53 +08:00
parent 314c6ca539
commit 591b5b1613
1 changed files with 10 additions and 70 deletions

View File

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