From 64f9cfb5201232b58d109387285d59c27ee434f8 Mon Sep 17 00:00:00 2001 From: Sander Sweers Date: Fri, 3 Jan 2025 00:57:49 +0100 Subject: [PATCH] ManagerMenu: Change sort-by key to a boolean and bind it to widget --- blueman/gui/manager/ManagerDeviceList.py | 11 +++++------ blueman/gui/manager/ManagerMenu.py | 22 ++-------------------- data/org.blueman.gschema.xml | 8 ++------ 3 files changed, 9 insertions(+), 32 deletions(-) diff --git a/blueman/gui/manager/ManagerDeviceList.py b/blueman/gui/manager/ManagerDeviceList.py index ac825ce68..e7762cc68 100644 --- a/blueman/gui/manager/ManagerDeviceList.py +++ b/blueman/gui/manager/ManagerDeviceList.py @@ -92,7 +92,7 @@ def __init__(self, inst: "Blueman", adapter: str | None = None) -> None: self.Config.connect('changed', self._on_settings_changed) # Set the correct sorting self._on_settings_changed(self.Config, "sort-by") - self._on_settings_changed(self.Config, "sort-type") + self._on_settings_changed(self.Config, "sort-descending") self.connect("query-tooltip", self.tooltip_query) self.tooltip_row: Gtk.TreePath | None = None @@ -115,14 +115,13 @@ def __init__(self, inst: "Blueman", adapter: str | None = None) -> None: self.filter.set_visible_func(self.filter_func) def _on_settings_changed(self, settings: Gio.Settings, key: str) -> None: - if key in ('sort-by', 'sort-order'): + if key in ('sort-by', 'sort-descending'): sort_by = settings['sort-by'] - sort_order = settings['sort-order'] - if sort_order == 'ascending': - sort_type = Gtk.SortType.ASCENDING - else: + if settings['sort-descending']: sort_type = Gtk.SortType.DESCENDING + else: + sort_type = Gtk.SortType.ASCENDING column_id = self.ids.get(sort_by) diff --git a/blueman/gui/manager/ManagerMenu.py b/blueman/gui/manager/ManagerMenu.py index 433c24adb..29ea79025 100644 --- a/blueman/gui/manager/ManagerMenu.py +++ b/blueman/gui/manager/ManagerMenu.py @@ -68,12 +68,8 @@ def __init__(self, blueman: "Blueman"): else: self._sort_timestamp_item.props.active = True - self._sort_type_item = blueman.builder.get_widget("sort_descending_item", Gtk.CheckMenuItem) - - if self.Config['sort-order'] == "ascending": - self._sort_type_item.props.active = False - else: - self._sort_type_item.props.active = True + sort_descending_item = blueman.builder.get_widget("sort_descending_item", Gtk.CheckMenuItem) + self.blueman.Config.bind("sort-descending", sort_descending_item, "active", Gio.SettingsBindFlags.DEFAULT) item_plugins = blueman.builder.get_widget("plugins_item", Gtk.ImageMenuItem) item_plugins.connect('activate', self._on_plugin_dialog_activate) @@ -102,19 +98,12 @@ def __init__(self, blueman: "Blueman"): self.Config.connect("changed", self._on_settings_changed) self._sort_alias_item.connect("activate", self._on_sorting_changed, "alias") self._sort_timestamp_item.connect("activate", self._on_sorting_changed, "timestamp") - self._sort_type_item.connect("activate", self._on_sorting_changed, "sort-type") def _on_sorting_changed(self, btn: Gtk.CheckMenuItem, sort_opt: str) -> None: if sort_opt == 'alias' and btn.props.active: self.Config['sort-by'] = "alias" elif sort_opt == "timestamp" and btn.props.active: self.Config['sort-by'] = "timestamp" - elif sort_opt == 'sort-type': - # FIXME bind widget to gsetting - if btn.props.active: - self.Config["sort-order"] = "descending" - else: - self.Config["sort-order"] = "ascending" def _on_settings_changed(self, settings: Gio.Settings, key: str) -> None: value = settings[key] @@ -125,13 +114,6 @@ def _on_settings_changed(self, settings: Gio.Settings, key: str) -> None: elif value == "timestamp": if not self._sort_timestamp_item.props.active: self._sort_timestamp_item.props.active = True - elif key == "sort-type": - if value == "ascending": - if not self._sort_type_item.props.active: - self._sort_type_item.props.active = True - else: - if not self._sort_type_item.props.active: - self._sort_type_item.props.active = False elif key == "hide-unnamed": logging.debug("refilter") self.blueman.List.filter.refilter() diff --git a/data/org.blueman.gschema.xml b/data/org.blueman.gschema.xml index 52f4c214a..023a7dcf7 100644 --- a/data/org.blueman.gschema.xml +++ b/data/org.blueman.gschema.xml @@ -45,12 +45,8 @@ Sort device list Sort the device list by column, possible values are timestamp and alias - - - - - - "ascending" + + false Sort ascending or descending