mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-07-19 20:54:27 +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);
|
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();
|
wxMenu* split_menu = new wxMenu();
|
||||||
if (!split_menu)
|
if (!split_menu)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
append_menu_item(split_menu, wxID_ANY, _L("To objects"), _L("Split the selected object into individual objects"),
|
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);
|
[]() { 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"),
|
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);
|
[]() { 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);
|
[]() { 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();
|
m_object_menu.AppendSeparator();
|
||||||
|
|
||||||
// "Height range Modifier" and "Add (volumes)" menu items will be added later in append_menu_items_add_volume()
|
// "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()
|
void MenuFactory::create_sla_object_menu()
|
||||||
{
|
{
|
||||||
create_common_object_menu(&m_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"),
|
append_menu_items_split(&m_sla_object_menu);
|
||||||
[](wxCommandEvent&) { plater()->split_object(); }, "split_object_SMALL", nullptr,
|
|
||||||
[]() { return plater()->can_split(true); }, m_parent);
|
|
||||||
|
|
||||||
m_sla_object_menu.AppendSeparator();
|
m_sla_object_menu.AppendSeparator();
|
||||||
append_menu_items_add_sla_volume(&m_sla_object_menu);
|
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_item_edit_text(wxMenu *menu);
|
||||||
void append_menu_items_instance_manipulation(wxMenu *menu);
|
void append_menu_items_instance_manipulation(wxMenu *menu);
|
||||||
void update_menu_items_instance_manipulation(MenuType type);
|
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
|
// so this selection should be updated before menu creation
|
||||||
wxGetApp().obj_list()->update_selections();
|
wxGetApp().obj_list()->update_selections();
|
||||||
|
|
||||||
if (printer_technology == ptSLA)
|
// if (printer_technology == ptSLA)
|
||||||
menu = menus.sla_object_menu();
|
// menu = menus.sla_object_menu();
|
||||||
else {
|
// else {
|
||||||
const Selection& selection = get_selection();
|
const Selection& selection = get_selection();
|
||||||
// show "Object menu" for each one or several FullInstance instead of FullObject
|
// show "Object menu" for each one or several FullInstance instead of FullObject
|
||||||
const bool is_some_full_instances = selection.is_single_full_instance() ||
|
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();
|
const bool is_part = selection.is_single_volume() || selection.is_single_modifier();
|
||||||
#endif // ENABLE_WORLD_COORDINATE
|
#endif // ENABLE_WORLD_COORDINATE
|
||||||
if (is_some_full_instances)
|
if (is_some_full_instances)
|
||||||
menu = menus.object_menu();
|
menu = printer_technology == ptSLA ? menus.sla_object_menu() : menus.object_menu();
|
||||||
else if (is_part)
|
else if (is_part)
|
||||||
menu = selection.is_single_text() ? menus.text_part_menu() : menus.part_menu();
|
menu = selection.is_single_text() ? menus.text_part_menu() : menus.part_menu();
|
||||||
else
|
else
|
||||||
menu = menus.multi_selection_menu();
|
menu = menus.multi_selection_menu();
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (q != nullptr && menu) {
|
if (q != nullptr && menu) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user