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