diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 72eed3e7c1..2cbbd21683 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -5597,7 +5597,8 @@ bool GUI_App::check_and_save_current_preset_changes(const wxString& caption, con if (remember_choice) act_buttons |= ActionButtons::REMEMBER_CHOISE; UnsavedChangesDialog dlg(caption, header, "", act_buttons); - if (dlg.ShowModal() == wxID_CANCEL) + bool no_need_change = dlg.getUpdateItemCount() == 0 ? true : false; + if (!no_need_change && dlg.ShowModal() == wxID_CANCEL) return false; if (dlg.save_preset()) // save selected changes diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index b86e2b75e1..b71248a07c 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -5114,17 +5114,13 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/, apply_config_from_cache(); // Orca: update presets for the selected printer + load_current_preset(); + if (m_type == Preset::TYPE_PRINTER && wxGetApp().app_config->get_bool("remember_printer_config")) { m_preset_bundle->update_selections(*wxGetApp().app_config); - int extruders_count = m_preset_bundle->printers.get_edited_preset().config.opt("nozzle_diameter")->values.size(); - if (extruders_count > 1) { - // multi tool - wxGetApp().plater()->sidebar().on_filaments_change(extruders_count); - } else { - wxGetApp().plater()->sidebar().on_filaments_change(m_preset_bundle->filament_presets.size()); - } + wxGetApp().plater()->sidebar().on_filaments_change(m_preset_bundle->filament_presets.size()); } - load_current_preset(); + if (delete_third_printer) { wxGetApp().CallAfter([filament_presets, process_presets]() { @@ -6104,9 +6100,8 @@ void Page::update_visibility(ConfigOptionMode mode, bool update_contolls_visibil #ifdef __WXMSW__ if (!m_show) return; // BBS: fix field control position - auto groups = this->m_optgroups; - wxTheApp->CallAfter([groups]() { - for (auto group : groups) { + wxTheApp->CallAfter([this]() { + for (auto group : m_optgroups) { if (group->custom_ctrl) group->custom_ctrl->fixup_items_positions(); } });