From 40c51fffb889050b18b2c78433c89bfbe46bf59c Mon Sep 17 00:00:00 2001
From: Bruce Cowan <bruce@bcowan.me.uk>
Date: Thu, 23 Sep 2021 14:25:06 +0100
Subject: [PATCH] Use detailed signals rather than checking strings

---
 src/rugby-list-store.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/src/rugby-list-store.c b/src/rugby-list-store.c
index bb4fae3..b1f8b63 100644
--- a/src/rugby-list-store.c
+++ b/src/rugby-list-store.c
@@ -102,14 +102,6 @@ process_data (RugbyListStore *self)
                                 g_list_model_get_n_items (G_LIST_MODEL (self->items)));
 }
 
-static void
-on_settings_changed (G_GNUC_UNUSED GSettings *settings,
-                     G_GNUC_UNUSED char      *key,
-                     gpointer                 user_data)
-{
-    process_data (RUGBY_LIST_STORE (user_data));
-}
-
 // GListModel implementation
 
 static GType
@@ -214,8 +206,13 @@ static void
 rugby_list_store_init (RugbyListStore *self)
 {
     self->settings = g_settings_new ("uk.me.bcowan.Rugby");
-    g_signal_connect (self->settings, "changed",
-                      G_CALLBACK (on_settings_changed), self);
+
+    g_signal_connect_swapped (self->settings, "changed::try-points",
+                              G_CALLBACK (process_data), self);
+    g_signal_connect_swapped (self->settings, "changed::utry-points",
+                              G_CALLBACK (process_data), self);
+    g_signal_connect_swapped (self->settings, "changed::kick-points",
+                              G_CALLBACK (process_data), self);
 
     self->score = 0;
     self->items = g_list_store_new (RUGBY_TYPE_POSSIBILITY);
-- 
GitLab