gnucash stable: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Sun Jul 16 12:47:12 EDT 2023


Updated	 via  https://github.com/Gnucash/gnucash/commit/bf7803c0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/697daad0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1307e0ef (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7fa32db2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f321cbc2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/254edac2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e094036d (commit)
	from  https://github.com/Gnucash/gnucash/commit/9dd4530d (commit)



commit bf7803c054eb5ffd53f0f1adb40c0971769e2a1e
Merge: 9dd4530dc2 697daad0bb
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Jul 16 09:44:50 2023 -0700

    Merge Richard Cohen's 'declare-type-search-param' into stable.


commit 697daad0bb3c974ee210680a371397ef52d444ba
Author: Richard Cohen <richard at daijobu.co.uk>
Date:   Mon Jun 26 11:39:15 2023 +0100

    Refactor: remove unnecessary *Private structs

diff --git a/gnucash/gnome-utils/search-param.c b/gnucash/gnome-utils/search-param.c
index 8678783a48..75fabaa21a 100644
--- a/gnucash/gnome-utils/search-param.c
+++ b/gnucash/gnome-utils/search-param.c
@@ -54,15 +54,10 @@ struct _GNCSearchParamPrivate
 #define GNC_SEARCH_PARAM_GET_PRIVATE(o) \
    ((GNCSearchParamPrivate*)gnc_search_param_get_instance_private ((GNCSearchParam*)o))
 
-typedef struct _GNCSearchParamSimplePrivate GNCSearchParamSimplePrivate;
-
 struct _GNCSearchParamSimple
 {
     GNCSearchParam  search_param;
-};
 
-struct _GNCSearchParamSimplePrivate
-{
     GSList *        converters;
     GSList *        param_path;
 
@@ -70,27 +65,16 @@ struct _GNCSearchParamSimplePrivate
     gpointer            lookup_arg;
 };
 
-#define GNC_SEARCH_PARAM_SIMPLE_GET_PRIVATE(o) \
-   ((GNCSearchParamSimplePrivate*)gnc_search_param_simple_get_instance_private ((GNCSearchParamSimple*)o))
-
-typedef struct _GNCSearchParamCompoundPrivate GNCSearchParamCompoundPrivate;
-
 struct _GNCSearchParamCompound
 {
     GNCSearchParam  search_param;
-};
 
-struct _GNCSearchParamCompoundPrivate
-{
     GList * sub_search;
 
     /* This defines the type of subsearch, either AND or OR */
     GNCSearchParamKind kind;
 };
 
-#define GNC_SEARCH_PARAM_COMPOUND_GET_PRIVATE(o) \
-   ((GNCSearchParamCompoundPrivate*)gnc_search_param_compound_get_instance_private ((GNCSearchParamCompound*)o))
-
 enum
 {
     LAST_SIGNAL
@@ -128,7 +112,7 @@ gnc_search_param_finalize (GObject *obj)
 
 /* subclass for simple searches of a single element */
 
-G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchParamSimple, gnc_search_param_simple, GNC_TYPE_SEARCH_PARAM)
+G_DEFINE_TYPE(GNCSearchParamSimple, gnc_search_param_simple, GNC_TYPE_SEARCH_PARAM)
 
 static void
 gnc_search_param_simple_class_init (GNCSearchParamSimpleClass *klass)
@@ -147,25 +131,23 @@ static void
 gnc_search_param_simple_finalize (GObject *obj)
 {
     GNCSearchParamSimple        *o;
-    GNCSearchParamSimplePrivate *priv;
 
     g_return_if_fail (obj != NULL);
     g_return_if_fail (GNC_IS_SEARCH_PARAM_SIMPLE(obj));
 
     o = GNC_SEARCH_PARAM_SIMPLE(obj);
-    priv = GNC_SEARCH_PARAM_SIMPLE_GET_PRIVATE(o);
 
-    g_slist_free (priv->param_path);
-    priv->param_path = NULL;
-    g_slist_free (priv->converters);
-    priv->converters = NULL;
+    g_slist_free (o->param_path);
+    o->param_path = NULL;
+    g_slist_free (o->converters);
+    o->converters = NULL;
 
     G_OBJECT_CLASS(gnc_search_param_simple_parent_class)->finalize (obj);
 }
 
 /* Subclass for compound searches consisting of AND/OR of several elements */
 
