gnucash stable: Multiple changes pushed
John Ralls
jralls at code.gnucash.org
Wed Jun 7 00:29:27 EDT 2023
Updated via https://github.com/Gnucash/gnucash/commit/dda661cf (commit)
via https://github.com/Gnucash/gnucash/commit/680fe47b (commit)
via https://github.com/Gnucash/gnucash/commit/e70880de (commit)
via https://github.com/Gnucash/gnucash/commit/d3bf654b (commit)
from https://github.com/Gnucash/gnucash/commit/a5ff19b6 (commit)
commit dda661cfd29cbf8e294c512ebfe20d410cb085d6
Merge: a5ff19b62a 680fe47bac
Author: John Ralls <jralls at ceridwen.us>
Date: Tue Jun 6 21:27:36 2023 -0700
Merge Richard Cohen's 'more-define-types' into stable.
commit 680fe47bac670bcf1bf1d68b28ce35ff8b4f0f2a
Author: Richard Cohen <richard at daijobu.co.uk>
Date: Tue May 30 10:18:41 2023 +0100
Refactor: Remove unused macros GNC_BASIC_GOBJECT_*
diff --git a/libgnucash/app-utils/CMakeLists.txt b/libgnucash/app-utils/CMakeLists.txt
index 08d0cf03a1..a9ca0acad1 100644
--- a/libgnucash/app-utils/CMakeLists.txt
+++ b/libgnucash/app-utils/CMakeLists.txt
@@ -9,7 +9,6 @@ include (GncFindLibm)
set (app_utils_HEADERS
QuickFill.h
file-utils.h
- gnc-basic-gobject.h
gnc-account-merge.h
gnc-addr-quickfill.h
gnc-entry-quickfill.h
diff --git a/libgnucash/app-utils/gnc-basic-gobject.h b/libgnucash/app-utils/gnc-basic-gobject.h
deleted file mode 100644
index de07e9db2c..0000000000
--- a/libgnucash/app-utils/gnc-basic-gobject.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************\
- * gnc-basic-gobject.h *
- * *
- * This program is free software; you can redistribute it and/or *
- * modify it under the terms of the GNU General Public License as *
- * published by the Free Software Foundation; either version 2 of *
- * the License, or (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License*
- * along with this program; if not, write to the Free Software *
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
-\********************************************************************/
-
-
-#ifndef GNC_BASIC_GOBJECT_H
-#define GNC_BASIC_GOBJECT_H
-
-/* A simple macro to define simple gobjects */
-
-#define GNC_BASIC_GOBJECT_TYPE(type_struct,klass_struct,parent,klass_init,inst_init,get_type_fcn) \
-GType \
-get_type_fcn (void) \
-{ \
- static GType type = 0; \
- \
- if (type == 0) { \
- GTypeInfo type_info = { \
- sizeof (klass_struct), \
- NULL, \
- NULL, \
- (GClassInitFunc) klass_init, \
- NULL, \
- NULL, \
- sizeof (type_struct), \
- 0, \
- (GInstanceInitFunc) inst_init, \
- }; \
- \
- type = g_type_register_static (parent, #type_struct, &type_info, 0); \
- } \
- \
- return type; \
-}
-
-#define GNC_BASIC_GOBJECT_NEW(type_struct,new_fcn,get_type_fcn) \
-type_struct * \
-new_fcn (void) \
-{ \
- return (type_struct *) g_object_new(get_type_fcn (), NULL); \
-}
-
-#define GNC_BASIC_GOBJECT(type_struct,klass_struct,parent,klass_init,inst_init,get_type_fcn,new_fcn) \
-GNC_BASIC_GOBJECT_TYPE(type_struct,klass_struct,parent,klass_init,inst_init,get_type_fcn) \
-GNC_BASIC_GOBJECT_NEW(type_struct,new_fcn,get_type_fcn)
-
-#endif /* GNC_BASIC_GOBJECT_H */
commit e70880de1a9107bd30119aaa3abb1af982f77bf9
Author: Richard Cohen <richard at daijobu.co.uk>
Date: Wed May 24 15:28:55 2023 +0100
Refactor: DECLARE/DEFINE_INTERFACE GncDenseCalModel < GObject
- use _default_init() (always called only once) to create the signals
instead of _base_init()
- remove unused signal vfuncs
diff --git a/gnucash/gnome-utils/gnc-dense-cal-model.c b/gnucash/gnome-utils/gnc-dense-cal-model.c
index 205f625b48..0748fbf96e 100644
--- a/gnucash/gnome-utils/gnc-dense-cal-model.c
+++ b/gnucash/gnome-utils/gnc-dense-cal-model.c
@@ -41,14 +41,9 @@ enum { GDCM_ADDED, GDCM_UPDATE, GDCM_REMOVE, LAST_SIGNAL };
static guint gnc_dense_cal_model_signals[LAST_SIGNAL] = { 0 };
static void
-gnc_dense_cal_model_base_init(gpointer g_class)
+gnc_dense_cal_model_default_init(GncDenseCalModelInterface *g_class)
{
- static gboolean initialized = FALSE;
-
- if (!initialized)
- {
- gnc_dense_cal_model_signals[GDCM_ADDED]
- = g_signal_new("added",
+ gnc_dense_cal_model_signals[GDCM_ADDED] = g_signal_new("added",
G_TYPE_FROM_CLASS(g_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
0 /* default offset */,
@@ -60,8 +55,7 @@ gnc_dense_cal_model_base_init(gpointer g_class)
G_TYPE_UINT /* param types */
);
- gnc_dense_cal_model_signals[GDCM_UPDATE]
- = g_signal_new("update",
+ gnc_dense_cal_model_signals[GDCM_UPDATE] = g_signal_new("update",
G_TYPE_FROM_CLASS(g_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
0 /* default offset */,
@@ -73,8 +67,7 @@ gnc_dense_cal_model_base_init(gpointer g_class)
G_TYPE_UINT /* param types */
);
- gnc_dense_cal_model_signals[GDCM_REMOVE]
- = g_signal_new("removing",
+ gnc_dense_cal_model_signals[GDCM_REMOVE] = g_signal_new("removing",
G_TYPE_FROM_CLASS(g_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
0 /* default offset */,
@@ -85,60 +78,36 @@ gnc_dense_cal_model_base_init(gpointer g_class)
1 /* n_params */,
G_TYPE_UINT /* param types */
);
-
- initialized = TRUE;
- }
}
-GType
-gnc_dense_cal_model_get_type(void)
-{
- static GType type = 0;
- if (type == 0)
- {
- static const GTypeInfo info =
- {
- sizeof(GncDenseCalModelIface),
- gnc_dense_cal_model_base_init, /* base_init */
- NULL, /* base_finalize */
- NULL, /* class_init */
- NULL, /* class_finalize */
- NULL, /* class_data */
- 0,
- 0, /* n_preallocs */
- NULL /* instance_init */
- };
- type = g_type_register_static(G_TYPE_INTERFACE, "GncDenseCalModel", &info, 0);
- }
- return type;
-}
+G_DEFINE_INTERFACE (GncDenseCalModel, gnc_dense_cal_model, G_TYPE_OBJECT)
GList*
gnc_dense_cal_model_get_contained(GncDenseCalModel *model)
{
- return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_contained)(model);
+ return (*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_contained)(model);
}
gchar*
gnc_dense_cal_model_get_name(GncDenseCalModel *model, guint tag)
{
- return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_name)(model, tag);
+ return (*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_name)(model, tag);
}
gchar*
gnc_dense_cal_model_get_info(GncDenseCalModel *model, guint tag)
{
- return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_info)(model, tag);
+ return (*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_info)(model, tag);
}
gint
gnc_dense_cal_model_get_instance_count(GncDenseCalModel *model, guint tag)
{
- return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_instance_count)(model, tag);
+ return (*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_instance_count)(model, tag);
}
void
gnc_dense_cal_model_get_instance(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date)
{
- (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_instance)(model, tag, instance_index, date);
+ (*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_instance)(model, tag, instance_index, date);
}
diff --git a/gnucash/gnome-utils/gnc-dense-cal-model.h b/gnucash/gnome-utils/gnc-dense-cal-model.h
index 92cbbac791..e0c4abfeef 100644
--- a/gnucash/gnome-utils/gnc-dense-cal-model.h
+++ b/gnucash/gnome-utils/gnc-dense-cal-model.h
@@ -30,29 +30,19 @@
G_BEGIN_DECLS
#define GNC_TYPE_DENSE_CAL_MODEL (gnc_dense_cal_model_get_type())
-#define GNC_DENSE_CAL_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_DENSE_CAL_MODEL, GncDenseCalModel))
-#define GNC_IS_DENSE_CAL_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_DENSE_CAL_MODEL))
-#define GNC_DENSE_CAL_MODEL_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GNC_TYPE_DENSE_CAL_MODEL, GncDenseCalModelIface))
+G_DECLARE_INTERFACE (GncDenseCalModel, gnc_dense_cal_model, GNC, DENSE_CAL_MODEL, GObject)
-typedef struct _GncDenseCalModel GncDenseCalModel; /* non existent */
-typedef struct _GncDenseCalModelIface
+struct _GncDenseCalModelInterface
{
GTypeInterface parent;
- /* signals */
- void (*insert)(GncDenseCalModel *mdl, gint tag);
- void (*update)(GncDenseCalModel *mdl, gint tag);
- void (*remove)(GncDenseCalModel *mdl, gint tag);
-
/* virtual table */
GList* (*get_contained)(GncDenseCalModel *model);
gchar* (*get_name)(GncDenseCalModel *model, guint tag);
gchar* (*get_info)(GncDenseCalModel *model, guint tag);
gint (*get_instance_count)(GncDenseCalModel *model, guint tag);
void (*get_instance)(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date);
-} GncDenseCalModelIface;
-
-GType gnc_dense_cal_model_get_type(void);
+};
/** @return Caller-owned GList (but not elements). The Model-user will free. **/
GList* gnc_dense_cal_model_get_contained(GncDenseCalModel *model);
diff --git a/gnucash/gnome-utils/gnc-dense-cal-store.c b/gnucash/gnome-utils/gnc-dense-cal-store.c
index 86a91c525c..98a2898f1b 100644
--- a/gnucash/gnome-utils/gnc-dense-cal-store.c
+++ b/gnucash/gnome-utils/gnc-dense-cal-store.c
@@ -59,7 +59,7 @@ struct _GncDenseCalStoreClass
GObjectClass parent_class;
};
-static void gnc_dense_cal_store_iface_init(GncDenseCalModelIface *iface);
+static void gnc_dense_cal_store_iface_init(GncDenseCalModelInterface *iface);
static void gnc_dense_cal_store_finalize(GObject *obj);
static GList* gdcs_get_contained(GncDenseCalModel *model);
@@ -85,7 +85,7 @@ gnc_dense_cal_store_init(GncDenseCalStore *self)
}
static void
-gnc_dense_cal_store_iface_init(GncDenseCalModelIface *iface)
+gnc_dense_cal_store_iface_init(GncDenseCalModelInterface *iface)
{
iface->get_contained = gdcs_get_contained;
iface->get_name = gdcs_get_name;
diff --git a/gnucash/gnome-utils/gnc-sx-instance-dense-cal-adapter.c b/gnucash/gnome-utils/gnc-sx-instance-dense-cal-adapter.c
index e5ff0d602b..a0ee9b5afc 100644
--- a/gnucash/gnome-utils/gnc-sx-instance-dense-cal-adapter.c
+++ b/gnucash/gnome-utils/gnc-sx-instance-dense-cal-adapter.c
@@ -40,7 +40,7 @@
#define G_LOG_DOMAIN "gnc.gui.sx.adapter.sx-dense-cal"
static const QofLogModule log_module = G_LOG_DOMAIN;
-static void gnc_sx_instance_dense_cal_adapter_interface_init(GncDenseCalModelIface *iface);
+static void gnc_sx_instance_dense_cal_adapter_interface_init(GncDenseCalModelInterface *iface);
static void gnc_sx_instance_dense_cal_adapter_dispose(GObject *obj);
static void gnc_sx_instance_dense_cal_adapter_finalize(GObject *obj);
@@ -82,7 +82,7 @@ gnc_sx_instance_dense_cal_adapter_init(GncSxInstanceDenseCalAdapter *instance)
}
static void
-gnc_sx_instance_dense_cal_adapter_interface_init(GncDenseCalModelIface *iface)
+gnc_sx_instance_dense_cal_adapter_interface_init(GncDenseCalModelInterface *iface)
{
iface->get_contained = gsidca_get_contained;
iface->get_name = gsidca_get_name;
commit d3bf654b118e6d6b199732012009a5a19a8fb2e2
Author: Richard Cohen <richard at daijobu.co.uk>
Date: Thu May 4 17:31:57 2023 +0100
Refactor: DECLARE/DEFINE_INTERFACE GncWindow < GObject
diff --git a/gnucash/gnome-utils/gnc-embedded-window.c b/gnucash/gnome-utils/gnc-embedded-window.c
index b35233759c..a6588f3a44 100644
--- a/gnucash/gnome-utils/gnc-embedded-window.c
+++ b/gnucash/gnome-utils/gnc-embedded-window.c
@@ -58,7 +58,7 @@ static QofLogModule log_module = GNC_MOD_GUI;
static void gnc_embedded_window_finalize (GObject *object);
static void gnc_embedded_window_dispose (GObject *object);
-static void gnc_window_embedded_window_init (GncWindowIface *iface);
+static void gnc_window_embedded_window_init (GncWindowInterface *iface);
static void gnc_embedded_window_setup_window (GncEmbeddedWindow *window);
@@ -499,7 +499,7 @@ gnc_embedded_window_get_accel_group (GncWindow *window)
* @param iface A pointer to the interface data structure to
* populate. */
static void
-gnc_window_embedded_window_init (GncWindowIface *iface)
+gnc_window_embedded_window_init (GncWindowInterface *iface)
{
iface->get_gtk_window = gnc_embedded_window_get_gtk_window;
iface->get_statusbar = gnc_embedded_window_get_statusbar;
diff --git a/gnucash/gnome-utils/gnc-main-window.cpp b/gnucash/gnome-utils/gnc-main-window.cpp
index 845d1e250f..51540ea424 100644
--- a/gnucash/gnome-utils/gnc-main-window.cpp
+++ b/gnucash/gnome-utils/gnc-main-window.cpp
@@ -154,7 +154,7 @@ static void gnc_main_window_finalize (GObject *object);
static void gnc_main_window_destroy (GtkWidget *widget);
static void gnc_main_window_setup_window (GncMainWindow *window);
-static void gnc_window_main_window_init (GncWindowIface *iface);
+static void gnc_window_main_window_init (GncWindowInterface *iface);
#ifndef MAC_INTEGRATION
static void gnc_main_window_update_all_menu_items (void);
#endif
@@ -5453,7 +5453,7 @@ gnc_main_window_get_accel_group (GncWindow *window)
* @param iface A pointer to the interface data structure to
* populate. */
static void
-gnc_window_main_window_init (GncWindowIface *iface)
+gnc_window_main_window_init (GncWindowInterface *iface)
{
iface->get_gtk_window = gnc_main_window_get_gtk_window;
iface->get_statusbar = gnc_main_window_get_statusbar;
diff --git a/gnucash/gnome-utils/gnc-window.c b/gnucash/gnome-utils/gnc-window.c
index 92568b8cd4..e58ffd4d26 100644
--- a/gnucash/gnome-utils/gnc-window.c
+++ b/gnucash/gnome-utils/gnc-window.c
@@ -34,33 +34,11 @@
static QofLogModule log_module = GNC_MOD_GUI;
-GType
-gnc_window_get_type (void)
-{
- static GType gnc_window_type = 0;
-
- if (gnc_window_type == 0)
- {
- static const GTypeInfo our_info =
- {
- sizeof (GncWindowIface),
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- 0,
- 0,
- NULL
- };
-
- gnc_window_type = g_type_register_static (G_TYPE_INTERFACE,
- "GncWindow",
- &our_info, 0);
- g_type_interface_add_prerequisite (gnc_window_type, G_TYPE_OBJECT);
- }
+G_DEFINE_INTERFACE (GncWindow, gnc_window, G_TYPE_OBJECT)
- return gnc_window_type;
+static void
+gnc_window_default_init (GncWindowInterface *klass)
+{
}
/************************************************************
diff --git a/gnucash/gnome-utils/gnc-window.h b/gnucash/gnome-utils/gnc-window.h
index 01978346fa..63db5760f8 100644
--- a/gnucash/gnome-utils/gnc-window.h
+++ b/gnucash/gnome-utils/gnc-window.h
@@ -48,14 +48,10 @@ G_BEGIN_DECLS
/* type macros */
#define GNC_TYPE_WINDOW (gnc_window_get_type ())
-#define GNC_WINDOW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_WINDOW, GncWindow))
-#define GNC_IS_WINDOW(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_WINDOW))
-#define GNC_WINDOW_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GNC_TYPE_WINDOW, GncWindowIface))
+G_DECLARE_INTERFACE (GncWindow, gnc_window, GNC, WINDOW, GObject)
/* typedefs & structures */
-typedef struct GncWindow GncWindow; /* dummy typedef */
-
-typedef struct
+struct _GncWindowInterface
{
GTypeInterface parent;
@@ -68,11 +64,9 @@ typedef struct
GMenuModel * (* get_menubar_model) (GncWindow *window);
GtkAccelGroup * (* get_accel_group) (GncWindow *window);
void (* ui_set_sensitive) (GncWindow *window, gboolean sensitive);
-} GncWindowIface;
+};
/* function prototypes */
-GType gnc_window_get_type (void);
-
GtkWindow *gnc_window_get_gtk_window (GncWindow *window);
void gnc_window_update_status (GncWindow *window, GncPluginPage *page);
Summary of changes:
gnucash/gnome-utils/gnc-dense-cal-model.c | 51 ++++--------------
gnucash/gnome-utils/gnc-dense-cal-model.h | 16 ++----
gnucash/gnome-utils/gnc-dense-cal-store.c | 4 +-
gnucash/gnome-utils/gnc-embedded-window.c | 4 +-
gnucash/gnome-utils/gnc-main-window.cpp | 4 +-
.../gnc-sx-instance-dense-cal-adapter.c | 4 +-
gnucash/gnome-utils/gnc-window.c | 30 ++---------
gnucash/gnome-utils/gnc-window.h | 12 ++---
libgnucash/app-utils/CMakeLists.txt | 1 -
libgnucash/app-utils/gnc-basic-gobject.h | 61 ----------------------
10 files changed, 28 insertions(+), 159 deletions(-)
delete mode 100644 libgnucash/app-utils/gnc-basic-gobject.h
More information about the gnucash-changes
mailing list