修复配置方案变更存储BUG

This commit is contained in:
gb 2023-03-03 15:25:17 +08:00
parent 4610935a13
commit 6c3f32c5de
4 changed files with 7 additions and 6 deletions

View File

@ -206,8 +206,9 @@ void dlg_cfg_mgr::on_del_selected(void)
void dlg_cfg_mgr::on_del_all(void) void dlg_cfg_mgr::on_del_all(void)
{ {
cfg_->remove_all_schemes(); cfg_->remove_all_schemes();
ListView_DeleteAllItems(get_item(IDC_LIST1)); ListView_DeleteAllItems(get_item(IDC_LIST1)); // clear list
schm_changed_ = true; schm_changed_ = true;
dlg_base::set_item_text(IDC_EDIT1, L"");
} }
bool dlg_cfg_mgr::is_scheme_changed(void) bool dlg_cfg_mgr::is_scheme_changed(void)
{ {

View File

@ -15,7 +15,7 @@ class dlg_cfg_mgr: public dlg_base
{ {
gb::scanner_cfg* cfg_; gb::scanner_cfg* cfg_;
std::wstring label_; std::wstring label_;
bool schm_changed_; bool schm_changed_; // to notify parent refreshing UI and settings
BOOL handle_message(UINT msg, WPARAM wp, LPARAM lp) override; BOOL handle_message(UINT msg, WPARAM wp, LPARAM lp) override;
void handle_command(WORD code, WORD id, HANDLE ctrl); void handle_command(WORD code, WORD id, HANDLE ctrl);

View File

@ -130,7 +130,7 @@ void dlg_setting::handle_command(WORD code, WORD id, HANDLE ctrl)
} }
n->release(); n->release();
} }
s->end_setting(true); s->end_setting(true); // discard changes in prev-scheme
s->release(); s->release();
} }
} }
@ -144,7 +144,7 @@ void dlg_setting::handle_command(WORD code, WORD id, HANDLE ctrl)
gb::sane_config_schm* s = cfg_->get_scheme(); gb::sane_config_schm* s = cfg_->get_scheme();
if (s) if (s)
{ {
s->end_setting(false); s->end_setting(false); // save changes
s->release(); s->release();
} }
@ -196,7 +196,7 @@ void dlg_setting::handle_command(WORD code, WORD id, HANDLE ctrl)
{ {
dlg_cfg_mgr dlg(cfg_, hwnd()); dlg_cfg_mgr dlg(cfg_, hwnd());
dlg.do_modal(hwnd()); dlg.do_modal(hwnd());
if (dlg.is_scheme_changed()) if (dlg.is_scheme_changed()) // refresh settings and UI
{ {
gb::sane_config_schm* schm = cfg_->get_scheme(); gb::sane_config_schm* schm = cfg_->get_scheme();
apply_scheme_(schm, apply_param_); apply_scheme_(schm, apply_param_);