-G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchParamCompound, gnc_search_param_compound, GNC_TYPE_SEARCH_PARAM)
+G_DEFINE_TYPE(GNCSearchParamCompound, gnc_search_param_compound, GNC_TYPE_SEARCH_PARAM)
 
 static void
 gnc_search_param_compound_class_init (GNCSearchParamCompoundClass *klass)
@@ -184,16 +166,14 @@ static void
 gnc_search_param_compound_finalize (GObject *obj)
 {
     GNCSearchParamCompound        *o;
-    GNCSearchParamCompoundPrivate *priv;
 
     g_return_if_fail (obj != NULL);
     g_return_if_fail (GNC_IS_SEARCH_PARAM_COMPOUND(obj));
 
     o = GNC_SEARCH_PARAM_COMPOUND(obj);
-    priv = GNC_SEARCH_PARAM_COMPOUND_GET_PRIVATE(o);
 
-    g_list_free (priv->sub_search);
-    priv->sub_search = NULL;
+    g_list_free (o->sub_search);
+    o->sub_search = NULL;
 
     G_OBJECT_CLASS (gnc_search_param_compound_parent_class)->finalize (obj);
 }
@@ -233,19 +213,17 @@ gnc_search_param_set_param_path (GNCSearchParamSimple *param,
                                  QofIdTypeConst search_type,
                                  GSList *param_path)
 {
-    GNCSearchParamSimplePrivate *priv;
     GNCSearchParamPrivate       *priv_base;
     QofIdTypeConst               type = NULL;
     GSList                      *converters = NULL;
 
     g_return_if_fail (GNC_IS_SEARCH_PARAM_SIMPLE(param));
 
-    priv = GNC_SEARCH_PARAM_SIMPLE_GET_PRIVATE(param);
-    if (priv->param_path)
+    if (param->param_path)
     {
-        g_slist_free (priv->param_path);
+        g_slist_free (param->param_path);
     }
-    priv->param_path = g_slist_copy (param_path);
+    param->param_path = g_slist_copy (param_path);
 
     /* Compute the parameter type */
     for (; param_path; param_path = param_path->next)
@@ -270,11 +248,11 @@ gnc_search_param_set_param_path (GNCSearchParamSimple *param,
     priv_base->type = type;
 
     /* Save the converters */
-    if (priv->converters)
+    if (param->converters)
     {
-        g_slist_free (priv->converters);
+        g_slist_free (param->converters);
     }
-    priv->converters = g_slist_reverse (converters);
+    param->converters = g_slist_reverse (converters);
 }
 
 void
@@ -294,34 +272,25 @@ gnc_search_param_override_param_type (GNCSearchParamSimple *param,
 GList *
 gnc_search_param_get_search (GNCSearchParamCompound *param)
 {
-    GNCSearchParamCompoundPrivate *priv;
-
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM_COMPOUND(param), NULL);
 
-    priv = GNC_SEARCH_PARAM_COMPOUND_GET_PRIVATE(param);
-    return priv->sub_search;
+    return param->sub_search;
 }
 
 GSList *
 gnc_search_param_get_param_path (GNCSearchParamSimple *param)
 {
-    GNCSearchParamSimplePrivate *priv;
-
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM_SIMPLE(param), NULL);
 
-    priv = GNC_SEARCH_PARAM_SIMPLE_GET_PRIVATE(param);
-    return g_slist_copy (priv->param_path);
+    return g_slist_copy (param->param_path);
 }
 
 GSList *
 gnc_search_param_get_converters (GNCSearchParamSimple *param)
 {
-    GNCSearchParamSimplePrivate *priv;
-
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM_SIMPLE(param), NULL);
 
-    priv = GNC_SEARCH_PARAM_SIMPLE_GET_PRIVATE(param);
-    return priv->converters;
+    return param->converters;
 }
 
 QofIdTypeConst
@@ -338,15 +307,12 @@ gnc_search_param_get_param_type (GNCSearchParam *param)
 GNCSearchParamKind
 gnc_search_param_get_kind (GNCSearchParam *param)
 {
-    GNCSearchParamCompoundPrivate *priv;
-
     if (GNC_IS_SEARCH_PARAM_SIMPLE(param))
         return SEARCH_PARAM_ELEM;
 
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM_COMPOUND(param), SEARCH_PARAM_ELEM);
 
