[nautilus-actions] Schemes list: only ask once for preferences



commit 8d45cb16c4fce965c60df0ffdc4963e3d98e1be4
Author: Pierre Wieser <pwieser trychlos org>
Date:   Wed Jan 26 23:31:51 2011 +0100

    Schemes list: only ask once for preferences

 ChangeLog                    |    2 ++
 src/nact/nact-schemes-list.c |   23 ++++++++++++++++-------
 2 files changed, 18 insertions(+), 7 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 72e284b..b4ff279 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2011-01-26 Pierre Wieser <pwieser trychlos org>
 
+	* src/nact/nact-schemes-list.c: Only ask for preferences once.
+
 	* src/nact/nact-assistant-import.c (assist_new):
 	Reload the common XML UI file into the private builder.
 
diff --git a/src/nact/nact-schemes-list.c b/src/nact/nact-schemes-list.c
index e7966a3..cc1c5d4 100644
--- a/src/nact/nact-schemes-list.c
+++ b/src/nact/nact-schemes-list.c
@@ -52,9 +52,15 @@
  * at this time, window is set
  */
 typedef struct {
-	GtkTreeView        *treeview;		/* set when allocating the data */
-	guint               mode;			/* set when creating the model */
-	BaseWindow         *window;			/* set when initializating the view */
+	/* set when creating the model (on_initialize_gtk_toplevel)
+	 */
+	GtkTreeView        *treeview;
+	guint               mode;
+
+	/* set when initializing the view (on_initialize_base_window)
+	 */
+	BaseWindow         *window;
+	gboolean            preferences_locked;
 	gboolean            editable;
 	pf_new_selection_cb pf_on_sel_changed;
 	void               *user_data;
@@ -211,7 +217,8 @@ nact_schemes_list_init_view( GtkTreeView *treeview, BaseWindow *window, pf_new_s
 
 	data = get_schemes_list_data( treeview );
 	data->window = window;
-	data->editable = ( data->mode == SCHEMES_LIST_FOR_PREFERENCES && !are_preferences_locked( window ));
+	data->preferences_locked = are_preferences_locked( window );
+	data->editable = ( data->mode == SCHEMES_LIST_FOR_PREFERENCES && !data->preferences_locked );
 	data->pf_on_sel_changed = pf;
 	data->user_data = user_data;
 
@@ -779,7 +786,6 @@ static void
 display_label( GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, SchemesListData *data, guint column_id )
 {
 	gboolean used;
-	gboolean are_locked;
 
 	gtk_tree_model_get( model, iter, SCHEMES_ALREADY_USED_COLUMN, &used, -1 );
 	g_object_set( cell, "style-set", FALSE, NULL );
@@ -788,8 +794,7 @@ display_label( GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *m
 		g_object_set( cell, "style", PANGO_STYLE_ITALIC, "style-set", TRUE, NULL );
 	}
 
-	are_locked = are_preferences_locked( data->window );
-	if( are_locked ){
+	if( data->preferences_locked ){
 		g_object_set( cell, "foreground", "Grey", "foreground-set", TRUE, NULL );
 	}
 }
@@ -797,11 +802,15 @@ display_label( GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *m
 static gboolean
 are_preferences_locked( BaseWindow *window )
 {
+	static const gchar *thisfn = "nact_schemes_list_are_preferences_locked";
 	NactApplication *application;
 	NAUpdater *updater;
 	NASettings *settings;
 	gboolean are_locked;
 
+
+	g_debug( "%s: window=%p (%s)", thisfn, ( void * ) window, G_OBJECT_TYPE_NAME( window ));
+
 	application = NACT_APPLICATION( base_window_get_application( window ));
 	updater = nact_application_get_updater( application );
 	settings = na_pivot_get_settings( NA_PIVOT( updater ));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]