r20591 - gnucash/trunk/src - Refactor utility function to allow merging multiple (glade) objects together in one gtkbuilder object

Geert Janssens gjanssens at code.gnucash.org
Sat Apr 23 10:52:43 EDT 2011


Author: gjanssens
Date: 2011-04-23 10:52:42 -0400 (Sat, 23 Apr 2011)
New Revision: 20591
Trac: http://svn.gnucash.org/trac/changeset/20591

Modified:
   gnucash/trunk/src/gnome-utils/dialog-utils.c
   gnucash/trunk/src/gnome-utils/dialog-utils.h
   gnucash/trunk/src/gnome/assistant-hierarchy.c
Log:
Refactor utility function to allow merging multiple (glade) objects together in one gtkbuilder object

Modified: gnucash/trunk/src/gnome/assistant-hierarchy.c
===================================================================
--- gnucash/trunk/src/gnome/assistant-hierarchy.c	2011-04-23 08:42:20 UTC (rev 20590)
+++ gnucash/trunk/src/gnome/assistant-hierarchy.c	2011-04-23 14:52:42 UTC (rev 20591)
@@ -1062,7 +1062,8 @@
     GdkColor *color;
 
     data = g_new0 (hierarchy_data, 1);
-    builder = gnc_builder_add_from_file ("account.glade", "Hierarchy Assistant");
+    builder = gtk_builder_new();
+    gnc_builder_add_from_file (builder, "account.glade", "Hierarchy Assistant");
 
     dialog = GTK_WIDGET(gtk_builder_get_object (builder, "Hierarchy Assistant"));
     data->dialog = dialog;
@@ -1117,6 +1118,7 @@
                       G_CALLBACK (gnc_hierarchy_destroy_cb), data);
 
     gtk_builder_connect_signals(builder, data);
+    g_object_unref(G_OBJECT(builder));
 
     data->when_completed = when_completed;
     data->use_defaults = use_defaults;

Modified: gnucash/trunk/src/gnome-utils/dialog-utils.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-utils.c	2011-04-23 08:42:20 UTC (rev 20590)
+++ gnucash/trunk/src/gnome-utils/dialog-utils.c	2011-04-23 14:52:42 UTC (rev 20591)
@@ -929,16 +929,17 @@
  *   It takes care of finding the directory for glade files and prints a
  *   warning message in case of an error.
  */
-GtkBuilder *
-gnc_builder_add_from_file (const char *filename, const char *root)
+gboolean
+gnc_builder_add_from_file (GtkBuilder *builder, const char *filename, const char *root)
 {
-    GtkBuilder *gncbuilder = NULL;
     GError* error = NULL;
     char *fname;
     gchar *gnc_builder_dir;
+    gboolean result;
 
-    g_return_val_if_fail (filename != NULL, NULL);
-    g_return_val_if_fail (root != NULL, NULL);
+    g_return_val_if_fail (builder != NULL, FALSE);
+    g_return_val_if_fail (filename != NULL, FALSE);
+    g_return_val_if_fail (root != NULL, FALSE);
 
     gnc_builder_dir = gnc_path_get_gtkbuilderdir ();
     fname = g_build_filename(gnc_builder_dir, filename, (char *)NULL);
@@ -947,8 +948,8 @@
     {
         gchar *localroot = g_strdup(root);
         gchar *objects[] = { localroot, NULL };
-        gncbuilder = gtk_builder_new ();
-        if (!gtk_builder_add_objects_from_file (gncbuilder, fname, objects, &error))
+        result = gtk_builder_add_objects_from_file (builder, fname, objects, &error);
+        if (!result)
         {
             PWARN ("Couldn't load builder file: %s", error->message);
             g_error_free (error);
@@ -958,7 +959,7 @@
 
     g_free (fname);
 
-    return gncbuilder;
+    return result;
 }
 
 /*

Modified: gnucash/trunk/src/gnome-utils/dialog-utils.h
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-utils.h	2011-04-23 08:42:20 UTC (rev 20590)
+++ gnucash/trunk/src/gnome-utils/dialog-utils.h	2011-04-23 14:52:42 UTC (rev 20591)
@@ -128,14 +128,14 @@
                                      gboolean after,
                                      gpointer user_data);
 
-GtkBuilder * gnc_builder_add_from_file (const char *filename, const char *root);
-void gnc_builder_connect_full_func(GtkBuilder *builder,
-                                   GObject *signal_object,
-                                   const gchar *signal_name,
-                                   const gchar *handler_name,
-                                   GObject *connect_object,
-                                   GConnectFlags flags,
-                                   gpointer user_data);
+gboolean gnc_builder_add_from_file (GtkBuilder *builder, const char *filename, const char *root);
+void gnc_builder_connect_full_func (GtkBuilder *builder,
+                                    GObject *signal_object,
+                                    const gchar *signal_name,
+                                    const gchar *handler_name,
+                                    GObject *connect_object,
+                                    GConnectFlags flags,
+                                    gpointer user_data);
 
 
 /** This function generates a button with icon and adds it to a



More information about the gnucash-changes mailing list