From 1fbc179ae4874d24089dc1faf81608b9417481cb Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Wed, 22 Jan 2025 11:44:07 +0800 Subject: [PATCH] FIX: sync extruder info when select preset when the connected machine is mutli_extruer and is the same as preset 2. fix the filament unprintable check bug jira: STUDIO-10047 Change-Id: I4e78003f080897d5b43c0a742852078b149eba45 --- src/slic3r/GUI/PartPlate.cpp | 2 +- src/slic3r/GUI/Plater.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 6281ac4a7..ae9cfa29a 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -1314,7 +1314,7 @@ std::vector PartPlate::get_used_filaments() bool PartPlate::check_filament_printable(const DynamicPrintConfig &config, wxString& error_message) { error_message.clear(); - FilamentMapMode mode = config.option>("filament_map_mode")->value; + FilamentMapMode mode = this->get_real_filament_map_mode(config); // only check printablity if we have explicit map result if (mode != fmmManual) return true; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 68d5ab7f9..35132b7c1 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -7937,6 +7937,17 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt) // update plater with new config q->on_config_change(wxGetApp().preset_bundle->full_config()); }); + + // sync extruder info when select multi_extruder preset + if (Slic3r::DeviceManager *dev = Slic3r::GUI::wxGetApp().getDeviceManager()) { + MachineObject *obj = dev->get_selected_machine(); + if (obj && obj->is_multi_extruders()) { + PresetBundle *preset_bundle = wxGetApp().preset_bundle; + if (preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->printer_type) { + GUI::wxGetApp().sidebar().sync_extruder_list(); + } + } + } } else { // BBS // wxWindowUpdateLocker noUpdates1(sidebar->print_panel());