diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 189d27279..64d6b1dcb 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -299,6 +299,10 @@ void AppConfig::set_defaults() } #endif + if (get("uniform_scale").empty()) { + set("uniform_scale", "1"); + } + // Remove legacy window positions/sizes erase("app", "main_frame_maximized"); erase("app", "main_frame_pos"); diff --git a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp index b5e25cefb..8a72a514c 100644 --- a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp +++ b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp @@ -463,6 +463,9 @@ void GizmoObjectManipulation::set_uniform_scaling(const bool new_value) } } m_uniform_scale = new_value; + AppConfig* config = wxGetApp().app_config; + if (config) + config->set("uniform_scale", new_value ? "1": "0"); } static const char* label_values[2][3] = { @@ -894,6 +897,9 @@ void GizmoObjectManipulation::do_render_scale_input_window(ImGuiWrapper* imgui_w ImGui::Separator(); + AppConfig* config = wxGetApp().app_config; + if (config) + this->m_uniform_scale = config->get("uniform_scale") == "1" ? true : false; bool uniform_scale = this->m_uniform_scale; const Selection &selection = m_glcanvas.get_selection(); diff --git a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp index 39ceee5db..ea446b382 100644 --- a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp +++ b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp @@ -81,6 +81,7 @@ public: Vec3d m_buffered_size; bool m_new_enabled {true}; bool m_uniform_scale {true}; + bool m_uniform_config {false}; // Does the object manipulation panel work in World or Local coordinates? bool m_world_coordinates = true;