From 1f03d696c023bbd179a0d36bb6399f4b0d77fa62 Mon Sep 17 00:00:00 2001 From: Stefan Hansson Date: Tue, 23 Sep 2025 19:30:26 +0200 Subject: [PATCH 1/2] conf-tweaks: Only display "Enable Conf Tweaks" if such files exist Closes https://gitlab.gnome.org/World/Phosh/phosh-mobile-settings/-/issues/84 Signed-off-by: Stefan Hansson Part-of: --- src/mobile-settings-window.c | 14 ++++++++------ src/ui/mobile-settings-window.ui | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/mobile-settings-window.c b/src/mobile-settings-window.c index 7ff89229..14b7aacd 100644 --- a/src/mobile-settings-window.c +++ b/src/mobile-settings-window.c @@ -133,7 +133,6 @@ ms_settings_window_constructed (GObject *object) MobileSettingsApplication *app = MOBILE_SETTINGS_APPLICATION (g_application_get_default ()); GtkWidget *device_panel; GAction *toggle_conf_tweaks; - GList *pages_sorted_by_weight = NULL; GHashTable *parser_page_table = NULL; G_OBJECT_CLASS (mobile_settings_window_parent_class)->constructed (object); @@ -154,13 +153,16 @@ ms_settings_window_constructed (GObject *object) ms_tweaks_parser_parse_definition_files (self->ms_tweaks_parser, TWEAKS_DATA_DIR); parser_page_table = ms_tweaks_parser_get_page_table (self->ms_tweaks_parser); - pages_sorted_by_weight = ms_tweaks_parser_sort_by_weight (parser_page_table); - g_list_foreach (pages_sorted_by_weight, add_ms_tweaks_page, self); + if (g_hash_table_size (parser_page_table) != 0) { + GList *pages_sorted_by_weight = ms_tweaks_parser_sort_by_weight (parser_page_table); - toggle_conf_tweaks = g_settings_create_action (self->settings, "enable-conf-tweaks"); - g_signal_connect (self->settings, "changed::enable-conf-tweaks", G_CALLBACK (do_toggle_conf_tweaks), self); - g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (toggle_conf_tweaks)); + g_list_foreach (pages_sorted_by_weight, add_ms_tweaks_page, self); + + toggle_conf_tweaks = g_settings_create_action (self->settings, "enable-conf-tweaks"); + g_signal_connect (self->settings, "changed::enable-conf-tweaks", G_CALLBACK (do_toggle_conf_tweaks), self); + g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (toggle_conf_tweaks)); + } } diff --git a/src/ui/mobile-settings-window.ui b/src/ui/mobile-settings-window.ui index ef267565..9ee3df73 100644 --- a/src/ui/mobile-settings-window.ui +++ b/src/ui/mobile-settings-window.ui @@ -332,6 +332,7 @@ _Show Configurable Tweaks app.enable-conf-tweaks + action-disabled
-- GitLab From 28d9656d4eea35bedc98376981524731b9872f6f Mon Sep 17 00:00:00 2001 From: Stefan Hansson Date: Wed, 24 Sep 2025 12:57:16 +0200 Subject: [PATCH 2/2] conf-tweaks: Don't leak toggle_conf_tweaks GAction Signed-off-by: Stefan Hansson Part-of: --- src/mobile-settings-window.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mobile-settings-window.c b/src/mobile-settings-window.c index 14b7aacd..faf55ce3 100644 --- a/src/mobile-settings-window.c +++ b/src/mobile-settings-window.c @@ -132,7 +132,6 @@ ms_settings_window_constructed (GObject *object) MobileSettingsWindow *self = MOBILE_SETTINGS_WINDOW (object); MobileSettingsApplication *app = MOBILE_SETTINGS_APPLICATION (g_application_get_default ()); GtkWidget *device_panel; - GAction *toggle_conf_tweaks; GHashTable *parser_page_table = NULL; G_OBJECT_CLASS (mobile_settings_window_parent_class)->constructed (object); @@ -156,6 +155,7 @@ ms_settings_window_constructed (GObject *object) if (g_hash_table_size (parser_page_table) != 0) { GList *pages_sorted_by_weight = ms_tweaks_parser_sort_by_weight (parser_page_table); + g_autoptr (GAction) toggle_conf_tweaks; g_list_foreach (pages_sorted_by_weight, add_ms_tweaks_page, self); -- GitLab