From a4f404a6a404f1420cfb3b58faeb3afdbf77e4e3 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 28 Mar 2019 08:44:46 +0100 Subject: [PATCH] Selection enabled only for 3D view and not for g-code preview --- src/slic3r/GUI/GLCanvas3D.cpp | 7 ++++++- src/slic3r/GUI/GLCanvas3D.hpp | 1 + src/slic3r/GUI/GUI_Preview.cpp | 1 + src/slic3r/GUI/Plater.cpp | 2 -- src/slic3r/GUI/Selection.cpp | 1 + src/slic3r/GUI/Selection.hpp | 4 ++++ 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 7dc59ed30..5bd19013c 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -2249,7 +2249,7 @@ bool GLCanvas3D::init(bool useVBOs, bool use_legacy_opengl) if (!_init_toolbar()) return false; - if (!m_selection.init(m_use_VBOs)) + if (m_selection.is_enabled() && !m_selection.init(m_use_VBOs)) return false; post_event(SimpleEvent(EVT_GLCANVAS_INIT)); @@ -2433,6 +2433,11 @@ void GLCanvas3D::enable_gizmos(bool enable) m_gizmos.set_enabled(enable); } +void GLCanvas3D::enable_selection(bool enable) +{ + m_selection.set_enabled(enable); +} + void GLCanvas3D::enable_toolbar(bool enable) { m_toolbar.set_enabled(enable); diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 23e6814f8..cc69117bf 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -653,6 +653,7 @@ public: void enable_picking(bool enable); void enable_moving(bool enable); void enable_gizmos(bool enable); + void enable_selection(bool enable); void enable_toolbar(bool enable); void enable_dynamic_background(bool enable); void allow_multisample(bool allow); diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index 18324f2e8..f41d148de 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -62,6 +62,7 @@ bool View3D::init(wxWindow* parent, Bed3D& bed, Camera& camera, GLToolbar& view_ m_canvas->set_process(process); m_canvas->set_config(config); m_canvas->enable_gizmos(true); + m_canvas->enable_selection(true); m_canvas->enable_toolbar(true); wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index c5b567429..fa4587ca6 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1416,8 +1416,6 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [this](SimpleEvent&) { set_bed_shape(config->option("bed_shape")->values); }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_TAB, [this](SimpleEvent&) { select_next_view_3D(); }); - view3D_canvas->Bind(EVT_GLCANVAS_INIT, [this](SimpleEvent&) { init_view_toolbar(); }); - q->Bind(EVT_SLICING_COMPLETED, &priv::on_slicing_completed, this); q->Bind(EVT_PROCESS_COMPLETED, &priv::on_process_completed, this); q->Bind(EVT_GLVIEWTOOLBAR_3D, [q](SimpleEvent&) { q->select_view_3D("3D"); }); diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index e5d221a5f..fb35b500e 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -49,6 +49,7 @@ Selection::VolumeCache::VolumeCache(const Geometry::Transformation& volume_trans Selection::Selection() : m_volumes(nullptr) , m_model(nullptr) + , m_enabled(false) , m_mode(Instance) , m_type(Empty) , m_valid(false) diff --git a/src/slic3r/GUI/Selection.hpp b/src/slic3r/GUI/Selection.hpp index 3a21122df..200f239c1 100644 --- a/src/slic3r/GUI/Selection.hpp +++ b/src/slic3r/GUI/Selection.hpp @@ -154,6 +154,7 @@ private: // Model, not owned. Model* m_model; + bool m_enabled; bool m_valid; EMode m_mode; EType m_type; @@ -180,6 +181,9 @@ public: void set_volumes(GLVolumePtrs* volumes); bool init(bool useVBOs); + bool is_enabled() const { return m_enabled; } + void set_enabled(bool enable) { m_enabled = enable; } + Model* get_model() const { return m_model; } void set_model(Model* model);