From 7ce090d2b5308650d5cb10f0dac021efa181214d Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Wed, 6 Nov 2024 12:32:10 +0800 Subject: [PATCH] FIX: ComboBox set icon Change-Id: If74ccca3649913d8cf6664347d082f75e4425b00 Jira: STUDIO-8640 --- src/slic3r/GUI/PresetComboBoxes.cpp | 2 +- src/slic3r/GUI/Widgets/ComboBox.cpp | 11 ++++++++--- src/slic3r/GUI/Widgets/DropDown.cpp | 3 ++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index cfcace60d..a54be1851 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -1045,7 +1045,7 @@ void PlaterPresetComboBox::update() if (m_type == Preset::TYPE_FILAMENT) add_ams_filaments(into_u8(selected_user_preset.empty() ? selected_system_preset : selected_user_preset), true); - std::vector filament_orders = {"Bambu PLA Basic", "Bambu PLA Mette", "Bambu PETG HF", "Bambu ABS", "Bambu PLA Sink", "Bambu PLA-CF", + std::vector filament_orders = {"Bambu PLA Basic", "Bambu PLA Matte", "Bambu PETG HF", "Bambu ABS", "Bambu PLA Silk", "Bambu PLA-CF", "Bambu PLA Galaxy", "Bambu PLA Metal", "Bambu PLA Marble", "Bambu PETG-CF", "Bambu PETG Translucent", "Bambu ABS-GF"}; std::vector first_vendors = {"Bambu Lab", "Generic"}; std::vector first_types = {"PLA", "PETG", "ABS", "TPU"}; diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index c930b26ec..05e8507f7 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -84,10 +84,13 @@ void ComboBox::SetSelection(int n) return; drop.SetSelection(n); SetLabel(drop.GetValue()); - if (drop.selection >= 0 && drop.iconSize.y > 0) + if (drop.selection >= 0 && drop.iconSize.y > 0 && icons[drop.selection].IsOk()) SetIcon(icons[drop.selection]); + else + SetIcon("drop_down"); } -void ComboBox::SelectAndNotify(int n) { + +void ComboBox::SelectAndNotify(int n) { SetSelection(n); sendComboBoxEvent(); } @@ -107,8 +110,10 @@ void ComboBox::SetValue(const wxString &value) { drop.SetValue(value); SetLabel(value); - if (drop.selection >= 0 && drop.iconSize.y > 0) + if (drop.selection >= 0 && drop.iconSize.y > 0 && icons[drop.selection].IsOk()) SetIcon(icons[drop.selection]); + else + SetIcon("drop_down"); } void ComboBox::SetLabel(const wxString &value) diff --git a/src/slic3r/GUI/Widgets/DropDown.cpp b/src/slic3r/GUI/Widgets/DropDown.cpp index 1ef65e55e..6db97bd07 100644 --- a/src/slic3r/GUI/Widgets/DropDown.cpp +++ b/src/slic3r/GUI/Widgets/DropDown.cpp @@ -332,7 +332,8 @@ void DropDown::messureSize() wxSize size1 = text_off ? wxSize() : dc.GetMultiLineTextExtent(texts[i]); if (icons[i].IsOk()) { wxSize size2 = GetBmpSize(icons[i]); - if (size2.x > iconSize.x) iconSize = size2; + if (size2.x > iconSize.x) + iconSize = size2; if (!align_icon) { size1.x += size2.x + (text_off ? 0 : 5); }