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();
|
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
|
//BBS: add part plate related logic
|
||||||
void MenuFactory::create_plate_menu()
|
void MenuFactory::create_plate_menu()
|
||||||
{
|
{
|
||||||
|
@ -1436,7 +1443,7 @@ void MenuFactory::init(wxWindow* parent)
|
||||||
create_bbl_part_menu();
|
create_bbl_part_menu();
|
||||||
create_bbl_assemble_object_menu();
|
create_bbl_assemble_object_menu();
|
||||||
create_bbl_assemble_part_menu();
|
create_bbl_assemble_part_menu();
|
||||||
|
create_cut_cutter_menu();
|
||||||
//BBS: add part plate related logic
|
//BBS: add part plate related logic
|
||||||
create_plate_menu();
|
create_plate_menu();
|
||||||
|
|
||||||
|
@ -1511,6 +1518,11 @@ wxMenu *MenuFactory::svg_part_menu()
|
||||||
return &m_svg_part_menu;
|
return &m_svg_part_menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxMenu *MenuFactory::cut_connector_menu()
|
||||||
|
{
|
||||||
|
return &m_cut_cutter_menu;
|
||||||
|
}
|
||||||
|
|
||||||
wxMenu* MenuFactory::instance_menu()
|
wxMenu* MenuFactory::instance_menu()
|
||||||
{
|
{
|
||||||
return &m_instance_menu;
|
return &m_instance_menu;
|
||||||
|
|
|
@ -69,6 +69,7 @@ public:
|
||||||
wxMenu* part_menu();
|
wxMenu* part_menu();
|
||||||
wxMenu *text_part_menu();
|
wxMenu *text_part_menu();
|
||||||
wxMenu *svg_part_menu();
|
wxMenu *svg_part_menu();
|
||||||
|
wxMenu* cut_connector_menu();
|
||||||
wxMenu* instance_menu();
|
wxMenu* instance_menu();
|
||||||
wxMenu* layer_menu();
|
wxMenu* layer_menu();
|
||||||
wxMenu* multi_selection_menu();
|
wxMenu* multi_selection_menu();
|
||||||
|
@ -91,6 +92,7 @@ private:
|
||||||
MenuWithSeparators m_part_menu;
|
MenuWithSeparators m_part_menu;
|
||||||
MenuWithSeparators m_text_part_menu;
|
MenuWithSeparators m_text_part_menu;
|
||||||
MenuWithSeparators m_svg_part_menu;
|
MenuWithSeparators m_svg_part_menu;
|
||||||
|
MenuWithSeparators m_cut_cutter_menu;
|
||||||
MenuWithSeparators m_sla_object_menu;
|
MenuWithSeparators m_sla_object_menu;
|
||||||
MenuWithSeparators m_default_menu;
|
MenuWithSeparators m_default_menu;
|
||||||
MenuWithSeparators m_instance_menu;
|
MenuWithSeparators m_instance_menu;
|
||||||
|
@ -126,6 +128,7 @@ private:
|
||||||
void create_bbl_part_menu();
|
void create_bbl_part_menu();
|
||||||
void create_bbl_assemble_object_menu();
|
void create_bbl_assemble_object_menu();
|
||||||
void create_bbl_assemble_part_menu();
|
void create_bbl_assemble_part_menu();
|
||||||
|
void create_cut_cutter_menu();
|
||||||
|
|
||||||
wxMenu* append_submenu_add_generic(wxMenu* menu, ModelVolumeType type);
|
wxMenu* append_submenu_add_generic(wxMenu* menu, ModelVolumeType type);
|
||||||
void append_menu_item_add_svg(wxMenu *menu, ModelVolumeType type, bool is_submenu_item = true);
|
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()
|
void ObjectList::change_part_type()
|
||||||
{
|
{
|
||||||
ModelVolume* volume = get_selected_model_volume();
|
ModelVolume* volume = get_selected_model_volume();
|
||||||
if (!volume)
|
if (!volume) {
|
||||||
return;
|
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();
|
const int obj_idx = get_selected_obj_idx();
|
||||||
if (obj_idx < 0) return;
|
if (obj_idx < 0) return;
|
||||||
|
|
||||||
|
@ -5217,10 +5224,12 @@ void ObjectList::change_part_type()
|
||||||
wxArrayString names;
|
wxArrayString names;
|
||||||
names.Add(_L("Part"));
|
names.Add(_L("Part"));
|
||||||
names.Add(_L("Negative Part"));
|
names.Add(_L("Negative Part"));
|
||||||
names.Add(_L("Modifier"));
|
if (!volume->is_cut_connector()) {
|
||||||
if (!volume->is_svg()) {
|
names.Add(_L("Modifier"));
|
||||||
names.Add(_L("Support Blocker"));
|
if (!volume->is_svg()) {
|
||||||
names.Add(_L("Support Enforcer"));
|
names.Add(_L("Support Blocker"));
|
||||||
|
names.Add(_L("Support Enforcer"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SingleChoiceDialog dlg(_L("Type:"), _L("Choose part type"), names, int(type));
|
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) {
|
else if (is_part) {
|
||||||
const GLVolume * gl_volume = selection.get_first_volume();
|
const GLVolume * gl_volume = selection.get_first_volume();
|
||||||
const ModelVolume *model_volume = get_model_volume(*gl_volume, selection.get_model()->objects);
|
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() :
|
if (model_volume != nullptr) {
|
||||||
menus.part_menu();
|
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
|
} else
|
||||||
menu = menus.multi_selection_menu();
|
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::object_menu() { return p->menus.object_menu(); }
|
||||||
wxMenu *Plater::part_menu() { return p->menus.part_menu(); }
|
wxMenu *Plater::part_menu() { return p->menus.part_menu(); }
|
||||||
wxMenu *Plater::svg_part_menu() { return p->menus.svg_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::sla_object_menu() { return p->menus.sla_object_menu(); }
|
||||||
wxMenu* Plater::default_menu() { return p->menus.default_menu(); }
|
wxMenu* Plater::default_menu() { return p->menus.default_menu(); }
|
||||||
wxMenu* Plater::instance_menu() { return p->menus.instance_menu(); }
|
wxMenu* Plater::instance_menu() { return p->menus.instance_menu(); }
|
||||||
|
|
|
@ -726,6 +726,7 @@ public:
|
||||||
wxMenu* object_menu();
|
wxMenu* object_menu();
|
||||||
wxMenu* part_menu();
|
wxMenu* part_menu();
|
||||||
wxMenu* svg_part_menu();
|
wxMenu* svg_part_menu();
|
||||||
|
wxMenu* cut_connector_menu();
|
||||||
wxMenu* sla_object_menu();
|
wxMenu* sla_object_menu();
|
||||||
wxMenu* default_menu();
|
wxMenu* default_menu();
|
||||||
wxMenu* instance_menu();
|
wxMenu* instance_menu();
|
||||||
|
|
Loading…
Reference in New Issue