ENH:adjust cut-cutter menu content in 3d view
jira: none Change-Id: I384ea7216b5dcebb0869ef7e1b41a4391d7d3b6b
This commit is contained in:
parent
f1d774f6c0
commit
c1fd68051d
|
@ -1337,6 +1337,13 @@ void MenuFactory::create_bbl_assemble_part_menu()
|
|||
menu->AppendSeparator();
|
||||
}
|
||||
|
||||
void MenuFactory::create_cut_cutter_menu()
|
||||
{
|
||||
wxMenu *menu = &m_cut_cutter_menu;
|
||||
append_menu_item_delete(menu);
|
||||
append_menu_item_change_type(menu);
|
||||
}
|
||||
|
||||
//BBS: add part plate related logic
|
||||
void MenuFactory::create_plate_menu()
|
||||
{
|
||||
|
@ -1436,7 +1443,7 @@ void MenuFactory::init(wxWindow* parent)
|
|||
create_bbl_part_menu();
|
||||
create_bbl_assemble_object_menu();
|
||||
create_bbl_assemble_part_menu();
|
||||
|
||||
create_cut_cutter_menu();
|
||||
//BBS: add part plate related logic
|
||||
create_plate_menu();
|
||||
|
||||
|
@ -1511,6 +1518,11 @@ wxMenu *MenuFactory::svg_part_menu()
|
|||
return &m_svg_part_menu;
|
||||
}
|
||||
|
||||
wxMenu *MenuFactory::cut_connector_menu()
|
||||
{
|
||||
return &m_cut_cutter_menu;
|
||||
}
|
||||
|
||||
wxMenu* MenuFactory::instance_menu()
|
||||
{
|
||||
return &m_instance_menu;
|
||||
|
|
|
@ -69,6 +69,7 @@ public:
|
|||
wxMenu* part_menu();
|
||||
wxMenu *text_part_menu();
|
||||
wxMenu *svg_part_menu();
|
||||
wxMenu* cut_connector_menu();
|
||||
wxMenu* instance_menu();
|
||||
wxMenu* layer_menu();
|
||||
wxMenu* multi_selection_menu();
|
||||
|
@ -91,6 +92,7 @@ private:
|
|||
MenuWithSeparators m_part_menu;
|
||||
MenuWithSeparators m_text_part_menu;
|
||||
MenuWithSeparators m_svg_part_menu;
|
||||
MenuWithSeparators m_cut_cutter_menu;
|
||||
MenuWithSeparators m_sla_object_menu;
|
||||
MenuWithSeparators m_default_menu;
|
||||
MenuWithSeparators m_instance_menu;
|
||||
|
@ -126,6 +128,7 @@ private:
|
|||
void create_bbl_part_menu();
|
||||
void create_bbl_assemble_object_menu();
|
||||
void create_bbl_assemble_part_menu();
|
||||
void create_cut_cutter_menu();
|
||||
|
||||
wxMenu* append_submenu_add_generic(wxMenu* menu, ModelVolumeType type);
|
||||
void append_menu_item_add_svg(wxMenu *menu, ModelVolumeType type, bool is_submenu_item = true);
|
||||
|
|
|
@ -5192,9 +5192,16 @@ ModelVolume* ObjectList::get_selected_model_volume()
|
|||
void ObjectList::change_part_type()
|
||||
{
|
||||
ModelVolume* volume = get_selected_model_volume();
|
||||
if (!volume)
|
||||
return;
|
||||
|
||||
if (!volume) {
|
||||
auto canvas_type = wxGetApp().plater()->get_current_canvas3D()->get_canvas_type();
|
||||
if (canvas_type == GLCanvas3D::ECanvasType::CanvasView3D && is_connectors_item_selected()) {
|
||||
const Selection &selection = wxGetApp().plater()->get_view3D_canvas3D()->get_selection();
|
||||
const GLVolume * gl_volume = selection.get_first_volume();
|
||||
volume = get_model_volume(*gl_volume, selection.get_model()->objects);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
const int obj_idx = get_selected_obj_idx();
|
||||
if (obj_idx < 0) return;
|
||||
|
||||
|
@ -5217,10 +5224,12 @@ void ObjectList::change_part_type()
|
|||
wxArrayString names;
|
||||
names.Add(_L("Part"));
|
||||
names.Add(_L("Negative Part"));
|
||||
names.Add(_L("Modifier"));
|
||||
if (!volume->is_svg()) {
|
||||
names.Add(_L("Support Blocker"));
|
||||
names.Add(_L("Support Enforcer"));
|
||||
if (!volume->is_cut_connector()) {
|
||||
names.Add(_L("Modifier"));
|
||||
if (!volume->is_svg()) {
|
||||
names.Add(_L("Support Blocker"));
|
||||
names.Add(_L("Support Enforcer"));
|
||||
}
|
||||
}
|
||||
|
||||
SingleChoiceDialog dlg(_L("Type:"), _L("Choose part type"), names, int(type));
|
||||
|
|
|
@ -7445,8 +7445,15 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
|
|||
else if (is_part) {
|
||||
const GLVolume * gl_volume = selection.get_first_volume();
|
||||
const ModelVolume *model_volume = get_model_volume(*gl_volume, selection.get_model()->objects);
|
||||
menu = (model_volume != nullptr && model_volume->is_svg()) ? menus.svg_part_menu() :
|
||||
menus.part_menu();
|
||||
if (model_volume != nullptr) {
|
||||
if (model_volume->is_svg()) {
|
||||
menu = menus.svg_part_menu();
|
||||
} else if (model_volume->is_cut_connector()) {
|
||||
menu = menus.cut_connector_menu();
|
||||
} else {
|
||||
menu = menus.part_menu();
|
||||
}
|
||||
}
|
||||
} else
|
||||
menu = menus.multi_selection_menu();
|
||||
}
|
||||
|
@ -14364,6 +14371,7 @@ wxMenu* Plater::plate_menu() { return p->menus.plate_menu();
|
|||
wxMenu* Plater::object_menu() { return p->menus.object_menu(); }
|
||||
wxMenu *Plater::part_menu() { return p->menus.part_menu(); }
|
||||
wxMenu *Plater::svg_part_menu() { return p->menus.svg_part_menu(); }
|
||||
wxMenu* Plater::cut_connector_menu() { return p->menus.cut_connector_menu(); }
|
||||
wxMenu* Plater::sla_object_menu() { return p->menus.sla_object_menu(); }
|
||||
wxMenu* Plater::default_menu() { return p->menus.default_menu(); }
|
||||
wxMenu* Plater::instance_menu() { return p->menus.instance_menu(); }
|
||||
|
|
|
@ -726,6 +726,7 @@ public:
|
|||
wxMenu* object_menu();
|
||||
wxMenu* part_menu();
|
||||
wxMenu* svg_part_menu();
|
||||
wxMenu* cut_connector_menu();
|
||||
wxMenu* sla_object_menu();
|
||||
wxMenu* default_menu();
|
||||
wxMenu* instance_menu();
|
||||
|
|
Loading…
Reference in New Issue