Updating branch refs/heads/jeromeg/settings-editor to cc2ac5a32a591d1aa3e7d613ed0fadbe647d546a (commit) from 566979f1bcc8a9f67d13e059ce502d17ea7202ee (commit)
commit cc2ac5a32a591d1aa3e7d613ed0fadbe647d546a Author: Jérôme Guelfucci <jero...@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); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits