From f038eca52c34950ffa5227aebda27b3594f412b7 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Tue, 7 Mar 2023 08:59:33 +0100 Subject: [PATCH] #9483 - Added keyboard shortcut CTRL+D to toggle the visibility of the printbed reference axes --- src/slic3r/GUI/3DBed.cpp | 3 +++ src/slic3r/GUI/3DBed.hpp | 3 +++ src/slic3r/GUI/GLCanvas3D.cpp | 29 ++++++++++++++++------------ src/slic3r/GUI/KBShortcutsDialog.cpp | 2 ++ 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index d19e23ecd..ada871486 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -366,6 +366,9 @@ std::tuple Bed3D::detect_type(const Point void Bed3D::render_axes() { + if (!m_show_axes) + return; + if (m_build_volume.valid()) #if ENABLE_WORLD_COORDINATE m_axes.render(Transform3d::Identity(), 0.25f); diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index ebfc1123d..36aefef79 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -84,6 +84,7 @@ private: #endif // ENABLE_WORLD_COORDINATE float m_scale_factor{ 1.0f }; + bool m_show_axes{ true }; public: Bed3D() = default; @@ -111,6 +112,8 @@ public: bool contains(const Point& point) const; Point point_projection(const Point& point) const; + void toggle_show_axes() { m_show_axes = !m_show_axes; } + void render(GLCanvas3D& canvas, const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, float scale_factor, bool show_axes, bool show_texture); void render_for_picking(GLCanvas3D& canvas, const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, float scale_factor); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 2cee2c7c4..05cff51fa 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -2349,6 +2349,23 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) #endif /* __APPLE__ */ post_event(SimpleEvent(EVT_GLTOOLBAR_COPY)); break; +#ifdef __APPLE__ + case 'd': + case 'D': +#else /* __APPLE__ */ + case WXK_CONTROL_D: +#endif /* __APPLE__ */ + m_bed.toggle_show_axes(); + m_dirty = true; + break; +#ifdef __APPLE__ + case 'f': + case 'F': +#else /* __APPLE__ */ + case WXK_CONTROL_F: +#endif /* __APPLE__ */ + _activate_search_toolbar_item(); + break; #ifdef __APPLE__ case 'm': case 'M': @@ -2385,18 +2402,6 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) #endif /* __APPLE__ */ post_event(SimpleEvent(EVT_GLTOOLBAR_PASTE)); break; - - -#ifdef __APPLE__ - case 'f': - case 'F': -#else /* __APPLE__ */ - case WXK_CONTROL_F: -#endif /* __APPLE__ */ - _activate_search_toolbar_item(); - break; - - #ifdef __APPLE__ case 'y': case 'Y': diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index 66961b2cd..b2eb2c79d 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -151,6 +151,7 @@ void KBShortcutsDialog::fill_shortcuts() { L("Arrow Right"), L("Move selection 10 mm in positive X direction") }, { std::string("Shift+") + L("Any arrow"), L("Movement step set to 1 mm") }, { ctrl + L("Any arrow"), L("Movement in camera space") }, + { ctrl + "D", L("Show/hide reference axes") }, { L("Page Up"), L("Rotate selection 45 degrees CCW") }, { L("Page Down"), L("Rotate selection 45 degrees CW") }, { "M", L("Gizmo move") }, @@ -231,6 +232,7 @@ void KBShortcutsDialog::fill_shortcuts() { "X", L("On/Off one layer mode of the vertical slider") }, { "L", L("Show/Hide legend") }, { "C", L("Show/Hide G-code window") }, + { ctrl + "D", L("Show/hide reference axes") }, }; m_full_shortcuts.push_back({ { _L("Preview"), "" }, preview_shortcuts });