From ece63f5d81aa492c2fe358030a2aa5b0edfa1099 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 27 Oct 2022 17:16:44 +0200 Subject: [PATCH] Follow up previous https://github.com/Prusa-Development/PrusaSlicerPrivate/commit/cdf07c3cce81fd2653c571809a59cc9518ec3445 - code improvements --- src/slic3r/GUI/Plater.cpp | 7 ------- src/slic3r/GUI/PresetComboBoxes.cpp | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 656a7f3379..6fb7988906 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -4180,13 +4180,6 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt) combo->update(); } else if (select_preset) { - if (preset_type == Preset::TYPE_PRINTER) { - PhysicalPrinterCollection& physical_printers = wxGetApp().preset_bundle->physical_printers; - if(combo->is_selected_physical_printer()) - preset_name = physical_printers.get_selected_printer_preset_name(); - else - physical_printers.unselect_printer(); - } wxWindowUpdateLocker noUpdates(sidebar->presets_panel()); wxGetApp().get_tab(preset_type)->select_preset(preset_name); } diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 65469e6a03..c63c20685a 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -515,12 +515,24 @@ bool PresetComboBox::is_selected_physical_printer() bool PresetComboBox::selection_is_changed_according_to_physical_printers() { - if (m_type != Preset::TYPE_PRINTER || !is_selected_physical_printer()) + if (m_type != Preset::TYPE_PRINTER) return false; - PhysicalPrinterCollection& physical_printers = m_preset_bundle->physical_printers; + const std::string selected_string = into_u8(this->GetString(this->GetSelection())); + PhysicalPrinterCollection& physical_printers = m_preset_bundle->physical_printers; + Tab* tab = wxGetApp().get_tab(Preset::TYPE_PRINTER); - std::string selected_string = this->GetString(this->GetSelection()).ToUTF8().data(); + if (!is_selected_physical_printer()) { + if (!physical_printers.has_selection()) + return false; + + const bool is_changed = selected_string == physical_printers.get_selected_printer_preset_name(); + if (is_changed) + tab->select_preset(selected_string); + physical_printers.unselect_printer(); + + return is_changed; + } std::string old_printer_full_name, old_printer_preset; if (physical_printers.has_selection()) { @@ -548,7 +560,6 @@ bool PresetComboBox::selection_is_changed_according_to_physical_printers() return true; } - Tab* tab = wxGetApp().get_tab(Preset::TYPE_PRINTER); if (tab) tab->select_preset(preset_name, false, old_printer_full_name); return true;