-    priv = GNC_SEARCH_PARAM_COMPOUND_GET_PRIVATE(param);
-    return priv->kind;
+    return GNC_SEARCH_PARAM_COMPOUND (param)->kind;
 }
 
 const char*
@@ -528,7 +494,6 @@ gnc_search_param_prepend_compound (GList *list, char const *title,
     QofIdTypeConst                 type = NULL;
     GNCSearchParamCompound        *param;
     GNCSearchParamPrivate         *basepriv;
-    GNCSearchParamCompoundPrivate *priv;
 
     g_return_val_if_fail (title, list);
     g_return_val_if_fail (param_list, list);
@@ -550,11 +515,10 @@ gnc_search_param_prepend_compound (GList *list, char const *title,
     gnc_search_param_set_title (GNC_SEARCH_PARAM(param), title);
     gnc_search_param_set_justify (GNC_SEARCH_PARAM(param), justify);
 
-    priv = GNC_SEARCH_PARAM_COMPOUND_GET_PRIVATE(param);
     basepriv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
-    priv->sub_search = g_list_copy (param_list);
+    param->sub_search = g_list_copy (param_list);
     basepriv->type = type;
-    priv->kind = kind;
+    param->kind = kind;
 
     return g_list_prepend (list, param);
 }
@@ -565,30 +529,23 @@ gnc_search_param_set_param_fcn (GNCSearchParamSimple *param,
                                 GNCSearchParamFcn fcn,
                                 gpointer arg)
 {
-    GNCSearchParamSimplePrivate *priv;
-
     g_return_if_fail (param);
     g_return_if_fail (param_type && *param_type);
     g_return_if_fail (fcn);
     g_return_if_fail (GNC_IS_SEARCH_PARAM_SIMPLE(param));
 
-    priv = GNC_SEARCH_PARAM_SIMPLE_GET_PRIVATE(param);
-    priv->lookup_fcn = fcn;
-    priv->lookup_arg = arg;
+    param->lookup_fcn = fcn;
+    param->lookup_arg = arg;
     gnc_search_param_override_param_type (param, param_type);
 }
 
 gboolean
 gnc_search_param_has_param_fcn (GNCSearchParamSimple *param)
 {
-    GNCSearchParamSimplePrivate *priv;
-
     g_return_val_if_fail (param, FALSE);
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM_SIMPLE(param), FALSE);
 
-    priv = GNC_SEARCH_PARAM_SIMPLE_GET_PRIVATE(param);
-
-    if (priv->lookup_fcn)
+    if (param->lookup_fcn)
         return TRUE;
 
     return FALSE;
@@ -598,15 +555,12 @@ gnc_search_param_has_param_fcn (GNCSearchParamSimple *param)
 gpointer
 gnc_search_param_compute_value (GNCSearchParamSimple *param, gpointer object)
 {
-    GNCSearchParamSimplePrivate *priv;
-
     g_return_val_if_fail (param, NULL);
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM_SIMPLE(param), NULL);
 
-    priv = GNC_SEARCH_PARAM_SIMPLE_GET_PRIVATE(param);
-    if (priv->lookup_fcn)
+    if (param->lookup_fcn)
     {
-        return ((priv->lookup_fcn)(object, priv->lookup_arg));
+        return ((param->lookup_fcn)(object, param->lookup_arg));
     }
     else
     {

commit 1307e0ef75b948a814ae412b754680a48fd278d8
Author: Richard Cohen <richard at daijobu.co.uk>
Date:   Mon Jun 26 11:30:08 2023 +0100

    Refactor: hide implementations (move from .h -> .c)

diff --git a/gnucash/gnome-utils/search-param.c b/gnucash/gnome-utils/search-param.c
index 2d85291c52..8678783a48 100644
--- a/gnucash/gnome-utils/search-param.c
+++ b/gnucash/gnome-utils/search-param.c
@@ -56,6 +56,11 @@ struct _GNCSearchParamPrivate
 
 typedef struct _GNCSearchParamSimplePrivate GNCSearchParamSimplePrivate;
 
+struct _GNCSearchParamSimple
+{
+    GNCSearchParam  search_param;
+};
+
 struct _GNCSearchParamSimplePrivate
 {
     GSList *        converters;
@@ -70,6 +75,11 @@ struct _GNCSearchParamSimplePrivate
 
 typedef struct _GNCSearchParamCompoundPrivate GNCSearchParamCompoundPrivate;
 
+struct _GNCSearchParamCompound
+{
+    GNCSearchParam  search_param;
+};
+
 struct _GNCSearchParamCompoundPrivate
 {
     GList * sub_search;
diff --git a/gnucash/gnome-utils/search-param.h b/gnucash/gnome-utils/search-param.h
index 204363b952..423b09da31 100644
--- a/gnucash/gnome-utils/search-param.h
+++ b/gnucash/gnome-utils/search-param.h
@@ -39,19 +39,9 @@ struct _GNCSearchParamClass
 #define GNC_TYPE_SEARCH_PARAM_SIMPLE (gnc_search_param_simple_get_type ())
 G_DECLARE_FINAL_TYPE (GNCSearchParamSimple, gnc_search_param_simple, GNC, SEARCH_PARAM_SIMPLE, GNCSearchParam)
 
-struct _GNCSearchParamSimple
-{
-    GNCSearchParam  search_param;
-};
-
 #define GNC_TYPE_SEARCH_PARAM_COMPOUND (gnc_search_param_compound_get_type ())
 G_DECLARE_FINAL_TYPE (GNCSearchParamCompound, gnc_search_param_compound, GNC, SEARCH_PARAM_COMPOUND, GNCSearchParam)
 
-struct _GNCSearchParamCompound
-{
-    GNCSearchParam  search_param;
-};
-
 typedef enum
 {
     SEARCH_PARAM_ELEM = 0,

commit 7fa32db2a7ca640bde22285da3b35681d77cf84a
Author: Richard Cohen <richard at daijobu.co.uk>
Date:   Mon Jun 26 10:45:02 2023 +0100

    Refactor: DECLARE_FINAL GNCSearchParamCompound < GNCSearchParam

diff --git a/gnucash/gnome-utils/search-param.h b/gnucash/gnome-utils/search-param.h
index 9c8c9e57f1..204363b952 100644
--- a/gnucash/gnome-utils/search-param.h
+++ b/gnucash/gnome-utils/search-param.h
@@ -45,29 +45,13 @@ struct _GNCSearchParamSimple
 };
 
 #define GNC_TYPE_SEARCH_PARAM_COMPOUND (gnc_search_param_compound_get_type ())
-#define GNC_SEARCH_PARAM_COMPOUND(o) \
-    (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_SEARCH_PARAM_COMPOUND, GNCSearchParamCompound))
-#define GNCSEARCH_PARAM_COMPOUND_CLASS(k) \
-    (G_TYPE_CHECK_CLASS_CAST ((k), GNC_TYPE_SEARCH_PARAM_COMPOUND, GNCSearchParamCompoundClass)
-#define GNC_IS_SEARCH_PARAM_COMPOUND(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_SEARCH_PARAM_COMPOUND))
-
-typedef struct _GNCSearchParamCompound      GNCSearchParamCompound;
-typedef struct _GNCSearchParamCompoundClass GNCSearchParamCompoundClass;
+G_DECLARE_FINAL_TYPE (GNCSearchParamCompound, gnc_search_param_compound, GNC, SEARCH_PARAM_COMPOUND, GNCSearchParam)
 
 struct _GNCSearchParamCompound
 {
     GNCSearchParam  search_param;
 };
 
-struct _GNCSearchParamCompoundClass
-{
-    GNCSearchParamClass search_param_class;
-
-    /* virtual methods */
-
-    /* signals */
-};
-
 typedef enum
 {
     SEARCH_PARAM_ELEM = 0,
@@ -75,9 +59,6 @@ typedef enum
     SEARCH_PARAM_ALL = 2
 } GNCSearchParamKind;
 
-/* These are internal functions */
-GType gnc_search_param_compound_get_type (void);
-
 /* Create a new search param */
 GNCSearchParamSimple * gnc_search_param_simple_new (void);
 GNCSearchParamCompound * gnc_search_param_compound_new (void);

commit f321cbc267fa9391f76789863634c944dfc56173
Author: Richard Cohen <richard at daijobu.co.uk>
Date:   Mon Jun 26 10:44:37 2023 +0100

    Refactor: DECLARE_FINAL GNCSearchParamSimple < GNCSearchParam

diff --git a/gnucash/gnome-utils/search-param.h b/gnucash/gnome-utils/search-param.h
index 93e548d47f..9c8c9e57f1 100644
--- a/gnucash/gnome-utils/search-param.h
+++ b/gnucash/gnome-utils/search-param.h
@@ -37,29 +37,13 @@ struct _GNCSearchParamClass
 };
 
 #define GNC_TYPE_SEARCH_PARAM_SIMPLE (gnc_search_param_simple_get_type ())
-#define GNC_SEARCH_PARAM_SIMPLE(o) \
-    (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_SEARCH_PARAM_SIMPLE, GNCSearchParamSimple))
-#define GNCSEARCH_PARAM_SIMPLE_CLASS(k) \
-    (G_TYPE_CHECK_CLASS_CAST ((k), GNC_TYPE_SEARCH_PARAM_SIMPLE, GNCSearchParamSimpleClass)
-#define GNC_IS_SEARCH_PARAM_SIMPLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_SEARCH_PARAM_SIMPLE))
-
-typedef struct _GNCSearchParamSimple      GNCSearchParamSimple;
-typedef struct _GNCSearchParamSimpleClass GNCSearchParamSimpleClass;
+G_DECLARE_FINAL_TYPE (GNCSearchParamSimple, gnc_search_param_simple, GNC, SEARCH_PARAM_SIMPLE, GNCSearchParam)
 
 struct _GNCSearchParamSimple
 {
     GNCSearchParam  search_param;
 };
 
-struct _GNCSearchParamSimpleClass
-{
-    GNCSearchParamClass search_param_class;
-
-    /* virtual methods */
-
-    /* signals */
-};
-
 #define GNC_TYPE_SEARCH_PARAM_COMPOUND (gnc_search_param_compound_get_type ())
 #define GNC_SEARCH_PARAM_COMPOUND(o) \
     (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_SEARCH_PARAM_COMPOUND, GNCSearchParamCompound))
@@ -92,7 +76,6 @@ typedef enum
 } GNCSearchParamKind;
 
 /* These are internal functions */
-GType gnc_search_param_simple_get_type (void);
 GType gnc_search_param_compound_get_type (void);
 
 /* Create a new search param */

commit 254edac26bca23f22b93b766f08c4d05997d448c
Author: Richard Cohen <richard at daijobu.co.uk>
Date:   Wed Jun 28 11:56:39 2023 +0100

    Refactor: DECLARE_DERIVABLE GNCSearchParam < GObject

diff --git a/gnucash/gnome-utils/search-param.c b/gnucash/gnome-utils/search-param.c
index e675d0bf88..2d85291c52 100644
--- a/gnucash/gnome-utils/search-param.c
+++ b/gnucash/gnome-utils/search-param.c
@@ -43,6 +43,11 @@ typedef struct _GNCSearchParamPrivate GNCSearchParamPrivate;
 
 struct _GNCSearchParamPrivate
 {
+    const char *        title;
+    GtkJustification    justify;
+    gboolean            passive;
+    gboolean            non_resizeable;
+
     QofIdTypeConst  type;
 };
 
@@ -339,7 +344,8 @@ gnc_search_param_get_title (GNCSearchParam *param)
 {
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM(param), NULL);
 
-    return param->title;
+    GNCSearchParamPrivate *priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+    return priv->title;
 }
 
 void
