From 9d6cc565dbeb04eabb9d5846fda13171b60b4cb0 Mon Sep 17 00:00:00 2001
From: Bruce Cowan <bruce@bcowan.me.uk>
Date: Wed, 30 Oct 2024 11:44:01 +0000
Subject: [PATCH] Use getters for possibilty class

---
 src/rugby-app-window.c         | 17 ++++++-----------
 src/rugby-list-store.c         | 24 ++++++------------------
 src/rugby-possibility-widget.c | 10 ++++------
 src/rugby-possibility.c        | 32 ++++++++++++++++++++++++++++----
 src/rugby-possibility.h        |  6 +++++-
 5 files changed, 49 insertions(+), 40 deletions(-)

diff --git a/src/rugby-app-window.c b/src/rugby-app-window.c
index bc62063..f1ca16b 100644
--- a/src/rugby-app-window.c
+++ b/src/rugby-app-window.c
@@ -46,14 +46,11 @@ item_tooltip_cb (GtkListItem *item)
     if (!possibility)
       return NULL;
 
-    int tries, utries, kicks;
     GString *tooltip = g_string_new (NULL);
 
-    g_object_get (possibility,
-                  "tries", &tries,
-                  "utries", &utries,
-                  "kicks", &kicks,
-                  NULL);
+    int tries = rugby_possibility_get_tries (possibility);
+    int utries = rugby_possibility_get_utries (possibility);
+    int kicks = rugby_possibility_get_kicks (possibility);
 
     if (tries > 0)
     {
@@ -93,12 +90,10 @@ header_label_cb (GtkListItem *item)
     if (!possibility)
       return NULL;
 
-    int tries, utries;
-    g_object_get (possibility,
-                  "tries", &tries,
-                  "utries", &utries,
-                  NULL);
+    int tries = rugby_possibility_get_tries (possibility);
+    int utries = rugby_possibility_get_utries (possibility);
     int total_tries = tries + utries;
+
     return g_strdup_printf (ngettext ("%d try", "%d tries", total_tries), total_tries);
 }
 
diff --git a/src/rugby-list-store.c b/src/rugby-list-store.c
index 57ccda2..343f627 100644
--- a/src/rugby-list-store.c
+++ b/src/rugby-list-store.c
@@ -46,17 +46,10 @@ sort_func (              gconstpointer  a,
                          gconstpointer  b,
            G_GNUC_UNUSED void          *user_data)
 {
-    int atries, autries;
-    int btries, butries;
-
-    g_object_get ((void *) a,
-                  "tries", &atries,
-                  "utries", &autries,
-                  NULL);
-    g_object_get ((void *) b,
-                  "tries", &btries,
-                  "utries", &butries,
-                  NULL);
+    int atries = rugby_possibility_get_tries ((void *) a);
+    int autries = rugby_possibility_get_utries ((void *) a);
+    int btries = rugby_possibility_get_tries ((void *) b);
+    int butries = rugby_possibility_get_utries ((void *) b);
 
     int trydiff = (btries + butries) - (atries + autries);
 
@@ -116,13 +109,8 @@ process_data (RugbyListStore *self)
 static int
 get_total_tries (RugbyPossibility *possibility)
 {
-    int tries, utries;
-
-    g_object_get (possibility,
-                  "tries", &tries,
-                  "utries", &utries,
-                  NULL);
-    return tries + utries;
+    return rugby_possibility_get_tries (possibility) +
+           rugby_possibility_get_utries (possibility);
 }
 
 // GListModel implementation
diff --git a/src/rugby-possibility-widget.c b/src/rugby-possibility-widget.c
index 3935647..8bb03b7 100644
--- a/src/rugby-possibility-widget.c
+++ b/src/rugby-possibility-widget.c
@@ -126,12 +126,10 @@ rugby_possibility_widget_snapshot (GtkWidget   *widget,
     int height = gtk_widget_get_height (widget);
     float x = 0.0;
 
-    int tries, utries, kicks;
-    g_object_get (self->possibility,
-                  "tries", &tries,
-                  "utries", &utries,
-                  "kicks", &kicks,
-                  NULL);
+    int tries = rugby_possibility_get_tries (self->possibility);
+    int utries = rugby_possibility_get_utries (self->possibility);
+    int kicks = rugby_possibility_get_kicks (self->possibility);
+
     int score = tries * try_points + utries * utry_points + kicks * kick_points;
 
     GdkRGBA rgba;
diff --git a/src/rugby-possibility.c b/src/rugby-possibility.c
index c5a2ad3..cdc10a4 100644
--- a/src/rugby-possibility.c
+++ b/src/rugby-possibility.c
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2018-2021 Bruce Cowan <bruce@bcowan.me.uk>
+ * SPDX-FileCopyrightText: 2018-2024 Bruce Cowan <bruce@bcowan.me.uk>
  *
  * SPDX-License-Identifier: GPL-3.0-or-later
  */
@@ -39,13 +39,13 @@ rugby_possibility_get_property (GObject    *object,
     switch (prop_id)
       {
       case PROP_TRIES:
-          g_value_set_int (value, self->tries);
+          g_value_set_int (value, rugby_possibility_get_tries (self));
           break;
       case PROP_UTRIES:
-          g_value_set_int (value, self->utries);
+          g_value_set_int (value, rugby_possibility_get_utries (self));
           break;
       case PROP_KICKS:
-          g_value_set_int (value, self->kicks);
+          g_value_set_int (value, rugby_possibility_get_kicks (self));
           break;
       default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -119,3 +119,27 @@ rugby_possibility_new (int tries,
                          "kicks", kicks,
                          NULL);
 }
+
+int
+rugby_possibility_get_tries (RugbyPossibility *self)
+{
+    g_return_val_if_fail (RUGBY_IS_POSSIBILITY (self), 0);
+
+    return self->tries;
+}
+
+int
+rugby_possibility_get_utries (RugbyPossibility *self)
+{
+    g_return_val_if_fail (RUGBY_IS_POSSIBILITY (self), 0);
+
+    return self->utries;
+}
+
+int
+rugby_possibility_get_kicks (RugbyPossibility *self)
+{
+    g_return_val_if_fail (RUGBY_IS_POSSIBILITY (self), 0);
+
+    return self->kicks;
+}
diff --git a/src/rugby-possibility.h b/src/rugby-possibility.h
index dd7fe74..7a036c2 100644
--- a/src/rugby-possibility.h
+++ b/src/rugby-possibility.h
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2018-2022 Bruce Cowan <bruce@bcowan.me.uk>
+ * SPDX-FileCopyrightText: 2018-2024 Bruce Cowan <bruce@bcowan.me.uk>
  *
  * SPDX-License-Identifier: GPL-3.0-or-later
  */
@@ -18,4 +18,8 @@ RugbyPossibility *rugby_possibility_new (int tries,
                                          int utries,
                                          int kicks);
 
+int rugby_possibility_get_tries  (RugbyPossibility *self);
+int rugby_possibility_get_utries (RugbyPossibility *self);
+int rugby_possibility_get_kicks  (RugbyPossibility *self);
+
 G_END_DECLS
-- 
GitLab