Fix of #7583: Wizard crashes due to accessing undefined AppConfig section.
This commit is contained in:
parent
8636ec8b47
commit
c5d1e2449c
@ -100,7 +100,7 @@ public:
|
|||||||
bool has_section(const std::string §ion) const
|
bool has_section(const std::string §ion) const
|
||||||
{ return m_storage.find(section) != m_storage.end(); }
|
{ return m_storage.find(section) != m_storage.end(); }
|
||||||
const std::map<std::string, std::string>& get_section(const std::string §ion) const
|
const std::map<std::string, std::string>& get_section(const std::string §ion) const
|
||||||
{ return m_storage.find(section)->second; }
|
{ auto it = m_storage.find(section); assert(it != m_storage.end()); return it->second; }
|
||||||
void set_section(const std::string §ion, const std::map<std::string, std::string>& data)
|
void set_section(const std::string §ion, const std::map<std::string, std::string>& data)
|
||||||
{ m_storage[section] = data; }
|
{ m_storage[section] = data; }
|
||||||
void clear_section(const std::string §ion)
|
void clear_section(const std::string §ion)
|
||||||
|
@ -2720,8 +2720,11 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_config, PresetBundle *prese
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bool is_filaments_changed = app_config->get_section(AppConfig::SECTION_FILAMENTS) != appconfig_new.get_section(AppConfig::SECTION_FILAMENTS);
|
auto changed = [app_config, &appconfig_new = std::as_const(this->appconfig_new)](const std::string& section_name) {
|
||||||
bool is_sla_materials_changed = app_config->get_section(AppConfig::SECTION_MATERIALS) != appconfig_new.get_section(AppConfig::SECTION_MATERIALS);
|
return (app_config->has_section(section_name) ? app_config->get_section(section_name) : std::map<std::string, std::string>()) != appconfig_new.get_section(section_name);
|
||||||
|
};
|
||||||
|
bool is_filaments_changed = changed(AppConfig::SECTION_FILAMENTS);
|
||||||
|
bool is_sla_materials_changed = changed(AppConfig::SECTION_MATERIALS);
|
||||||
if ((check_unsaved_preset_changes = is_filaments_changed || is_sla_materials_changed)) {
|
if ((check_unsaved_preset_changes = is_filaments_changed || is_sla_materials_changed)) {
|
||||||
header = is_filaments_changed ? _L("Some filaments were uninstalled.") : _L("Some SLA materials were uninstalled.");
|
header = is_filaments_changed ? _L("Some filaments were uninstalled.") : _L("Some SLA materials were uninstalled.");
|
||||||
if (!wxGetApp().check_and_keep_current_preset_changes(caption, header, act_btns, &apply_keeped_changes))
|
if (!wxGetApp().check_and_keep_current_preset_changes(caption, header, act_btns, &apply_keeped_changes))
|
||||||
|
Loading…
Reference in New Issue
Block a user