Make it so disabling the extension disables all the settings/controls
This commit is contained in:
parent
f980832087
commit
61f73396dc
|
|
@ -11,6 +11,7 @@ class ConnectedDevice(Gtk.Box):
|
|||
|
||||
effect_enable_switch = Gtk.Template.Child()
|
||||
display_distance_scale = Gtk.Template.Child()
|
||||
display_distance_adjustment = Gtk.Template.Child()
|
||||
follow_mode_switch = Gtk.Template.Child()
|
||||
device_label = Gtk.Template.Child()
|
||||
set_toggle_display_distance_start_button = Gtk.Template.Child()
|
||||
|
|
@ -25,10 +26,21 @@ class ConnectedDevice(Gtk.Box):
|
|||
def __init__(self):
|
||||
super(Gtk.Box, self).__init__()
|
||||
self.init_template()
|
||||
self.all_enabled_state_inputs = [
|
||||
self.display_distance_scale,
|
||||
self.follow_mode_switch,
|
||||
self.set_toggle_display_distance_start_button,
|
||||
self.set_toggle_display_distance_end_button,
|
||||
self.reassign_recenter_display_shortcut_button,
|
||||
self.reassign_toggle_display_distance_shortcut_button,
|
||||
self.reassign_toggle_follow_shortcut_button
|
||||
]
|
||||
|
||||
|
||||
self.settings = SettingsManager.get_instance().settings
|
||||
self.ipc = XRDriverIPC.get_instance()
|
||||
|
||||
self.settings.bind('display-distance', self.display_distance_scale, 'value', Gio.SettingsBindFlags.DEFAULT)
|
||||
self.settings.bind('display-distance', self.display_distance_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT)
|
||||
|
||||
bind_shortcut_settings(self.get_parent(), [
|
||||
[self.reassign_recenter_display_shortcut_button, self.recenter_display_shortcut_label],
|
||||
|
|
@ -47,9 +59,15 @@ class ConnectedDevice(Gtk.Box):
|
|||
self.follow_mode_switch.set_active(self.state_manager.follow_mode)
|
||||
self.follow_mode_switch.connect('notify::active', self._request_follow_mode)
|
||||
|
||||
self.effect_enable_switch.connect('notify::active', self._refresh_inputs_for_enabled_state)
|
||||
self.effect_enable_switch.set_active(ExtensionsManager.get_instance().is_enabled())
|
||||
self._refresh_inputs_for_enabled_state(self.effect_enable_switch, None)
|
||||
ExtensionsManager.get_instance().bind_property('breezy-enabled', self.effect_enable_switch, 'active', GObject.BindingFlags.BIDIRECTIONAL)
|
||||
|
||||
def _refresh_inputs_for_enabled_state(self, switch, param):
|
||||
for widget in self.all_enabled_state_inputs:
|
||||
widget.set_sensitive(switch.get_active())
|
||||
|
||||
def _request_follow_mode(self, switch, param):
|
||||
if (self.state_manager.follow_mode == switch.get_active()):
|
||||
return
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ class ExtensionsManager(GObject.GObject):
|
|||
self.set_property('breezy-enabled', self.remote_extension_state)
|
||||
|
||||
def is_installed(self):
|
||||
# TODO check specific version
|
||||
return self._is_installed(BREEZY_DESKTOP_UUID)
|
||||
|
||||
def enable(self):
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
<object class="AdwActionRow">
|
||||
<property name="title" translatable="true">Display distance</property>
|
||||
<child>
|
||||
<object class="GtkScale">
|
||||
<object class="GtkScale" id="display_distance_scale">
|
||||
<property name="valign">3</property>
|
||||
<property name="draw-value">true</property>
|
||||
<property name="value-pos">0</property>
|
||||
|
|
@ -49,7 +49,7 @@
|
|||
<property name="width-request">350</property>
|
||||
<property name="has-origin">false</property>
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment" id="display_distance_scale">
|
||||
<object class="GtkAdjustment" id="display_distance_adjustment">
|
||||
<property name="lower">0.2</property>
|
||||
<property name="upper">2.5</property>
|
||||
<property name="step-increment">0.01</property>
|
||||
|
|
|
|||
Loading…
Reference in New Issue