diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index 66c9192991..05728b977d 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -10183,6 +10183,9 @@ msgstr "" msgid "Switch between Prepare/Preview" msgstr "" +msgid "Toggle printable for object/part" +msgstr "" + msgid "Plater" msgstr "" diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index d5d01908b3..877e0693c8 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -11223,6 +11223,9 @@ msgstr "Nutolinti" msgid "Switch between Prepare/Preview" msgstr "Perjungimas tarp Paruošti / Peržiūrėti" +msgid "Toggle printable for object/part" +msgstr "Perjungti objekto / dalies spausdinimą" + msgid "Plater" msgstr "Plokštė" diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index eae70f788a..5457452189 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1047,6 +1047,8 @@ wxDEFINE_EVENT(EVT_CUSTOMEVT_TICKSCHANGED, wxCommandEvent); wxDEFINE_EVENT(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_ADAPTIVE_LAYER_HEIGHT_PROFILE, Event); wxDEFINE_EVENT(EVT_GLCANVAS_SMOOTH_LAYER_HEIGHT_PROFILE, HeightProfileSmoothEvent); +wxDEFINE_EVENT(EVT_GLCANVAS_PRINTABLE, SimpleEvent); + const double GLCanvas3D::DefaultCameraZoomToBoxMarginFactor = 1.25; const double GLCanvas3D::DefaultCameraZoomToBedMarginFactor = 2.00; @@ -3489,6 +3491,8 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) // } // break; //} + case 'v': + case 'V': { post_event(SimpleEvent(EVT_GLCANVAS_PRINTABLE)); break; } default: { evt.Skip(); break; } } } diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 2895b110d3..db0bb5181a 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -195,6 +195,7 @@ wxDECLARE_EVENT(EVT_CUSTOMEVT_TICKSCHANGED, wxCommandEvent); wxDECLARE_EVENT(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_ADAPTIVE_LAYER_HEIGHT_PROFILE, Event); wxDECLARE_EVENT(EVT_GLCANVAS_SMOOTH_LAYER_HEIGHT_PROFILE, HeightProfileSmoothEvent); +wxDECLARE_EVENT(EVT_GLCANVAS_PRINTABLE, SimpleEvent); class GLCanvas3D { diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index 9b98052cdd..f89fa8a6d0 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -827,7 +827,7 @@ void MenuFactory::append_menu_item_fill_bed(wxMenu *menu) wxMenuItem* MenuFactory::append_menu_item_printable(wxMenu* menu) { // BBS: to be checked - wxMenuItem* menu_item_printable = append_menu_check_item(menu, wxID_ANY, _L("Printable"), "", + wxMenuItem* menu_item_printable = append_menu_check_item(menu, wxID_ANY, _L("Printable") + "\t" + "V", "", [](wxCommandEvent&) { obj_list()->toggle_printable_state(); }, menu); m_parent->Bind(wxEVT_UPDATE_UI, [](wxUpdateUIEvent& evt) { @@ -2222,8 +2222,7 @@ void MenuFactory::append_menu_item_set_printable(wxMenu* menu) } } - wxString menu_text = _L("Printable"); - wxMenuItem* menu_item_set_printable = append_menu_check_item(menu, wxID_ANY, menu_text, "", [this, all_printable](wxCommandEvent&) { + wxMenuItem* menu_item_set_printable = append_menu_check_item(menu, wxID_ANY, _L("Printable") + "\t" + "V", "", [this, all_printable](wxCommandEvent&) { Selection& selection = plater()->canvas3D()->get_selection(); selection.set_printable(!all_printable); }, menu); diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index 7d346571bb..2b845385e7 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -259,6 +259,7 @@ void KBShortcutsDialog::fill_shortcuts() { "E", L("Gizmo brim ears") }, { "I", L("Zoom in") }, { "O", L("Zoom out") }, + { "V", L("Toggle printable for object/part") }, { L("Tab"), L("Switch between Prepare/Preview") }, }; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 449aff77e9..1e236967c0 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -5106,7 +5106,8 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) this->q->set_prepare_state(Job::PREPARE_STATE_MENU); this->q->orient(); }); //BBS - view3D_canvas->Bind(EVT_GLCANVAS_SELECT_CURR_PLATE_ALL, [this](SimpleEvent&) {this->q->select_curr_plate_all(); }); + view3D_canvas->Bind(EVT_GLCANVAS_SELECT_CURR_PLATE_ALL, [this](SimpleEvent&) {this->q->select_curr_plate_all(); }); + view3D_canvas->Bind(EVT_GLCANVAS_PRINTABLE, [this](SimpleEvent& evt) { this->sidebar->obj_list()->toggle_printable_state(); }); view3D_canvas->Bind(EVT_GLCANVAS_SELECT_ALL, [this](SimpleEvent&) { this->q->select_all(); }); view3D_canvas->Bind(EVT_GLCANVAS_QUESTION_MARK, [](SimpleEvent&) { wxGetApp().keyboard_shortcuts(); });