[nautilus-actions] Review NactIBasenamesTab page



commit 71fdef55175d0224ec0f14e8690e9496b1bd60f1
Author: Pierre Wieser <pwieser trychlos org>
Date:   Wed Jun 16 21:01:11 2010 +0200

    Review NactIBasenamesTab page

 ChangeLog                      |    6 ++
 src/nact/nact-ibasenames-tab.c |   36 ++++------
 src/nact/nact-match-list.c     |  157 +++++++++-------------------------------
 src/nact/nact-match-list.h     |    3 -
 4 files changed, 54 insertions(+), 148 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 9409513..8532bd5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2010-06-16 Pierre Wieser <pwieser trychlos org>
 
+	* src/nact/nact-ibasenames-tab.c: Review NactIBasenamesTab page.
+
+	* src/nact/nact-match-list.c:
+	* src/nact/nact-match-list.h (nact_match_list_on_enable_tab):
+	Removed function.
+
 	* src/nact/nact-icommand-tab.c:
 	* src/nact/nact-icommand-tab.h: Review NactICommandTab page.
 
diff --git a/src/nact/nact-ibasenames-tab.c b/src/nact/nact-ibasenames-tab.c
index 8203a60..6246afc 100644
--- a/src/nact/nact-ibasenames-tab.c
+++ b/src/nact/nact-ibasenames-tab.c
@@ -56,9 +56,9 @@ static GType   register_type( void );
 static void    interface_base_init( NactIBasenamesTabInterface *klass );
 static void    interface_base_finalize( NactIBasenamesTabInterface *klass );
 
-static void    on_matchcase_toggled( GtkToggleButton *button, BaseWindow *window );
 static void    on_tab_updatable_selection_changed( BaseWindow *window, gint count_selected );
 
+static void    on_matchcase_toggled( GtkToggleButton *button, BaseWindow *window );
 static GSList *get_basenames( void *context );
 static void    set_basenames( void *context, GSList *filters );
 
@@ -237,27 +237,27 @@ nact_ibasenames_tab_dispose( NactIBasenamesTab *instance )
 }
 
 static void