@@ -347,7 +353,8 @@ gnc_search_param_set_title (GNCSearchParam *param, const char *title)
 {
     g_return_if_fail (GNC_IS_SEARCH_PARAM(param));
 
-    param->title = title;
+    GNCSearchParamPrivate *priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+    priv->title = title;
 }
 
 GtkJustification
@@ -355,7 +362,8 @@ gnc_search_param_get_justify (GNCSearchParam *param)
 {
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM(param), GTK_JUSTIFY_LEFT);
 
-    return param->justify;
+    GNCSearchParamPrivate *priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+    return priv->justify;
 }
 
 void
@@ -363,7 +371,8 @@ gnc_search_param_set_justify (GNCSearchParam *param, GtkJustification justify)
 {
     g_return_if_fail (GNC_IS_SEARCH_PARAM(param));
 
-    param->justify = justify;
+    GNCSearchParamPrivate *priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+    priv->justify = justify;
 }
 
 gboolean
@@ -371,7 +380,8 @@ gnc_search_param_get_passive (GNCSearchParam *param)
 {
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM(param), FALSE);
 
-    return param->passive;
+    GNCSearchParamPrivate *priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+    return priv->passive;
 }
 
 void
@@ -379,7 +389,8 @@ gnc_search_param_set_passive (GNCSearchParam *param, gboolean value)
 {
     g_assert (GNC_IS_SEARCH_PARAM(param));
 
-    param->passive = value;
+    GNCSearchParamPrivate *priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+    priv->passive = value;
 }
 
 gboolean
