From bd43118148b9f1f06f7b3aaec9fe8090abb9bcb0 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 15 Jun 2023 14:00:43 +0200 Subject: [PATCH] Fix of Asserts and incompatible filament selection, when hide/show template filaments (SPE-1786) --- src/libslic3r/PresetBundle.cpp | 4 +++- src/slic3r/GUI/Plater.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 730574af13..af57c9314d 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -675,7 +675,9 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p void PresetBundle::export_selections(AppConfig &config) { assert(this->printers.get_edited_preset().printer_technology() != ptFFF || extruders_filaments.size() >= 1); - assert(this->printers.get_edited_preset().printer_technology() != ptFFF || extruders_filaments.size() > 1 || filaments.get_selected_preset().alias == extruders_filaments.front().get_selected_preset()->alias); + // #ysFIXME_delete_after_test !All filament selections are always saved in extruder_filaments (for MM and SM printers), + // so there is no need to control a correspondence between filaments and extruders_filaments + //assert(this->printers.get_edited_preset().printer_technology() != ptFFF || extruders_filaments.size() > 1 || filaments.get_selected_preset().alias == extruders_filaments.front().get_selected_preset()->alias); config.clear_section("presets"); config.set("presets", "print", prints.get_selected_preset_name()); config.set("presets", "filament", extruders_filaments.front().get_selected_preset_name()); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 902eeb6ded..af6fdc3bf4 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -7133,7 +7133,9 @@ void Plater::force_filament_cb_update() // Update preset comboboxes on sidebar and filaments tab p->sidebar->update_presets(Preset::TYPE_FILAMENT); - wxGetApp().get_tab(Preset::TYPE_FILAMENT)->select_preset(wxGetApp().preset_bundle->filaments.get_selected_preset_name()); + + TabFilament* tab = dynamic_cast(wxGetApp().get_tab(Preset::TYPE_FILAMENT)); + tab->select_preset(wxGetApp().preset_bundle->extruders_filaments[tab->get_active_extruder()].get_selected_preset_name()); } void Plater::force_print_bed_update()