anjuta r3987 - in trunk: . libanjuta plugins/terminal
- From: sgranjoux svn gnome org
- To: svn-commits-list gnome org
- Subject: anjuta r3987 - in trunk: . libanjuta plugins/terminal
- Date: Thu, 5 Jun 2008 19:41:31 +0000 (UTC)
Author: sgranjoux
Date: Thu Jun 5 19:41:31 2008
New Revision: 3987
URL: http://svn.gnome.org/viewvc/anjuta?rev=3987&view=rev
Log:
* plugins/terminal/terminal.c,
libanjuta/anjuta-preferences.c:
Fix a crash when GNOME Terminal is not installed
Modified:
trunk/ChangeLog
trunk/libanjuta/anjuta-preferences.c
trunk/plugins/terminal/terminal.c
Modified: trunk/libanjuta/anjuta-preferences.c
==============================================================================
--- trunk/libanjuta/anjuta-preferences.c (original)
+++ trunk/libanjuta/anjuta-preferences.c Thu Jun 5 19:41:31 2008
@@ -1104,7 +1104,10 @@
g_return_val_if_fail (GTK_IS_WIDGET (object), FALSE);
g_return_val_if_fail (key != NULL, FALSE);
g_return_val_if_fail (strlen(key) > 0, FALSE);
-
+ g_return_val_if_fail ((object_type != ANJUTA_PROPERTY_OBJECT_TYPE_COMBO) ||
+ ((default_value != NULL) &&
+ (*default_value != '\0')), FALSE);
+
p = g_new0 (AnjutaProperty, 1);
g_object_ref (object);
p->object = object;
Modified: trunk/plugins/terminal/terminal.c
==============================================================================
--- trunk/plugins/terminal/terminal.c (original)
+++ trunk/plugins/terminal/terminal.c Thu Jun 5 19:41:31 2008
@@ -766,7 +766,6 @@
{
GSList *profiles;
GConfClient *client;
- GString *default_value;
/* Create the terminal preferences page */
TerminalPlugin* term_plugin = ANJUTA_PLUGIN_TERMINAL (ipref);
@@ -775,16 +774,18 @@
"Terminal", _("Terminal"), ICON_FILE);
term_plugin->pref_profile_combo = glade_xml_get_widget (gxml, "profile_list_combo");
+ term_plugin->pref_default_button = glade_xml_get_widget (gxml, "preferences_toggle:bool:1:0:terminal.default.profile");
/* Update the currently available list of terminal profiles */
client = gconf_client_get_default ();
profiles = gconf_client_get_list (client, GCONF_PROFILE_LIST,
GCONF_VALUE_STRING, NULL);
- default_value = g_string_new (NULL);
if (profiles)
{
GtkListStore *store;
+ GString *default_value;
+ default_value = g_string_new (NULL);
store = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (term_plugin->pref_profile_combo)));
gtk_list_store_clear (store);
@@ -793,22 +794,26 @@
g_slist_foreach (profiles, (GFunc)g_free, NULL);
g_slist_free (profiles);
- }
- anjuta_preferences_register_property_raw (term_plugin->prefs,
- term_plugin->pref_profile_combo,
- PREFS_TERMINAL_PROFILE,
- default_value->str,
- 1,
- ANJUTA_PROPERTY_OBJECT_TYPE_COMBO,
- ANJUTA_PROPERTY_DATA_TYPE_TEXT);
- g_string_free (default_value, TRUE);
+ anjuta_preferences_register_property_raw (term_plugin->prefs,
+ term_plugin->pref_profile_combo,
+ PREFS_TERMINAL_PROFILE,
+ default_value->str,
+ 1,
+ ANJUTA_PROPERTY_OBJECT_TYPE_COMBO,
+ ANJUTA_PROPERTY_DATA_TYPE_TEXT);
+ g_string_free (default_value, TRUE);
- term_plugin->pref_default_button =
- glade_xml_get_widget (gxml,
- "preferences_toggle:bool:1:0:terminal.default.profile");
- use_default_profile_cb (GTK_TOGGLE_BUTTON (term_plugin->pref_default_button), term_plugin);
- g_signal_connect (G_OBJECT(term_plugin->pref_default_button), "toggled",
+ use_default_profile_cb (GTK_TOGGLE_BUTTON (term_plugin->pref_default_button), term_plugin);
+ g_signal_connect (G_OBJECT(term_plugin->pref_default_button), "toggled",
G_CALLBACK (use_default_profile_cb), term_plugin);
+ }
+ else
+ {
+ /* No profile, perhaps GNOME Terminal is not installed,
+ * Remove selection */
+ gtk_widget_set_sensitive (term_plugin->pref_profile_combo, FALSE);
+ gtk_widget_set_sensitive (term_plugin->pref_default_button, FALSE);
+ }
g_object_unref (gxml);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]