Added Edit -> Delete all menu item

This commit is contained in:
Enrico Turri 2018-11-22 11:31:53 +01:00
parent c494dec1c4
commit e247b532fb
4 changed files with 13 additions and 0 deletions

View file

@ -211,6 +211,11 @@ bool MainFrame::can_delete() const
{
return (m_plater != nullptr) ? !m_plater->is_selection_empty() : false;
}
bool MainFrame::can_delete_all() const
{
return (m_plater != nullptr) ? !m_plater->model().objects.empty() : false;
}
#endif // ENABLE_NEW_MENU_LAYOUT
void MainFrame::init_menubar()
@ -319,11 +324,15 @@ void MainFrame::init_menubar()
editMenu = new wxMenu();
wxMenuItem* item_select_all = append_menu_item(editMenu, wxID_ANY, L("Select all\tCtrl+A"), L("Selects all objects"),
[this](wxCommandEvent&) { m_plater->select_all(); }, "");
editMenu->AppendSeparator();
wxMenuItem* item_delete_sel = append_menu_item(editMenu, wxID_ANY, L("Delete selected\tDel"), L("Deletes the current selection"),
[this](wxCommandEvent&) { m_plater->remove_selected(); }, "");
wxMenuItem* item_delete_all = append_menu_item(editMenu, wxID_ANY, L("Delete all\tCtrl+Del"), L("Deletes all objects"),
[this](wxCommandEvent&) { m_plater->reset(); }, "");
Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Enable(can_select()); }, item_select_all->GetId());
Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Enable(can_delete()); }, item_delete_sel->GetId());
Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Enable(can_delete_all()); }, item_delete_all->GetId());
}
#endif // ENABLE_NEW_MENU_LAYOUT

View file

@ -73,6 +73,7 @@ class MainFrame : public wxFrame
bool can_change_view() const;
bool can_select() const;
bool can_delete() const;
bool can_delete_all() const;
#endif // ENABLE_NEW_MENU_LAYOUT
public:

View file

@ -2281,6 +2281,8 @@ void Plater::select_view(const std::string& direction) { p->select_view(directio
void Plater::select_all() { p->select_all(); }
void Plater::remove(size_t obj_idx) { p->remove(obj_idx); }
void Plater::reset() { p->reset(); }
void Plater::delete_object_from_model(size_t obj_idx) { p->delete_object_from_model(obj_idx); }
void Plater::remove_selected()

View file

@ -130,6 +130,7 @@ public:
void select_all();
void remove(size_t obj_idx);
void reset();
void delete_object_from_model(size_t obj_idx);
void remove_selected();
void increase_instances(size_t num = 1);