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 @@