@@ -387,7 +398,8 @@ gnc_search_param_get_non_resizeable (GNCSearchParam *param)
 {
     g_return_val_if_fail (GNC_IS_SEARCH_PARAM(param), FALSE);
 
-    return param->non_resizeable;
+    GNCSearchParamPrivate *priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+    return priv->non_resizeable;
 }
 
 void
@@ -395,7 +407,8 @@ gnc_search_param_set_non_resizeable (GNCSearchParam *param, gboolean value)
 {
     g_assert (GNC_IS_SEARCH_PARAM(param));
 
-    param->non_resizeable = value;
+    GNCSearchParamPrivate *priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+    priv->non_resizeable = value;
 }
 
 gboolean
diff --git a/gnucash/gnome-utils/search-param.h b/gnucash/gnome-utils/search-param.h
index 046c9b3509..93e548d47f 100644
--- a/gnucash/gnome-utils/search-param.h
+++ b/gnucash/gnome-utils/search-param.h
@@ -25,22 +25,7 @@
 
 
 #define GNC_TYPE_SEARCH_PARAM    (gnc_search_param_get_type ())
-#define GNC_SEARCH_PARAM(o)      (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_SEARCH_PARAM, GNCSearchParam))
-#define GNCSEARCH_PARAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNC_TYPE_SEARCH_PARAM, GNCSearchParamClass)
-#define GNC_IS_SEARCH_PARAM(o)   (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_SEARCH_PARAM))
-
-typedef struct _GNCSearchParam  GNCSearchParam;
-typedef struct _GNCSearchParamClass GNCSearchParamClass;
-
-struct _GNCSearchParam
-{
-    GObject gobject;
-
-    const char *        title;
-    GtkJustification    justify;
-    gboolean            passive;
-    gboolean            non_resizeable;
-};
+G_DECLARE_DERIVABLE_TYPE (GNCSearchParam, gnc_search_param, GNC, SEARCH_PARAM, GObject)
 
 struct _GNCSearchParamClass
 {
@@ -107,7 +92,6 @@ typedef enum
 } GNCSearchParamKind;
 
 /* These are internal functions */
