ENH: filament preset edit menu should not change to self

jira: new

Change-Id: Ia8eb3db05f83932d2eb0b8ef2ba8014e99c8e057
(cherry picked from commit 12932832ae793b142f66e2a9c6d9a5fd819e4125)
This commit is contained in:
liz.li 2024-10-12 14:32:06 +08:00 committed by Noisyfox
parent a99d8736a7
commit cbfbe80ed8
4 changed files with 12 additions and 9 deletions

View file

@ -1467,7 +1467,7 @@ void MenuFactory::create_bbl_assemble_part_menu()
menu->AppendSeparator();
}
void MenuFactory::create_filament_action_menu(bool init)
void MenuFactory::create_filament_action_menu(bool init, int active_filament_menu_id)
{
wxMenu *menu = &m_filament_action_menu;
@ -1486,6 +1486,9 @@ void MenuFactory::create_filament_action_menu(bool init)
std::vector<wxBitmap*> icons = get_extruder_color_icons(true);
int filaments_cnt = icons.size();
for (int i = 0; i < filaments_cnt; i++) {
if (i == active_filament_menu_id)
continue;
auto preset = wxGetApp().preset_bundle->filaments.find_preset(wxGetApp().preset_bundle->filament_presets[i]);
wxString item_name = preset ? from_u8(preset->label(false)) : wxString::Format(_L("Filament %d"), i + 1);
@ -1623,7 +1626,7 @@ void MenuFactory::init(wxWindow* parent)
//BBS: add part plate related logic
create_plate_menu();
create_filament_action_menu(true);
create_filament_action_menu(true, -1);
// create "Instance to Object" menu item
append_menu_item_instance_to_object(&m_instance_menu);
@ -1782,8 +1785,8 @@ wxMenu* MenuFactory::assemble_multi_selection_menu()
return menu;
}
wxMenu *MenuFactory::filament_action_menu() {
create_filament_action_menu(false);
wxMenu *MenuFactory::filament_action_menu(int active_filament_menu_id) {
create_filament_action_menu(false, active_filament_menu_id);
return &m_filament_action_menu;
}

View file

@ -78,7 +78,7 @@ public:
wxMenu* assemble_part_menu();
wxMenu* assemble_multi_selection_menu();
wxMenu *filament_action_menu();
wxMenu *filament_action_menu(int active_filament_menu_id);
private:
enum MenuType {
@ -124,7 +124,7 @@ private:
void create_bbl_assemble_object_menu();
void create_bbl_assemble_part_menu();
void create_filament_action_menu(bool init);
void create_filament_action_menu(bool init, int active_filament_menu_id);
wxMenu* append_submenu_add_generic(wxMenu* menu, ModelVolumeType type);
// Orca: add submenu for adding handy models

View file

@ -1384,7 +1384,7 @@ void Sidebar::init_filament_combo(PlaterPresetComboBox **combo, const int filame
PlaterPresetComboBox* combobox = (*combo);
edit_btn->Bind(wxEVT_BUTTON, [this, edit_btn, filament_idx](wxCommandEvent) {
auto menu = p->plater->filament_action_menu();
auto menu = p->plater->filament_action_menu(filament_idx);
wxPoint pt { 0, edit_btn->GetSize().GetHeight() + 10 };
pt = edit_btn->ClientToScreen(pt);
pt = wxGetApp().mainframe->ScreenToClient(pt);
@ -15306,7 +15306,7 @@ wxMenu* Plater::default_menu() { return p->menus.default_menu();
wxMenu* Plater::instance_menu() { return p->menus.instance_menu(); }
wxMenu* Plater::layer_menu() { return p->menus.layer_menu(); }
wxMenu* Plater::multi_selection_menu() { return p->menus.multi_selection_menu(); }
wxMenu *Plater::filament_action_menu() { return p->menus.filament_action_menu(); }
wxMenu *Plater::filament_action_menu(int active_filament_menu_id) { return p->menus.filament_action_menu(active_filament_menu_id); }
int Plater::GetPlateIndexByRightMenuInLeftUI() { return p->m_is_RightClickInLeftUI; }
void Plater::SetPlateIndexByRightMenuInLeftUI(int index) { p->m_is_RightClickInLeftUI = index; }
SuppressBackgroundProcessingUpdate::SuppressBackgroundProcessingUpdate() :

View file

@ -789,7 +789,7 @@ public:
wxMenu* instance_menu();
wxMenu* layer_menu();
wxMenu* multi_selection_menu();
wxMenu* filament_action_menu();
wxMenu* filament_action_menu(int active_filament_menu_id);
int GetPlateIndexByRightMenuInLeftUI();
void SetPlateIndexByRightMenuInLeftUI(int);
static bool has_illegal_filename_characters(const wxString& name);