+on_tab_updatable_selection_changed( BaseWindow *window, gint count_selected )
+{
+	st_on_selection_change = TRUE;
+
+	nact_match_list_on_selection_changed( window, ITAB_NAME, count_selected );
+
+	st_on_selection_change = FALSE;
+}
+
+static void
 on_matchcase_toggled( GtkToggleButton *button, BaseWindow *window )
 {
-	NAObjectItem *item;
-	NAObjectProfile *profile;
 	NAIContext *context;
-	gboolean matchcase;
 	gboolean editable;
+	gboolean matchcase;
 
 	if( !st_on_selection_change ){
 
-		g_object_get(
-				G_OBJECT( window ),
-				TAB_UPDATABLE_PROP_SELECTED_ITEM, &item,
-				TAB_UPDATABLE_PROP_SELECTED_PROFILE, &profile,
-				TAB_UPDATABLE_PROP_EDITABLE, &editable,
-				NULL );
-
-		context = ( profile ? NA_ICONTEXT( profile ) : ( NAIContext * ) item );
+		context = nact_main_tab_get_context( NACT_MAIN_WINDOW( window ), &editable );
 
 		if( context ){
-
 			matchcase = gtk_toggle_button_get_active( button );
 
 			if( editable ){
@@ -273,16 +273,6 @@ on_matchcase_toggled( GtkToggleButton *button, BaseWindow *window )
 	}
 }
 
-static void
-on_tab_updatable_selection_changed( BaseWindow *window, gint count_selected )
-{
-	st_on_selection_change = TRUE;
-
-	nact_match_list_on_selection_changed( window, ITAB_NAME, count_selected );
-
-	st_on_selection_change = FALSE;
-}
-
 static GSList *
 get_basenames( void *context )
 {
diff --git a/src/nact/nact-match-list.c b/src/nact/nact-match-list.c
index 5c3940b..2e4dbd6 100644
--- a/src/nact/nact-match-list.c
+++ b/src/nact/nact-match-list.c
@@ -86,7 +86,6 @@ static void         insert_new_row( MatchListStr *data );
 static void         insert_new_row_data( MatchListStr *data, const gchar *filter, gboolean match, gboolean no_match );
 static void         iter_for_setup( gchar *filter, GtkTreeModel *model );
 static void         sort_on_column( GtkTreeViewColumn *treeviewcolumn, MatchListStr *data, guint colid );
-static gboolean     tab_set_sensitive( MatchListStr *data );
 
 /**
  * nact_match_list_create_model:
@@ -307,10 +306,8 @@ nact_match_list_on_selection_changed( BaseWindow *window, const gchar *tab_name,
 {
 	static const gchar *thisfn = "nact_match_list_on_selection_changed";
 	MatchListStr *data;
-	NAObjectItem *item;
-	NAObjectProfile *profile;
-	gboolean editable;
 	NAIContext *context;
+	gboolean enable_tab;
 	GSList *filters;
 	GtkTreeModel *model;
 	GtkTreeSelection *selection;
@@ -322,74 +319,47 @@ nact_match_list_on_selection_changed( BaseWindow *window, const gchar *tab_name,
 	data = ( MatchListStr * ) g_object_get_data( G_OBJECT( window ), tab_name );
 	g_return_if_fail( data != NULL );
 
-	g_object_get(
-			G_OBJECT( window ),
-			TAB_UPDATABLE_PROP_SELECTED_ITEM, &item,
-			TAB_UPDATABLE_PROP_SELECTED_PROFILE, &profile,
-			TAB_UPDATABLE_PROP_EDITABLE, &editable,
-			NULL );
+	context = nact_main_tab_get_context( NACT_MAIN_WINDOW( window ), &data->editable );
 
-	context = ( profile ? NA_ICONTEXT( profile ) : ( NAIContext * ) item );
-	data->editable = editable;
-	filters = NULL;
+	enable_tab = ( context != NULL );
+	nact_main_tab_enable_page( NACT_MAIN_WINDOW( data->window ), data->tab_id, enable_tab );
+
+	if( enable_tab ){
+
+		st_on_selection_change = TRUE;
 
-	if( context ){
 		filters = ( *data->pget )( context );
 		g_debug( "%s: filters=%p (count=%d)", thisfn, ( void * ) filters, filters ? g_slist_length( filters ) : -1 );
-	}
 
-	st_on_selection_change = TRUE;
-
-	model = gtk_tree_view_get_model( data->listview );
-	selection = gtk_tree_view_get_selection( data->listview );
-	gtk_tree_selection_unselect_all( selection );
-	gtk_list_store_clear( GTK_LIST_STORE( model ));
+		model = gtk_tree_view_get_model( data->listview );
+		selection = gtk_tree_view_get_selection( data->listview );
+		gtk_tree_selection_unselect_all( selection );
+		gtk_list_store_clear( GTK_LIST_STORE( model ));
 
-	if( filters ){
-		na_core_utils_slist_dump( filters );
-		g_slist_foreach( filters, ( GFunc ) iter_for_setup, model );
-	}
+		if( filters ){
+			na_core_utils_slist_dump( filters );
+			g_slist_foreach( filters, ( GFunc ) iter_for_setup, model );
+		}
 
-	column = gtk_tree_view_get_column( data->listview, ITEM_COLUMN );
-	nact_gtk_utils_set_editable( GTK_OBJECT( column ), data->editable );
+		column = gtk_tree_view_get_column( data->listview, ITEM_COLUMN );
+		nact_gtk_utils_set_editable( GTK_OBJECT( column ), data->editable );
 
-	nact_gtk_utils_set_editable( GTK_OBJECT( data->addbutton ), data->editable );
-	nact_gtk_utils_set_editable( GTK_OBJECT( data->removebutton ), data->editable );
-	gtk_widget_set_sensitive( data->removebutton, FALSE );
+		nact_gtk_utils_set_editable( GTK_OBJECT( data->addbutton ), data->editable );
+		nact_gtk_utils_set_editable( GTK_OBJECT( data->removebutton ), data->editable );
+		gtk_widget_set_sensitive( data->removebutton, FALSE );
 
-	st_on_selection_change = FALSE;
+		st_on_selection_change = FALSE;
 
-	path = gtk_tree_path_new_first();
-	if( path ){
-		selection = gtk_tree_view_get_selection( data->listview );
-		gtk_tree_selection_select_path( selection, path );
-		gtk_tree_path_free( path );
+		path = gtk_tree_path_new_first();
+		if( path ){
+			selection = gtk_tree_view_get_selection( data->listview );
+			gtk_tree_selection_select_path( selection, path );
+			gtk_tree_path_free( path );
+		}
 	}
 }
 
 /**
- * nact_match_list_on_enable_tab:
- * @window: the #BaseWindow window which contains the view.
- * @tab_name: a string constant which identifies this page.
- * @item: the currently selected #NAObjectItem.
- *
- * Enable/disable this page of the notebook.
- */
-void
-nact_match_list_on_enable_tab( BaseWindow *window, const gchar *tab_name, NAObjectItem *item )
-{
-	static const gchar *thisfn = "nact_match_list_on_tab_updatable_enable_tab";
-	MatchListStr *data;
-
-	g_debug( "%s: window=%p, tab=%s, item=%p", thisfn, ( void * ) window, tab_name, ( void * ) item );
-
-	data = ( MatchListStr * ) g_object_get_data( G_OBJECT( window ), tab_name );
-	g_return_if_fail( data != NULL );
-
-	tab_set_sensitive( data );
-}
-
-/**
  * nact_match_list_insert_row:
  * @window: the #BaseWindow window which contains the view.
  * @tab_name: a string constant which identifies this page.
@@ -457,8 +427,6 @@ on_filter_edited( GtkCellRendererText *renderer, const gchar *path_str, const gc
 	GtkTreeIter iter;
 	GtkTreePath *path;
 	gchar *old_text;
-	NAObjectItem *item;
-	NAObjectProfile *profile;
 	NAIContext *context;
 	gboolean must_match, must_not_match;
 	gchar *to_add, *to_remove;
@@ -477,13 +445,7 @@ on_filter_edited( GtkCellRendererText *renderer, const gchar *path_str, const gc
 
 	gtk_list_store_set( GTK_LIST_STORE( model ), &iter, ITEM_COLUMN, text, -1 );
 
-	g_object_get(
-			G_OBJECT( data->window ),
-			TAB_UPDATABLE_PROP_SELECTED_ITEM, &item,
-			TAB_UPDATABLE_PROP_SELECTED_PROFILE, &profile,
-			NULL );
-
-	context = ( profile ? NA_ICONTEXT( profile ) : ( NAIContext * ) item );
+	context = nact_main_tab_get_context( NACT_MAIN_WINDOW( data->window ), NULL );
 
 	if( context ){
 		filters = ( *data->pget )( context );
@@ -561,8 +523,6 @@ on_must_match_toggled( GtkCellRendererToggle *cell_renderer, gchar *path_str, Ma
 	GtkTreePath *path;
 	GtkTreeIter iter;
 	gchar *filter;
-	NAObjectItem *item;
-	NAObjectProfile *profile;
 	NAIContext *context;
 	GSList *filters;
 	gchar *to_remove;
@@ -580,13 +540,7 @@ on_must_match_toggled( GtkCellRendererToggle *cell_renderer, gchar *path_str, Ma
 		gtk_tree_model_get( model, &iter, ITEM_COLUMN, &filter, -1 );
 		gtk_list_store_set( GTK_LIST_STORE( model ), &iter, MUST_MATCH_COLUMN, TRUE, MUST_NOT_MATCH_COLUMN, FALSE, -1 );
 
-		g_object_get(
-				G_OBJECT( data->window ),
-				TAB_UPDATABLE_PROP_SELECTED_ITEM, &item,
-				TAB_UPDATABLE_PROP_SELECTED_PROFILE, &profile,
-				NULL );
-
-		context = ( profile ? NA_ICONTEXT( profile ) : ( NAIContext * ) item );
+		context = nact_main_tab_get_context( NACT_MAIN_WINDOW( data->window ), NULL );
 
 		if( context ){
 			filters = ( *data->pget )( context );
@@ -618,8 +572,6 @@ on_must_not_match_toggled( GtkCellRendererToggle *cell_renderer, gchar *path_str
 	GtkTreePath *path;
 	GtkTreeIter iter;
 	gchar *filter;
-	NAObjectItem *item;
-	NAObjectProfile *profile;
 	NAIContext *context;
 	GSList *filters;
 	gchar *to_add;
@@ -637,19 +589,15 @@ on_must_not_match_toggled( GtkCellRendererToggle *cell_renderer, gchar *path_str
 		gtk_tree_model_get( model, &iter, ITEM_COLUMN, &filter, -1 );
 		gtk_list_store_set( GTK_LIST_STORE( model ), &iter, MUST_MATCH_COLUMN, FALSE, MUST_NOT_MATCH_COLUMN, TRUE, -1 );
 
-		g_object_get(
-				G_OBJECT( data->window ),
-				TAB_UPDATABLE_PROP_SELECTED_ITEM, &item,
-				TAB_UPDATABLE_PROP_SELECTED_PROFILE, &profile,
-				NULL );
-
-		context = ( profile ? NA_ICONTEXT( profile ) : ( NAIContext * ) item );
+		context = nact_main_tab_get_context( NACT_MAIN_WINDOW( data->window ), NULL );
 
 		if( context ){
 			filters = ( *data->pget )( context );
+
 			if( filters ){
 				filters = na_core_utils_slist_remove_ascii( filters, filter );
 			}
+
 			to_add = g_strdup_printf( "!%s", filter );
 			filters = g_slist_prepend( filters, to_add );
 			( *data->pset )( context, filters );
@@ -678,19 +626,11 @@ on_selection_changed( GtkTreeSelection *selection, MatchListStr *data )
 static void
 add_filter( MatchListStr *data, const gchar *filter, const gchar *prefix )
 {
-	NAObjectItem *item;
-	NAObjectProfile *profile;
 	NAIContext *context;
 	GSList *filters;
 	gchar *to_add;
 
-	g_object_get(
-			G_OBJECT( data->window ),
-			TAB_UPDATABLE_PROP_SELECTED_ITEM, &item,
-			TAB_UPDATABLE_PROP_SELECTED_PROFILE, &profile,
-			NULL );
-
-	context = ( profile ? NA_ICONTEXT( profile ) : ( NAIContext * ) item );
+	context = nact_main_tab_get_context( NACT_MAIN_WINDOW( data->window ), NULL );
 
 	if( context ){
 		filters = ( *data->pget )( context );
@@ -712,8 +652,6 @@ delete_current_row( MatchListStr *data )
 	GtkTreePath *path;
 	GtkTreeIter iter;
 	gchar *filter;
-	NAObjectItem *item;
-	NAObjectProfile *profile;
 	NAIContext *context;
 	GSList *filters;
 	gchar *to_remove;
@@ -728,13 +666,7 @@ delete_current_row( MatchListStr *data )
 		gtk_tree_model_get( model, &iter, ITEM_COLUMN, &filter, -1 );
 		gtk_list_store_remove( GTK_LIST_STORE( model ), &iter );
 
-		g_object_get(
-				G_OBJECT( data->window ),
-				TAB_UPDATABLE_PROP_SELECTED_ITEM, &item,
-				TAB_UPDATABLE_PROP_SELECTED_PROFILE, &profile,
-				NULL );
-
-		context = ( profile ? NA_ICONTEXT( profile ) : ( NAIContext * ) item );
+		context = nact_main_tab_get_context( NACT_MAIN_WINDOW( data->window ), NULL );
 
 		if( context ){
 			filters = ( *data->pget )( context );
@@ -893,22 +825,3 @@ sort_on_column( GtkTreeViewColumn *treeviewcolumn, MatchListStr *data, guint new
 	model = gtk_tree_view_get_model( data->listview );
 	gtk_tree_sortable_set_sort_column_id( GTK_TREE_SORTABLE( model ), new_col_id, new_order );
 }
-
-static gboolean
-tab_set_sensitive( MatchListStr *data )
-{
-	NAObjectItem *item;
-	NAObjectProfile *profile;
-	gboolean enable_tab;
-
-	g_object_get(
-			G_OBJECT( data->window ),
-			TAB_UPDATABLE_PROP_SELECTED_ITEM, &item,
-			TAB_UPDATABLE_PROP_SELECTED_PROFILE, &profile,
-			NULL );
-
-	enable_tab = ( profile != NULL || item != NULL );
-	nact_main_tab_enable_page( NACT_MAIN_WINDOW( data->window ), data->tab_id, enable_tab );
-
-	return( enable_tab );
-}
diff --git a/src/nact/nact-match-list.h b/src/nact/nact-match-list.h
index 2315c5e..9855f01 100644
--- a/src/nact/nact-match-list.h
+++ b/src/nact/nact-match-list.h
@@ -79,9 +79,6 @@ void  nact_match_list_init_view           ( BaseWindow *window, const gchar *tab
 void  nact_match_list_on_selection_changed( BaseWindow *window, const gchar *tab_name,
 		guint count );
 
-void  nact_match_list_on_enable_tab       ( BaseWindow *window, const gchar *tab_name,
-		NAObjectItem *item );
-
 void  nact_match_list_insert_row          ( BaseWindow *window, const gchar *tab_name,
 		const gchar *filter, gboolean match, gboolean not_match );
 



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