Refactor utility function to allow merging multiple (glade) objects together in one gtkbuilder object

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20591 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Geert Janssens 2011-04-23 14:52:42 +00:00
parent 1da22d71a7
commit 5ea0c816cf
3 changed files with 20 additions and 17 deletions

View File

@ -929,16 +929,17 @@ gnc_glade_autoconnect_full_func(const gchar *handler_name,
* 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 @@ gnc_builder_add_from_file (const char *filename, const char *root)
{
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 @@ gnc_builder_add_from_file (const char *filename, const char *root)
g_free (fname);
return gncbuilder;
return result;
}
/*

View File

@ -128,8 +128,8 @@ void gnc_glade_autoconnect_full_func(const gchar *handler_name,
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,
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,

View File

@ -1062,7 +1062,8 @@ gnc_create_hierarchy_assistant (gboolean use_defaults, GncHierarchyAssistantFini
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 @@ gnc_create_hierarchy_assistant (gboolean use_defaults, GncHierarchyAssistantFini
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;