From fe5ebf0614cb4f96697c1400225e45323aefeb50 Mon Sep 17 00:00:00 2001 From: Mack Date: Mon, 14 Oct 2024 19:02:29 +0800 Subject: [PATCH] FIX: brim gizmo closes the program without prompting dialog jira: STUDIO-8383 Change-Id: I7e83d19768be754ef79f0063d76624358bba5102 --- src/libslic3r/PrintConfig.cpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp | 23 +++++++++++++---------- src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp | 1 + src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 3 ++- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index d03a4898b..000c6cb54 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -992,7 +992,7 @@ void PrintConfigDef::init_fff_params() def->enum_values.emplace_back("no_brim"); def->enum_labels.emplace_back(L("Auto")); - def->enum_labels.emplace_back(L("Manual")); + def->enum_labels.emplace_back(L("Painted")); def->enum_labels.emplace_back(L("Outer brim only")); #if 1 //!BBL_RELEASE_TO_PUBLIC // BBS: The following two types are disabled diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp index 893f6a772..dac6a4ec7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp @@ -627,12 +627,10 @@ void GLGizmoBrimEars::on_render_input_window(float x, float y, float bottom_limi ImColor HyperColor = ImColor(48, 221, 114, 255).Value; ImGui::PushStyleColor(ImGuiCol_Text, ImGuiWrapper::to_ImVec4(ColorRGB::WARNING())); float parent_width = ImGui::GetContentRegionAvail().x; - m_imgui->text(_L("Warning: The brim type is not set to manual,")); - m_imgui->text(_L("the brim ears will not take effect !")); + m_imgui->text_wrapped(_L("Warning: The brim type is not set to \"painted\",the brim ears will not take effect !"), parent_width); ImGui::PopStyleColor(); - ImGui::SameLine(); ImGui::PushStyleColor(ImGuiCol_Text, HyperColor.Value); - m_imgui->text(_L("(set)")); + m_imgui->text(_L("(Set the brim type to \"painted\")")); ImGui::PopStyleColor(); if (ImGui::IsMouseHoveringRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), true)) { // underline @@ -730,6 +728,16 @@ CommonGizmosDataID GLGizmoBrimEars::on_get_requirements() const int(CommonGizmosDataID::ObjectClipper)); } +void GLGizmoBrimEars::save_model() +{ + ModelObject* mo = m_c->selection_info()->model_object(); + if (mo) { + mo->brim_points.clear(); + for (const CacheEntry& ce : m_editing_cache) mo->brim_points.emplace_back(ce.brim_point); + wxGetApp().plater()->set_plater_dirty(true); + } +} + // switch gizmos void GLGizmoBrimEars::on_set_state() { @@ -744,12 +752,7 @@ void GLGizmoBrimEars::on_set_state() if (m_state == Off && m_old_state != Off) { // the gizmo was just turned Off Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Brim ears edit"); - ModelObject *mo = m_c->selection_info()->model_object(); - if (mo) { - mo->brim_points.clear(); - for (const CacheEntry& ce : m_editing_cache) mo->brim_points.emplace_back(ce.brim_point); - wxGetApp().plater()->set_plater_dirty(true); - } + save_model(); m_parent.post_event(SimpleEvent(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS)); wxGetApp().plater()->leave_gizmos_stack(); // wxGetApp().mainframe->update_slice_print_status(MainFrame::SlicePrintEventType::eEventSliceUpdate, true, true); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp index 123891448..c57e0f207 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp @@ -78,6 +78,7 @@ public: void set_brim_data(ModelObject* model_object, const Selection& selection); bool gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_position, bool shift_down, bool alt_down, bool control_down); void delete_selected_points(); + void save_model(); //ClippingPlane get_sla_clipping_plane() const; bool is_selection_rectangle_dragging() const { return m_selection_rectangle.is_dragging(); } diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 0f7c417ef..e8469ec21 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -1946,7 +1946,8 @@ bool GLGizmosManager::is_in_editing_mode(bool error_notification) const if (m_current == SlaSupports && dynamic_cast(get_current())->is_in_editing_mode()) { return true; } else if (m_current == BrimEars) { - return true; + dynamic_cast(get_current())->save_model(); + return false; } else { return false; }