commit ff9b4abf55b474fd9f6c6ecd7d56d95e88f3e141
Author: phantomjinx <p.g.richard...@phantomjinx.co.uk>
Date:   Thu May 31 23:39:16 2012 +0100

    Change to anjuta preference creation causing crash in pref dialog
    
    * The use of anjuta_prefences_add_from_builder assumes all the widgets in
      the builder have related preferences in the gsettings of the core gtkpod
      xml. The disable_splash_screen is not in there as it is from .prefs.
    
    * Reverts modifications made by f671cc889 with a little bit of tidying up

 src/anjuta-app.c |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)
---
diff --git a/src/anjuta-app.c b/src/anjuta-app.c
index 73ad2af..b78e345 100644
--- a/src/anjuta-app.c
+++ b/src/anjuta-app.c
@@ -697,9 +697,11 @@ void anjuta_app_layout_reset(AnjutaApp *app) {
 }
 
 void anjuta_app_install_preferences(AnjutaApp *app) {
+    gchar *img_path;
+    GdkPixbuf *pixbuf;
     GtkBuilder* builder = gtk_builder_new();
     GError* error = NULL;
-    GtkWidget *notebook, *splash_toggle, *shortcuts, *plugins, 
*remember_plugins;
+    GtkWidget *parent, *notebook, *splash_toggle, *shortcuts, *plugins, 
*remember_plugins;
 
     /* Create preferences page */
     gchar *glade_path = g_build_filename(get_glade_dir(), CORE_GTKPOD_XML, 
NULL);
@@ -716,11 +718,18 @@ void anjuta_app_install_preferences(AnjutaApp *app) {
 
     gtk_builder_connect_signals(builder, NULL);
 
-    gchar *icon_path = g_build_filename(get_icon_dir(), ICON_FILE, NULL);
-    anjuta_preferences_add_from_builder(app->preferences, builder, 
app->settings, "General", _("General"), ICON_FILE);
-    g_free(icon_path);
-
     notebook = GTK_WIDGET(gtk_builder_get_object(builder, "General"));
+    parent = gtk_widget_get_parent(notebook);
+    g_object_ref(notebook);
+    gtk_container_remove(parent, notebook);
+    gtk_widget_destroy(parent);
+
+    img_path = anjuta_res_get_pixmap_file(ICON_FILE);
+    pixbuf = gdk_pixbuf_new_from_file(img_path, NULL);
+    
anjuta_preferences_dialog_add_page(ANJUTA_PREFERENCES_DIALOG(anjuta_preferences_get_dialog(app->preferences)),
 "plugins", _(" Plugins"), pixbuf, notebook);
+
+    // Cannot use anjuta_preferences_add_from_builder() since this requires 
the splash screen key to be a gsetting
+
     shortcuts = anjuta_ui_get_accel_editor(ANJUTA_UI(app->ui));
     plugins = anjuta_plugin_manager_get_plugins_page(app->plugin_manager);
     remember_plugins = 
anjuta_plugin_manager_get_remembered_plugins_page(app->plugin_manager);
@@ -734,6 +743,9 @@ void anjuta_app_install_preferences(AnjutaApp *app) {
     gtk_notebook_append_page(GTK_NOTEBOOK (notebook), shortcuts, 
gtk_label_new(_("Shortcuts")));
 
     g_object_unref(builder);
+    g_object_unref(notebook);
+    g_free(img_path);
+    g_object_unref(pixbuf);
 }
 
 /* AnjutaShell Implementation */

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to