diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index c8d1687e1..7c9403382 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -117,6 +117,12 @@ void AppConfig::set_defaults() if (get("use_inches").empty()) set("use_inches", "0"); + + if (get("default_action_on_close_application").empty()) + set("default_action_on_close_application", "none"); // , "discard" or "save" + + if (get("default_action_on_select_preset").empty()) + set("default_action_on_select_preset", "none"); // , "transfer", "discard" or "save" } #if ENABLE_CUSTOMIZABLE_FILES_ASSOCIATION_ON_WIN else { @@ -142,11 +148,12 @@ void AppConfig::set_defaults() if (get("show_splash_screen").empty()) set("show_splash_screen", "1"); - if (get("default_action_on_close_application").empty()) - set("default_action_on_close_application", "none"); // , "discard" or "save" - - if (get("default_action_on_select_preset").empty()) - set("default_action_on_select_preset", "none"); // , "transfer", "discard" or "save" +#if ENABLE_CTRL_M_ON_WINDOWS +#ifdef _WIN32 + if (get("use_legacy_3DConnexion").empty()) + set("use_legacy_3DConnexion", "0"); +#endif // _WIN32 +#endif // ENABLE_CTRL_M_ON_WINDOWS // Remove legacy window positions/sizes erase("", "main_frame_maximized"); diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index 85493d6f1..3e9db414a 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -61,7 +61,7 @@ //==================== #define ENABLE_2_3_0_ALPHA3 1 -#define ENABLE_CTRL_M_ON_WINDOWS (0 && ENABLE_2_3_0_ALPHA3) +#define ENABLE_CTRL_M_ON_WINDOWS (1 && ENABLE_2_3_0_ALPHA3) //==================== diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index e55c5fa8c..a8221ce69 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -2434,9 +2434,15 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) #if ENABLE_CTRL_M_ON_WINDOWS case WXK_CONTROL_M: { - Mouse3DController& controller = wxGetApp().plater()->get_mouse3d_controller(); - controller.show_settings_dialog(!controller.is_settings_dialog_shown()); - m_dirty = true; +#ifdef _WIN32 + if (wxGetApp().app_config->get("use_legacy_3DConnexion") == "1") { +#endif //_WIN32 + Mouse3DController& controller = wxGetApp().plater()->get_mouse3d_controller(); + controller.show_settings_dialog(!controller.is_settings_dialog_shown()); + m_dirty = true; +#ifdef _WIN32 + } +#endif //_WIN32 break; } #else @@ -3880,26 +3886,26 @@ bool GLCanvas3D::_render_arrange_menu(float pos_x) const float x = pos_x * float(wxGetApp().plater()->get_camera().get_zoom()) + 0.5f * canvas_w; imgui->set_next_window_pos(x, m_main_toolbar.get_height(), ImGuiCond_Always, 0.5f, 0.0f); - imgui->begin(_(L("Arrange options")), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse); + imgui->begin(_L("Arrange options"), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse); ArrangeSettings settings = m_arrange_settings; auto &appcfg = wxGetApp().app_config; bool settings_changed = false; - if (imgui->slider_float(_(L("Gap size")), &settings.distance, 0.f, 100.f)) { + if (imgui->slider_float(_L("Gap size"), &settings.distance, 0.f, 100.f)) { m_arrange_settings.distance = settings.distance; settings_changed = true; } - if (imgui->checkbox(_(L("Enable rotations (slow)")), settings.enable_rotation)) { + if (imgui->checkbox(_L("Enable rotations (slow)"), settings.enable_rotation)) { m_arrange_settings.enable_rotation = settings.enable_rotation; settings_changed = true; } ImGui::Separator(); - if (imgui->button(_(L("Reset")))) { + if (imgui->button(_L("Reset"))) { m_arrange_settings = ArrangeSettings{}; settings_changed = true; } @@ -3911,7 +3917,7 @@ bool GLCanvas3D::_render_arrange_menu(float pos_x) ImGui::SameLine(); - if (imgui->button(_(L("Arrange")))) { + if (imgui->button(_L("Arrange"))) { wxGetApp().plater()->arrange(); } diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index 62fb1cec9..608cc7a48 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -171,7 +171,11 @@ void KBShortcutsDialog::fill_shortcuts() { "Tab", L("Switch between Editor/Preview") }, { "Shift+Tab", L("Collapse/Expand the sidebar") }, #if ENABLE_CTRL_M_ON_WINDOWS +#ifdef _WIN32 + { ctrl + "M", L("Show/Hide 3Dconnexion devices settings dialog, if enabled") }, +#else { ctrl + "M", L("Show/Hide 3Dconnexion devices settings dialog") }, +#endif // _WIN32 #else #if defined(__linux__) || defined(__APPLE__) { ctrl + "M", L("Show/Hide 3Dconnexion devices settings dialog") }, diff --git a/src/slic3r/GUI/Mouse3DController.cpp b/src/slic3r/GUI/Mouse3DController.cpp index 44ccb8b3e..24da199db 100644 --- a/src/slic3r/GUI/Mouse3DController.cpp +++ b/src/slic3r/GUI/Mouse3DController.cpp @@ -99,7 +99,7 @@ void Mouse3DController::State::append_button(unsigned int id, size_t /* input_qu #endif // ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT } -#ifdef WIN32 +#ifdef _WIN32 #if ENABLE_CTRL_M_ON_WINDOWS static std::string format_device_string(int vid, int pid) { @@ -319,7 +319,7 @@ bool Mouse3DController::State::process_mouse_wheel() m_mouse_wheel_counter = 0; return true; } -#endif // WIN32 +#endif // _WIN32 bool Mouse3DController::State::apply(const Mouse3DController::Params ¶ms, Camera& camera) { @@ -700,10 +700,10 @@ void Mouse3DController::shutdown() } #if ENABLE_CTRL_M_ON_WINDOWS -#ifdef WIN32 +#ifdef _WIN32 if (!m_device_str.empty()) m_params_by_device[m_device_str] = m_params_ui; -#endif // WIN32 +#endif // _WIN32 #endif // ENABLE_CTRL_M_ON_WINDOWS } diff --git a/src/slic3r/GUI/Mouse3DController.hpp b/src/slic3r/GUI/Mouse3DController.hpp index 559e0874f..d99cbad1e 100644 --- a/src/slic3r/GUI/Mouse3DController.hpp +++ b/src/slic3r/GUI/Mouse3DController.hpp @@ -189,7 +189,7 @@ public: bool handle_input(const DataPacketAxis& packet); #endif // __APPLE__ -#ifdef WIN32 +#ifdef _WIN32 bool handle_raw_input_win32(const unsigned char *data, const int packet_lenght); // Called by Win32 HID enumeration callback. @@ -202,7 +202,7 @@ public: // if the application does not register at the driver. This is a workaround to ignore these superfluous // mouse wheel events. bool process_mouse_wheel() { return m_state.process_mouse_wheel(); } -#endif // WIN32 +#endif // _WIN32 // Apply the received 3DConnexion mouse events to the camera. Called from the UI rendering thread. bool apply(Camera& camera); diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 6a1a95b03..a2d65d2d1 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -202,6 +202,17 @@ void PreferencesDialog::build() option = Option(def, "show_splash_screen"); m_optgroup_general->append_single_option_line(option); +#if ENABLE_CTRL_M_ON_WINDOWS +#ifdef _WIN32 + def.label = L("Enable support for legacy 3DConnexion devices"); + def.type = coBool; + def.tooltip = L("If enabled, the legacy 3DConnexion devices settings dialog is available by pressing CTRL+M"); + def.set_default_value(new ConfigOptionBool{ app_config->get("use_legacy_3DConnexion") == "1" }); + option = Option(def, "use_legacy_3DConnexion"); + m_optgroup_general->append_single_option_line(option); +#endif // _WIN32 +#endif // ENABLE_CTRL_M_ON_WINDOWS + m_optgroup_general->activate(); m_optgroup_camera = std::make_shared<ConfigOptionsGroup>(this, _L("Camera"));