Put GtkBuilder common code in gitg-utils

Original patch by SZEDER Gábor <szeder@ira.uka.de>
This commit is contained in:
Jesse van den Kieboom 2009-02-14 22:37:04 +01:00
parent 4545985702
commit 7cbcd31f8a
5 changed files with 27 additions and 26 deletions

View File

@ -119,15 +119,7 @@ initialize_view(GitgPreferencesDialog *dialog)
static void
create_preferences_dialog()
{
GtkBuilder *b = gtk_builder_new();
GError *error = NULL;
if (!gtk_builder_add_from_file(b, GITG_UI_DIR "/gitg-preferences.xml", &error))
{
g_critical("Could not open UI file: %s (%s)", GITG_UI_DIR "/gitg-preferences.xml", error->message);
g_error_free(error);
exit(1);
}
GtkBuilder *b = gitg_utils_new_builder("gitg-preferences.xml");
preferences_dialog = GITG_PREFERENCES_DIALOG(gtk_builder_get_object(b, "dialog_preferences"));
g_object_add_weak_pointer(G_OBJECT(preferences_dialog), (gpointer *)&preferences_dialog);

View File

@ -22,6 +22,7 @@
#include <string.h>
#include <glib.h>
#include <stdlib.h>
#include <gconf/gconf-client.h>
#include "gitg-utils.h"
@ -470,3 +471,24 @@ gitg_utils_set_monospace_font(GtkWidget *widget)
g_free(name);
}
GtkBuilder *
gitg_utils_new_builder(gchar const *filename)
{
GtkBuilder *b = gtk_builder_new();
GError *error = NULL;
gchar *path = g_build_filename(GITG_UI_DIR G_DIR_SEPARATOR_S, filename, NULL);
if (!gtk_builder_add_from_file(b, path, &error))
{
g_critical("Could not open UI file: %s (%s)", path, error->message);
g_error_free(error);
g_free(path);
exit(1);
}
g_free(path);
return b;
}

View File

@ -61,4 +61,6 @@ void gitg_utils_menu_position_under_tree_view(GtkMenu *menu, gint *x, gint *y, g
gchar *gitg_utils_get_monospace_font_name();
void gitg_utils_set_monospace_font(GtkWidget *widget);
GtkBuilder *gitg_utils_new_builder(gchar const *filename);
#endif /* __GITG_UTILS_H__ */

View File

@ -205,15 +205,7 @@ build_search_entry(GitgWindow *window, GtkBuilder *builder)
gtk_widget_show(entry);
gtk_box_pack_end(GTK_BOX(box), entry, FALSE, FALSE, 0);
GtkBuilder *b = gtk_builder_new();
GError *error = NULL;
if (!gtk_builder_add_from_file(b, GITG_UI_DIR "/gitg-menus.xml", &error))
{
g_critical("Could not open UI file: %s (%s)", GITG_UI_DIR "/gitg-menus.xml", error->message);
g_error_free(error);
exit(1);
}
GtkBuilder *b = gitg_utils_new_builder( "gitg-menus.xml");
GtkUIManager *manager = GTK_UI_MANAGER(gtk_builder_get_object(b, "uiman"));
window->priv->search_popup = GTK_WIDGET(g_object_ref(gtk_ui_manager_get_widget(manager, "/ui/search_popup")));

View File

@ -77,14 +77,7 @@ build_ui()
{
GError *error = NULL;
GtkBuilder *builder = gtk_builder_new();
if (!gtk_builder_add_from_file(builder, GITG_UI_DIR "/gitg-ui.xml", &error))
{
g_critical("Could not open UI file: %s (%s)", GITG_UI_DIR "/gitg-ui.xml", error->message);
g_error_free(error);
exit(1);
}
GtkBuilder *builder = gitg_utils_new_builder("gitg-ui.xml");
GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder, "window"));
gtk_widget_show_all(window);