[Xfce4-commits] <xfce4-settings:master> Set the state of the edit and reset buttons in all cases.
Jérôme Guelfucci
noreply at xfce.org
Tue Jan 19 19:34:06 CET 2010
Updating branch refs/heads/master
to ead7fa640db63b6c7f9e02caea9e1edbd195d9d2 (commit)
from 92bbb647b82dada498bd333c40dd96d232ec722c (commit)
commit ead7fa640db63b6c7f9e02caea9e1edbd195d9d2
Author: Jérôme Guelfucci <jeromeg at xfce.org>
Date: Mon Dec 21 10:04:52 2009 +0100
Set the state of the edit and reset buttons in all cases.
We set the default state to insensitive, set it to sensitive when an
editable property is selected. If the property is locked or if a new
channel is selected, we set the buttons to be insensitive.
xfce4-settings-editor/main_window.c | 31 +++++++++++++++++++++++++------
1 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/xfce4-settings-editor/main_window.c b/xfce4-settings-editor/main_window.c
index 38a04bf..cb065f6 100644
--- a/xfce4-settings-editor/main_window.c
+++ b/xfce4-settings-editor/main_window.c
@@ -58,7 +58,7 @@ static void
load_properties (XfconfChannel *channel, GtkTreeStore *store, GtkTreeView *treeview);
static void
-cb_channel_treeview_selection_changed (GtkTreeSelection *selection, gpointer user_data);
+cb_channel_treeview_selection_changed (GtkTreeSelection *selection, GtkBuilder *builder);
static void
cb_property_treeview_selection_changed (GtkTreeSelection *selection, GtkBuilder *builder);
static void
@@ -108,6 +108,9 @@ xfce4_settings_editor_main_window_new(void)
property_new_button = gtk_builder_get_object (builder, "property_new_button");
property_revert_button = gtk_builder_get_object (builder, "property_revert_button");
+ gtk_widget_set_sensitive (GTK_WIDGET (property_edit_button), FALSE);
+ gtk_widget_set_sensitive (GTK_WIDGET (property_revert_button), FALSE);
+
/*
* Channel List
*/
@@ -145,7 +148,7 @@ xfce4_settings_editor_main_window_new(void)
/* selection handling */
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (channel_treeview));
- g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (cb_channel_treeview_selection_changed), NULL);
+ g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (cb_channel_treeview_selection_changed), builder);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (property_treeview));
g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (cb_property_treeview_selection_changed), builder);
@@ -408,21 +411,28 @@ cb_property_treeview_row_activated (GtkTreeView *tree_view, GtkTreePath *path, G
}
static void
-cb_channel_treeview_selection_changed (GtkTreeSelection *selection, gpointer user_data)
+cb_channel_treeview_selection_changed (GtkTreeSelection *selection, GtkBuilder *builder)
{
GtkTreeModel *model;
GtkTreeIter iter;
XfconfChannel *channel;
GObject *property_treeview;
+ GObject *property_edit_button;
+ GObject *property_revert_button;
GtkTreeModel *tree_store = NULL;
GValue value = {0, };
+ property_edit_button = gtk_builder_get_object (builder, "property_edit_button");
+ property_revert_button = gtk_builder_get_object (builder, "property_revert_button");
+
if (current_channel)
{
g_object_unref (G_OBJECT(current_channel));
current_channel = NULL;
}
+
+
if (! gtk_tree_selection_get_selected (selection, &model, &iter))
return;
@@ -454,15 +464,26 @@ cb_property_treeview_selection_changed (GtkTreeSelection *selection, GtkBuilder
gchar *prop_name = NULL;
gchar *temp = NULL;
+ property_edit_button = gtk_builder_get_object (builder, "property_edit_button");
+ property_revert_button = gtk_builder_get_object (builder, "property_revert_button");
+
if (current_property)
{
g_free (prop_name);
current_property = NULL;
}
+ gtk_widget_set_sensitive (GTK_WIDGET (property_edit_button), FALSE);
+ gtk_widget_set_sensitive (GTK_WIDGET (property_revert_button), FALSE);
+
/* return if no property is selected */
- if (! gtk_tree_selection_get_selected (selection, &model, &iter))
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ gtk_widget_set_sensitive (GTK_WIDGET (property_edit_button), FALSE);
+ gtk_widget_set_sensitive (GTK_WIDGET (property_revert_button), FALSE);
+
return;
+ }
/* create the complete property-name */
gtk_tree_model_get_value (model, &iter, 0, &value);
@@ -486,8 +507,6 @@ cb_property_treeview_selection_changed (GtkTreeSelection *selection, GtkBuilder
current_property = prop_name;
/* Set the state of the edit and reset buttons */
- property_edit_button = gtk_builder_get_object (builder, "property_edit_button");
- property_revert_button = gtk_builder_get_object (builder, "property_revert_button");
locked = xfconf_channel_is_property_locked (current_channel, current_property);
gtk_widget_set_sensitive (GTK_WIDGET (property_edit_button), !locked);
More information about the Xfce4-commits
mailing list