mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-07-16 22:21:50 +08:00
Fix in sla mode: wrong part menu and split submenu
This commit is contained in:
parent
0dadde6ae3
commit
9de057ddeb
@ -1088,22 +1088,28 @@ void MenuFactory::create_common_object_menu(wxMenu* menu)
|
||||
append_menu_items_mirror(menu);
|
||||
}
|
||||
|
||||
void MenuFactory::create_object_menu()
|
||||
void MenuFactory::append_menu_items_split(wxMenu *menu)
|
||||
{
|
||||
create_common_object_menu(&m_object_menu);
|
||||
wxMenu* split_menu = new wxMenu();
|
||||
if (!split_menu)
|
||||
return;
|
||||
|
||||
append_menu_item(split_menu, wxID_ANY, _L("To objects"), _L("Split the selected object into individual objects"),
|
||||
[](wxCommandEvent&) { plater()->split_object(); }, "split_object_SMALL", &m_object_menu,
|
||||
[](wxCommandEvent&) { plater()->split_object(); }, "split_object_SMALL", menu,
|
||||
[]() { return plater()->can_split(true); }, m_parent);
|
||||
append_menu_item(split_menu, wxID_ANY, _L("To parts"), _L("Split the selected object into individual parts"),
|
||||
[](wxCommandEvent&) { plater()->split_volume(); }, "split_parts_SMALL", &m_object_menu,
|
||||
[](wxCommandEvent&) { plater()->split_volume(); }, "split_parts_SMALL", menu,
|
||||
[]() { return plater()->can_split(false); }, m_parent);
|
||||
|
||||
append_submenu(&m_object_menu, split_menu, wxID_ANY, _L("Split"), _L("Split the selected object"), "",
|
||||
append_submenu(menu, split_menu, wxID_ANY, _L("Split"), _L("Split the selected object"), "",
|
||||
[]() { return plater()->can_split(true); }, m_parent);
|
||||
}
|
||||
|
||||
void MenuFactory::create_object_menu()
|
||||
{
|
||||
create_common_object_menu(&m_object_menu);
|
||||
|
||||
append_menu_items_split(&m_object_menu);
|
||||
m_object_menu.AppendSeparator();
|
||||
|
||||
// "Height range Modifier" and "Add (volumes)" menu items will be added later in append_menu_items_add_volume()
|
||||
@ -1112,9 +1118,7 @@ void MenuFactory::create_object_menu()
|
||||
void MenuFactory::create_sla_object_menu()
|
||||
{
|
||||
create_common_object_menu(&m_sla_object_menu);
|
||||
append_menu_item(&m_sla_object_menu, wxID_ANY, _L("Split"), _L("Split the selected object into individual objects"),
|
||||
[](wxCommandEvent&) { plater()->split_object(); }, "split_object_SMALL", nullptr,
|
||||
[]() { return plater()->can_split(true); }, m_parent);
|
||||
append_menu_items_split(&m_sla_object_menu);
|
||||
|
||||
m_sla_object_menu.AppendSeparator();
|
||||
append_menu_items_add_sla_volume(&m_sla_object_menu);
|
||||
|
@ -113,6 +113,7 @@ private:
|
||||
void append_menu_item_edit_text(wxMenu *menu);
|
||||
void append_menu_items_instance_manipulation(wxMenu *menu);
|
||||
void update_menu_items_instance_manipulation(MenuType type);
|
||||
void append_menu_items_split(wxMenu *menu);
|
||||
};
|
||||
|
||||
}}
|
||||
|
@ -4484,9 +4484,9 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
|
||||
// so this selection should be updated before menu creation
|
||||
wxGetApp().obj_list()->update_selections();
|
||||
|
||||
if (printer_technology == ptSLA)
|
||||
menu = menus.sla_object_menu();
|
||||
else {
|
||||
// if (printer_technology == ptSLA)
|
||||
// menu = menus.sla_object_menu();
|
||||
// else {
|
||||
const Selection& selection = get_selection();
|
||||
// show "Object menu" for each one or several FullInstance instead of FullObject
|
||||
const bool is_some_full_instances = selection.is_single_full_instance() ||
|
||||
@ -4498,12 +4498,12 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
|
||||
const bool is_part = selection.is_single_volume() || selection.is_single_modifier();
|
||||
#endif // ENABLE_WORLD_COORDINATE
|
||||
if (is_some_full_instances)
|
||||
menu = menus.object_menu();
|
||||
menu = printer_technology == ptSLA ? menus.sla_object_menu() : menus.object_menu();
|
||||
else if (is_part)
|
||||
menu = selection.is_single_text() ? menus.text_part_menu() : menus.part_menu();
|
||||
else
|
||||
menu = menus.multi_selection_menu();
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
if (q != nullptr && menu) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user