Skip to content

Commit

Permalink
simplify
Browse files Browse the repository at this point in the history
  • Loading branch information
mrvladus committed Jan 8, 2024
1 parent a3f1fa8 commit 7f0f23a
Showing 1 changed file with 25 additions and 22 deletions.
47 changes: 25 additions & 22 deletions errands/widgets/preferences.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,19 @@ class PreferencesWindow(Adw.PreferencesWindow):
def __init__(self, win: Adw.ApplicationWindow) -> None:
super().__init__()
self.window = win
self.build_ui()
# Setup theme
self.theme_system_btn.set_active(GSettings.get("theme") == 0)
self.theme_light_btn.set_active(GSettings.get("theme") == 1)
self.theme_dark_btn.set_active(GSettings.get("theme") == 4)
# Setup sync
GSettings.bind("sync-provider", self.sync_providers, "selected")
GSettings.bind("sync-url", self.sync_url, "text")
GSettings.bind("sync-username", self.sync_username, "text")
self.setup_sync()
# Setup details panel
self.right_sidebar_btn.set_active(GSettings.get("right-sidebar"))
self.left_sidebar_btn.set_active(not GSettings.get("right-sidebar"))
self._build_ui()
self._setup_sync()

def build_ui(self):
def _build_ui(self):
self.set_transient_for(self.window)
self.set_search_enabled(False)

# Theme group
theme_group = Adw.PreferencesGroup(
title=_("Application Theme"),
)
# System theme
self.theme_system_btn = Gtk.CheckButton()
self.theme_system_btn = Gtk.CheckButton(active=GSettings.get("theme") == 0)
self.theme_system_btn.connect("toggled", self.on_theme_change, 0)
theme_system_row = Adw.ActionRow(
title=_("System"),
Expand All @@ -44,7 +34,9 @@ def build_ui(self):
theme_system_row.set_activatable_widget(self.theme_system_btn)
theme_group.add(theme_system_row)
# Light theme
self.theme_light_btn = Gtk.CheckButton(group=self.theme_system_btn)
self.theme_light_btn = Gtk.CheckButton(
group=self.theme_system_btn, active=GSettings.get("theme") == 1
)
self.theme_light_btn.connect("toggled", self.on_theme_change, 1)
theme_light_row = Adw.ActionRow(
title=_("Light"),
Expand All @@ -54,7 +46,9 @@ def build_ui(self):
theme_light_row.set_activatable_widget(self.theme_light_btn)
theme_group.add(theme_light_row)
# Dark theme
self.theme_dark_btn = Gtk.CheckButton(group=self.theme_system_btn)
self.theme_dark_btn = Gtk.CheckButton(
group=self.theme_system_btn, active=GSettings.get("theme") == 4
)
self.theme_dark_btn.connect("toggled", self.on_theme_change, 4)
theme_dark_row = Adw.ActionRow(
title=_("Dark"),
Expand All @@ -63,6 +57,7 @@ def build_ui(self):
theme_dark_row.add_suffix(self.theme_dark_btn)
theme_dark_row.set_activatable_widget(self.theme_dark_btn)
theme_group.add(theme_dark_row)

# Sync group
sync_group = Adw.PreferencesGroup(
title=_("Sync"),
Expand All @@ -75,16 +70,19 @@ def build_ui(self):
icon_name="errands-sync-symbolic",
)
self.sync_providers.connect("notify::selected", self.on_sync_provider_selected)
GSettings.bind("sync-provider", self.sync_providers, "selected")
sync_group.add(self.sync_providers)
# URL
self.sync_url = Adw.EntryRow(
title=_("Server URL"),
)
GSettings.bind("sync-url", self.sync_url, "text")
sync_group.add(self.sync_url)
# Username
self.sync_username = Adw.EntryRow(
title=_("Username"),
)
GSettings.bind("sync-username", self.sync_username, "text")
sync_group.add(self.sync_username)
# Password
self.sync_password = Adw.PasswordEntryRow(
Expand All @@ -104,12 +102,15 @@ def build_ui(self):
self.test_connection_row.add_suffix(test_btn)
self.test_connection_row.set_activatable_widget(test_btn)
sync_group.add(self.test_connection_row)

# Details group
details_group = Adw.PreferencesGroup(
title=_("Details Panel"),
)
# Left Sidebar
self.left_sidebar_btn = Gtk.CheckButton()
self.left_sidebar_btn = Gtk.CheckButton(
active=not GSettings.get("right-sidebar")
)
self.left_sidebar_btn.connect("toggled", self.on_details_change, False)
left_sidebar_row = Adw.ActionRow(
title=_("Left Sidebar"),
Expand All @@ -119,7 +120,9 @@ def build_ui(self):
left_sidebar_row.set_activatable_widget(self.left_sidebar_btn)
details_group.add(left_sidebar_row)
# Right Sidebar
self.right_sidebar_btn = Gtk.CheckButton(group=self.left_sidebar_btn)
self.right_sidebar_btn = Gtk.CheckButton(
group=self.left_sidebar_btn, active=GSettings.get("right-sidebar")
)
self.right_sidebar_btn.connect("toggled", self.on_details_change, True)
right_sidebar_row = Adw.ActionRow(
title=_("Right Sidebar"),
Expand All @@ -136,7 +139,7 @@ def build_ui(self):
page.add(details_group)
self.add(page)

def setup_sync(self):
def _setup_sync(self):
selected = self.sync_providers.props.selected
self.sync_url.set_visible(0 < selected < 3)
self.sync_username.set_visible(0 < selected < 3)
Expand All @@ -150,7 +153,7 @@ def setup_sync(self):
self.sync_password.props.text = password if password else ""

def on_sync_provider_selected(self, *_) -> None:
self.setup_sync()
self._setup_sync()

def on_sync_pass_changed(self, _entry):
if 0 < self.sync_providers.props.selected < 3:
Expand All @@ -159,7 +162,7 @@ def on_sync_pass_changed(self, _entry):

def on_test_connection_btn_clicked(self, _btn):
res: bool = Sync.test_connection()
msg: str = _("Connected") if res else _("Can't connect") # pyright:ignore
msg: str = _("Connected") if res else _("Can't connect")
toast: Adw.Toast = Adw.Toast(title=msg, timeout=2)
self.add_toast(toast)

Expand Down

0 comments on commit 7f0f23a

Please sign in to comment.