Imaginer/src/preferences.py

40 lines
1.3 KiB
Python
Raw Normal View History

from gi.repository import Gtk, Adw
@Gtk.Template(resource_path="/io/github/Bavarder/Bavarder/ui/preferences.ui")
class Preferences(Adw.PreferencesWindow):
2023-04-27 13:14:50 +00:00
__gtype_name__ = "Preferences"
clear_after_send_switch = Gtk.Template.Child()
2023-04-30 19:03:34 +00:00
provider_group = Gtk.Template.Child()
def __init__(self, application, **kwargs):
super().__init__(**kwargs)
self.app = application
self.settings = application.settings
clear_after_send = self.settings.get_boolean("clear-after-send")
2023-04-27 13:14:50 +00:00
self.clear_after_send_switch.props.state = clear_after_send
2023-04-27 11:48:56 +00:00
self.clear_after_send_switch.connect(
"state-set", self.on_clear_after_send_switch_toggled
)
2023-04-30 19:03:34 +00:00
self.setup_providers()
def on_clear_after_send_switch_toggled(self, *args):
2023-04-27 13:14:50 +00:00
"""Callback for the clear_after_send_switch toggled event."""
state = self.clear_after_send_switch.props.state
if state:
self.settings.set_boolean("clear-after-send", True)
else:
self.settings.set_boolean("clear-after-send", False)
2023-04-30 19:03:34 +00:00
def setup_providers(self):
for provider in self.app.providers.values():
try:
2023-05-01 09:22:43 +00:00
self.provider_group.add(provider.preferences(self))
2023-04-30 23:45:31 +00:00
except TypeError: # no prefs
pass