Show context menu for a multi-object selection on 3DScene,
add "Reload from disk" item for this menu
This commit is contained in:
parent
2222b0cdc9
commit
7650732c61
3 changed files with 13 additions and 5 deletions
|
@ -3874,8 +3874,8 @@ void ObjectList::show_multi_selection_menu()
|
||||||
GetSelections(sels);
|
GetSelections(sels);
|
||||||
|
|
||||||
for (const wxDataViewItem& item : sels)
|
for (const wxDataViewItem& item : sels)
|
||||||
if (!(m_objects_model->GetItemType(item) & (itVolume | itObject)))
|
if (!(m_objects_model->GetItemType(item) & (itVolume | itObject | itInstance)))
|
||||||
// show this menu only for Object(s)/Volume(s) selection
|
// show this menu only for Objects(Instances mixed with Objects)/Volumes selection
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxMenu* menu = new wxMenu();
|
wxMenu* menu = new wxMenu();
|
||||||
|
@ -3885,7 +3885,12 @@ void ObjectList::show_multi_selection_menu()
|
||||||
_(L("Select extruder number for selected objects and/or parts")),
|
_(L("Select extruder number for selected objects and/or parts")),
|
||||||
[this](wxCommandEvent&) { extruder_selection(); }, "", menu);
|
[this](wxCommandEvent&) { extruder_selection(); }, "", menu);
|
||||||
|
|
||||||
PopupMenu(menu);
|
append_menu_item(menu, wxID_ANY, _(L("Reload from disk")), _(L("Reload the selected volumes from disk")),
|
||||||
|
[this](wxCommandEvent&) { wxGetApp().plater()->reload_from_disk(); }, "", menu, []() {
|
||||||
|
return wxGetApp().plater()->can_reload_from_disk();
|
||||||
|
}, wxGetApp().plater());
|
||||||
|
|
||||||
|
wxGetApp().plater()->PopupMenu(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectList::extruder_selection()
|
void ObjectList::extruder_selection()
|
||||||
|
|
|
@ -366,6 +366,8 @@ public:
|
||||||
void update_printable_state(int obj_idx, int instance_idx);
|
void update_printable_state(int obj_idx, int instance_idx);
|
||||||
void toggle_printable_state(wxDataViewItem item);
|
void toggle_printable_state(wxDataViewItem item);
|
||||||
|
|
||||||
|
void show_multi_selection_menu();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifdef __WXOSX__
|
#ifdef __WXOSX__
|
||||||
// void OnChar(wxKeyEvent& event);
|
// void OnChar(wxKeyEvent& event);
|
||||||
|
@ -384,8 +386,6 @@ private:
|
||||||
void OnEditingStarted(wxDataViewEvent &event);
|
void OnEditingStarted(wxDataViewEvent &event);
|
||||||
#endif /* __WXMSW__ */
|
#endif /* __WXMSW__ */
|
||||||
void OnEditingDone(wxDataViewEvent &event);
|
void OnEditingDone(wxDataViewEvent &event);
|
||||||
|
|
||||||
void show_multi_selection_menu();
|
|
||||||
void extruder_selection();
|
void extruder_selection();
|
||||||
void set_extruder_for_selected_items(const int extruder) const ;
|
void set_extruder_for_selected_items(const int extruder) const ;
|
||||||
|
|
||||||
|
|
|
@ -3615,7 +3615,10 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
|
||||||
if (evt.data.second) // right button was clicked on empty space
|
if (evt.data.second) // right button was clicked on empty space
|
||||||
menu = &default_menu;
|
menu = &default_menu;
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
sidebar->obj_list()->show_multi_selection_menu();
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue