From 0faf8d5e10f1f94452ab9bd8afd7a76f60a6c41c Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Sun, 29 Sep 2024 15:07:44 +0800 Subject: [PATCH] FIX:open cut gizmo check selection.is_empty() again jira: STUDIO-8310 Change-Id: I5265ccb54345595fefb9a3775f45e96be55cc9dd --- src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp | 12 ++++++++++++ src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.hpp | 1 + 2 files changed, 13 insertions(+) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp index ce0cff23fd..3096b6ddc2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp @@ -479,6 +479,11 @@ void GLGizmoAdvancedCut::on_set_state() // Reset m_cut_z on gizmo activation if (get_state() == On) { + const Selection &selection = m_parent.get_selection(); + if (selection.is_empty()) {//check selection again + close(); + return; + } m_hover_id = -1; m_connectors_editing = false; @@ -515,6 +520,13 @@ void GLGizmoAdvancedCut::on_set_state() } } +void GLGizmoAdvancedCut::close() +{//close gizmo == open it again + auto &mng = m_parent.get_gizmos_manager(); + if (mng.get_current_type() == GLGizmosManager::Cut) + mng.open_gizmo(GLGizmosManager::Cut); +} + bool GLGizmoAdvancedCut::on_is_activable() const { const Selection &selection = m_parent.get_selection(); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.hpp b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.hpp index 9b9f16b06d..05d3874973 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.hpp @@ -229,6 +229,7 @@ class GLGizmoAdvancedCut : public GLGizmoRotate3D virtual std::string on_get_name() const; virtual std::string on_get_name_str() override { return "Cut"; } virtual void on_set_state(); + void close(); virtual bool on_is_activable() const; virtual CommonGizmosDataID on_get_requirements() const override; virtual void on_start_dragging() override;