Enabled tech ENABLE_CTRL_M_ON_WINDOWS -> Added customizable support for legacy CTRL+M settings dialog on Windows in preference dialog
This commit is contained in:
parent
2314a9e8c7
commit
10fb75edf0
7 changed files with 48 additions and 20 deletions
|
@ -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");
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
//====================
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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") },
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"));
|
||||
|
|
Loading…
Reference in a new issue