-GType gnc_search_param_get_type (void);
 GType gnc_search_param_simple_get_type (void);
 GType gnc_search_param_compound_get_type (void);
 

commit e094036d9912fdf7f328200895167573b638a700
Author: Richard Cohen <richard at daijobu.co.uk>
Date:   Mon Jun 12 19:47:46 2023 +0100

    Refactor: define and use api methods for GNCSearchParam

diff --git a/gnucash/gnome-search/dialog-search.c b/gnucash/gnome-search/dialog-search.c
index 3c67c85626..c3ae5261f8 100644
--- a/gnucash/gnome-search/dialog-search.c
+++ b/gnucash/gnome-search/dialog-search.c
@@ -809,7 +809,7 @@ get_comb_box_widget (GNCSearchWindow *sw, struct _crit_data *data)
 
         gtk_list_store_append(store, &iter);
         gtk_list_store_set(store, &iter,
-                           SEARCH_COL_NAME, _(param->title),
+                           SEARCH_COL_NAME, _(gnc_search_param_get_title (param)),
                            SEARCH_COL_POINTER, param,
                            -1);
 
@@ -875,16 +875,16 @@ gnc_search_dialog_book_option_changed (gpointer new_val, gpointer user_data)
 
         if (*new_data)
         {
-            if (strcmp (param->title, N_("Action")) == 0)
+            if (strcmp (gnc_search_param_get_title (param), N_("Action")) == 0)
                 gnc_search_param_set_title (param, N_("Number/Action"));
-            if (strcmp (param->title, N_("Number")) == 0)
+            if (strcmp (gnc_search_param_get_title (param), N_("Number")) == 0)
                 gnc_search_param_set_title (param, N_("Transaction Number"));
         }
         else
         {
-            if (strcmp (param->title, N_("Number/Action")) == 0)
+            if (strcmp (gnc_search_param_get_title (param), N_("Number/Action")) == 0)
                 gnc_search_param_set_title (param, N_("Action"));
-            if (strcmp (param->title, N_("Transaction Number")) == 0)
+            if (strcmp (gnc_search_param_get_title (param), N_("Transaction Number")) == 0)
                 gnc_search_param_set_title (param, N_("Number"));
         }
     }
