调整保存配置功能
This commit is contained in:
parent
314c6ca539
commit
591b5b1613
|
@ -2146,72 +2146,13 @@ void hg_settingdialog::save_scheme(void)
|
||||||
if (comb_->currentIndex() == 0)
|
if (comb_->currentIndex() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::string name(cur_scheme_->get_scheme_name());
|
this->cur_scheme_ = this->cur_cfg_->get_scheme(comb_->currentText().toStdString().c_str());
|
||||||
|
cur_scheme_->end_setting(true);
|
||||||
bool add = name.empty();
|
cur_scheme_->begin_setting();
|
||||||
|
updateSchemeFromUi();
|
||||||
if(add)
|
cur_scheme_->end_setting(false);
|
||||||
{
|
|
||||||
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());
|
|
||||||
|
|
||||||
cur_cfg_->save();
|
cur_cfg_->save();
|
||||||
|
cur_cfg_->select_scheme(cur_scheme_->get_scheme_name().c_str());
|
||||||
}
|
}
|
||||||
void hg_settingdialog::cancel_setting(void)
|
void hg_settingdialog::cancel_setting(void)
|
||||||
{
|
{
|
||||||
|
@ -2408,16 +2349,15 @@ void hg_settingdialog::updateDefaultScheme()
|
||||||
|
|
||||||
if (comb_->currentIndex() == 0)
|
if (comb_->currentIndex() == 0)
|
||||||
{
|
{
|
||||||
bool check = false;
|
|
||||||
if (searchKeyName("default", opt->name))
|
if (searchKeyName("default", opt->name))
|
||||||
{
|
{
|
||||||
check = getDefaultCfgValue("default", opt->name, false);
|
bool check = getDefaultCfgValue("default", opt->name, false);
|
||||||
}
|
cb->setCheckState(check ? Qt::Checked : Qt::Unchecked);
|
||||||
cb->setCheckState(check ? Qt::Checked : Qt::Unchecked);
|
if (strcmp(opt->name, SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA) == 0 && btn_gamma_ != nullptr)
|
||||||
if (strcmp(opt->name, SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA) == 0 && btn_gamma_ != nullptr)
|
|
||||||
{
|
{
|
||||||
btn_gamma_->setEnabled(check);
|
btn_gamma_->setEnabled(check);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//connect(cb, SIGNAL(stateChanged(int)), this, SLOT(slot_checkedClicked()));
|
//connect(cb, SIGNAL(stateChanged(int)), this, SLOT(slot_checkedClicked()));
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue