From 554e0a607c278f5d7e921b581a47320a2290bef1 Mon Sep 17 00:00:00 2001
From: wheaney <42350981+wheaney@users.noreply.github.com>
Date: Mon, 6 May 2024 22:57:35 -0700
Subject: [PATCH] Add shortcut dialog support back in
---
ui/src/breezydesktop.gresource.xml | 7 +-
ui/src/connecteddevice.py | 32 +++++-
.../connected-device.ui} | 2 +-
ui/src/{nodevice.ui => gtk/no-device.ui} | 0
ui/src/gtk/shortcut-dialog.ui | 43 +++++++
ui/src/{ => gtk}/window.ui | 11 ++
ui/src/meson.build | 7 +-
ui/src/nodevice.py | 2 +-
...{SettingsManager.py => settingsmanager.py} | 0
ui/src/shortcutdialog.py | 107 ++++++++++++++++++
ui/src/{StateManager.py => statemanager.py} | 2 +-
ui/src/window.py | 7 +-
ui/src/{XRDriverIPC.py => xrdriveripc.py} | 0
13 files changed, 204 insertions(+), 16 deletions(-)
rename ui/src/{connecteddevice.ui => gtk/connected-device.ui} (98%)
rename ui/src/{nodevice.ui => gtk/no-device.ui} (100%)
create mode 100644 ui/src/gtk/shortcut-dialog.ui
rename ui/src/{ => gtk}/window.ui (76%)
rename ui/src/{SettingsManager.py => settingsmanager.py} (100%)
create mode 100644 ui/src/shortcutdialog.py
rename ui/src/{StateManager.py => statemanager.py} (97%)
rename ui/src/{XRDriverIPC.py => xrdriveripc.py} (100%)
diff --git a/ui/src/breezydesktop.gresource.xml b/ui/src/breezydesktop.gresource.xml
index bdca624..540448f 100644
--- a/ui/src/breezydesktop.gresource.xml
+++ b/ui/src/breezydesktop.gresource.xml
@@ -1,9 +1,10 @@
- connecteddevice.ui
- nodevice.ui
- window.ui
+ gtk/connected-device.ui
+ gtk/no-device.ui
+ gtk/shortcut-dialog.ui
+ gtk/window.ui
gtk/help-overlay.ui
diff --git a/ui/src/connecteddevice.py b/ui/src/connecteddevice.py
index d56afdd..23abb92 100644
--- a/ui/src/connecteddevice.py
+++ b/ui/src/connecteddevice.py
@@ -1,7 +1,8 @@
-from gi.repository import Adw, Gio, Gtk
-from .SettingsManager import SettingsManager
+from gi.repository import Gio, Gtk
+from .settingsmanager import SettingsManager
+from .shortcutdialog import bind_shortcut_settings
-@Gtk.Template(resource_path='/com/xronlinux/BreezyDesktop/connecteddevice.ui')
+@Gtk.Template(resource_path='/com/xronlinux/BreezyDesktop/gtk/connected-device.ui')
class ConnectedDevice(Gtk.Box):
__gtype_name__ = "ConnectedDevice"
@@ -21,5 +22,30 @@ class ConnectedDevice(Gtk.Box):
self.settings.bind('display-distance', self.display_distance_scale, 'value', Gio.SettingsBindFlags.DEFAULT)
self.settings.bind('effect-enable', self.effect_enable_switch, 'active', Gio.SettingsBindFlags.DEFAULT)
+ bind_shortcut_settings(self.get_parent(), [
+ self.reassign_recenter_display_shortcut_button,
+ self.reassign_toggle_display_distance_shortcut_button
+ ])
+
+ self.bind_set_distance_toggle([
+ self.set_toggle_display_distance_start_button,
+ self.set_toggle_display_distance_end_button
+ ])
+
def set_device_name(self, name):
self.device_label.set_markup(f"{name}")
+
+ def bind_set_distance_toggle(self, widgets):
+ for widget in widgets:
+ widget.connect('clicked', lambda *args, widget=widget: on_set_display_distance_toggle(widget))
+ reload_display_distance_toggle_button(widget)
+
+def reload_display_distance_toggle_button(widget):
+ distance = SettingsManager.get_instance().settings.get_double(widget.get_name())
+ if distance: widget.set_label(str(distance))
+
+def on_set_display_distance_toggle(widget):
+ settings = SettingsManager.get_instance().settings
+ distance = settings.get_double('display-distance')
+ settings.set_double(widget.get_name(), distance)
+ reload_display_distance_toggle_button(widget)
\ No newline at end of file
diff --git a/ui/src/connecteddevice.ui b/ui/src/gtk/connected-device.ui
similarity index 98%
rename from ui/src/connecteddevice.ui
rename to ui/src/gtk/connected-device.ui
index 52b7a5c..d831291 100644
--- a/ui/src/connecteddevice.ui
+++ b/ui/src/gtk/connected-device.ui
@@ -105,7 +105,7 @@