diff --git a/gnucash/gnome-utils/gnc-query-view.c b/gnucash/gnome-utils/gnc-query-view.c
index 1537322e1f..31600932b5 100644
--- a/gnucash/gnome-utils/gnc-query-view.c
+++ b/gnucash/gnome-utils/gnc-query-view.c
@@ -310,15 +310,15 @@ gnc_query_view_init_view (GNCQueryView *qview)
         col = gtk_tree_view_column_new ();
 
         /* Set the column title */
-        gtk_tree_view_column_set_title (col, (gchar *) ((GNCSearchParam *) param)->title);
+        gtk_tree_view_column_set_title (col, gnc_search_param_get_title (GNC_SEARCH_PARAM (param)));
 
         /* pack tree view column into tree view */
         gtk_tree_view_append_column (view, col);
 
         /* Get justification */
-        if (((GNCSearchParam *) param)->justify == GTK_JUSTIFY_CENTER)
+        if (gnc_search_param_get_justify (GNC_SEARCH_PARAM (param)) == GTK_JUSTIFY_CENTER)
             algn = 0.5;
-        else if (((GNCSearchParam *) param)->justify == GTK_JUSTIFY_RIGHT)
+        else if (gnc_search_param_get_justify (GNC_SEARCH_PARAM (param)) == GTK_JUSTIFY_RIGHT)
         {
             /* GTK_JUSTIFY_RIGHT is only used for monetary values so right align
              * the column title and data for both ltr and rtl */
@@ -330,7 +330,7 @@ gnc_query_view_init_view (GNCQueryView *qview)
         gtk_tree_view_column_set_alignment (col, algn);
 
         /* Set column resizable */
-        if (((GNCSearchParam *) param)->non_resizeable)
+        if (gnc_search_param_get_non_resizeable (GNC_SEARCH_PARAM (param)))
         {
             gtk_tree_view_column_set_resizable (col, FALSE);
             gtk_tree_view_column_set_expand (col, FALSE);
@@ -339,7 +339,7 @@ gnc_query_view_init_view (GNCQueryView *qview)
             gtk_tree_view_column_set_resizable (col, TRUE);
 
         /* Set column clickable */
-        if (((GNCSearchParam *) param)->passive)
+        if (gnc_search_param_get_passive (GNC_SEARCH_PARAM (param)))
             gtk_tree_view_column_set_clickable (col, FALSE);
         else
         {
diff --git a/gnucash/gnome-utils/search-param.c b/gnucash/gnome-utils/search-param.c
index c5c2fe1a6d..e675d0bf88 100644
--- a/gnucash/gnome-utils/search-param.c
+++ b/gnucash/gnome-utils/search-param.c
@@ -334,6 +334,14 @@ gnc_search_param_get_kind (GNCSearchParam *param)
     return priv->kind;
 }
 
+const char*
+gnc_search_param_get_title (GNCSearchParam *param)
+{
+    g_return_val_if_fail (GNC_IS_SEARCH_PARAM(param), NULL);
+
+    return param->title;
+}
+
 void
 gnc_search_param_set_title (GNCSearchParam *param, const char *title)
 {
@@ -342,6 +350,14 @@ gnc_search_param_set_title (GNCSearchParam *param, const char *title)
     param->title = title;
 }
 
+GtkJustification
+gnc_search_param_get_justify (GNCSearchParam *param)
+{
+    g_return_val_if_fail (GNC_IS_SEARCH_PARAM(param), GTK_JUSTIFY_LEFT);
+
+    return param->justify;
+}
+
 void
 gnc_search_param_set_justify (GNCSearchParam *param, GtkJustification justify)
 {
@@ -350,6 +366,14 @@ gnc_search_param_set_justify (GNCSearchParam *param, GtkJustification justify)
     param->justify = justify;
 }
 
+gboolean
+gnc_search_param_get_passive (GNCSearchParam *param)
+{
+    g_return_val_if_fail (GNC_IS_SEARCH_PARAM(param), FALSE);
+
+    return param->passive;
+}
+
 void
 gnc_search_param_set_passive (GNCSearchParam *param, gboolean value)
 {
@@ -358,6 +382,14 @@ gnc_search_param_set_passive (GNCSearchParam *param, gboolean value)
     param->passive = value;
 }
 
+gboolean
+gnc_search_param_get_non_resizeable (GNCSearchParam *param)
+{
+    g_return_val_if_fail (GNC_IS_SEARCH_PARAM(param), FALSE);
+
+    return param->non_resizeable;
+}
+
 void
 gnc_search_param_set_non_resizeable (GNCSearchParam *param, gboolean value)
 {
diff --git a/gnucash/gnome-utils/search-param.h b/gnucash/gnome-utils/search-param.h
index 4dc18e93e6..046c9b3509 100644
--- a/gnucash/gnome-utils/search-param.h
+++ b/gnucash/gnome-utils/search-param.h
@@ -126,13 +126,17 @@ void gnc_search_param_set_param_path (GNCSearchParamSimple *param,
 GList * gnc_search_param_get_search (GNCSearchParamCompound *param);
 GSList * gnc_search_param_get_param_path (GNCSearchParamSimple *param);
 QofIdTypeConst gnc_search_param_get_param_type (GNCSearchParam *param);
+const char *gnc_search_param_get_title (GNCSearchParam *param);
 void gnc_search_param_set_title (GNCSearchParam *param,
                                  const char *title);
 GNCSearchParamKind gnc_search_param_get_kind (GNCSearchParam *param);
+GtkJustification gnc_search_param_get_justify (GNCSearchParam *param);
 void gnc_search_param_set_justify (GNCSearchParam *param,
                                    GtkJustification justify);
+gboolean gnc_search_param_get_passive (GNCSearchParam *param);
 void gnc_search_param_set_passive (GNCSearchParam *param,
                                    gboolean value);
+gboolean gnc_search_param_get_non_resizeable (GNCSearchParam *param);
 void gnc_search_param_set_non_resizeable (GNCSearchParam *param,
                                           gboolean value);
 gboolean gnc_search_param_type_match (GNCSearchParam *a,
diff --git a/gnucash/gnome/dialog-find-transactions.c b/gnucash/gnome/dialog-find-transactions.c
index 88c406b9dd..9e13835cf2 100644
--- a/gnucash/gnome/dialog-find-transactions.c
+++ b/gnucash/gnome/dialog-find-transactions.c
@@ -167,16 +167,16 @@ gnc_ui_find_transactions_dialog_create(GtkWindow *parent, GNCLedgerDisplay * ori
 
             if (num_action)
             {
-                if (strcmp (param->title, N_("Action")) == 0)
+                if (strcmp (gnc_search_param_get_title (param), N_("Action")) == 0)
                     gnc_search_param_set_title (param, N_("Number/Action"));
-                if (strcmp (param->title, N_("Number")) == 0)
+                if (strcmp (gnc_search_param_get_title (param), N_("Number")) == 0)
                     gnc_search_param_set_title (param, N_("Transaction Number"));
             }
             else
             {
-                if (strcmp (param->title, N_("Number/Action")) == 0)
+                if (strcmp (gnc_search_param_get_title (param), N_("Number/Action")) == 0)
                     gnc_search_param_set_title (param, N_("Action"));
-                if (strcmp (param->title, N_("Transaction Number")) == 0)
+                if (strcmp (gnc_search_param_get_title (param), N_("Transaction Number")) == 0)
                     gnc_search_param_set_title (param, N_("Number"));
             }
         }



Summary of changes:
 gnucash/gnome-search/dialog-search.c     |  10 +-
 gnucash/gnome-utils/gnc-query-view.c     |  10 +-
 gnucash/gnome-utils/search-param.c       | 151 ++++++++++++++++---------------
 gnucash/gnome-utils/search-param.h       |  72 ++-------------
 gnucash/gnome/dialog-find-transactions.c |   8 +-
 5 files changed, 101 insertions(+), 150 deletions(-)



More information about the gnucash-changes mailing list