commit ff9b4abf55b474fd9f6c6ecd7d56d95e88f3e141
Author: phantomjinx <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2