[Xfce4-commits] r24316 - squeeze/trunk/src

Peter de Ridder peter at xfce.org
Mon Jan 8 19:45:58 CET 2007


Author: peter
Date: 2007-01-08 18:45:57 +0000 (Mon, 08 Jan 2007)
New Revision: 24316

Modified:
   squeeze/trunk/src/archive_store.c
   squeeze/trunk/src/archive_store.h
Log:
fixed bug #2707



Modified: squeeze/trunk/src/archive_store.c
===================================================================
--- squeeze/trunk/src/archive_store.c	2007-01-08 16:44:42 UTC (rev 24315)
+++ squeeze/trunk/src/archive_store.c	2007-01-08 18:45:57 UTC (rev 24316)
@@ -215,11 +215,10 @@
 	as->sort_column = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
 	as->sort_order = GTK_SORT_ASCENDING;
 	as->sort_list = NULL;
-	as->list_size = 0;
 	as->icon_theme = NULL;
 	as->props._show_icons = 0;
 	as->props._show_up_dir = 1;
-	as->props._sort_folders_first = 1;
+	as->props._sort_folders_first = 0;
 	as->props._sort_case_sensitive = 1;
 	as->navigation.history = NULL;
 	as->navigation.present = NULL;
@@ -551,12 +550,7 @@
 	pos++;
 
 	if(store->sort_list)
-	{
-		if(pos < lsq_archive_iter_n_children(store->archive, entry))
-			entry = store->sort_list[pos];
-		else
-			entry = NULL;
-	}
+		entry = store->sort_list[pos];
 	else
 		entry = lsq_archive_iter_nth_child(store->archive, entry, pos);
 
@@ -866,6 +860,7 @@
 
 	for(i = 0; i < psize; ++i)
 	{
+		g_debug("sorting %i", i);
 		store->sort_list[i] = lsq_archive_iter_nth_child(store->archive, pentry, i);
 	}
 	sq_archive_quicksort(store, 0, psize-1);
@@ -965,7 +960,6 @@
 static void
 sq_archive_store_refresh(SQArchiveStore *store)
 {
-	guint prev_size = store->list_size;
 	LSQArchive *archive = store->archive;
 
 	if(!store->navigation.present)
@@ -979,66 +973,8 @@
 	g_return_if_fail(archive);
 	g_return_if_fail(entry);
 
-	gint new_size = lsq_archive_iter_n_children(archive, entry);
-	gint i = 0;
-	gint index = 0;
-	GtkTreePath *path_ = NULL;
-	GtkTreeIter iter;
-
-	if(store->props._show_up_dir && lsq_archive_get_iter(archive, NULL) != entry)
-	{ 
-		path_ = gtk_tree_path_new();
-		gtk_tree_path_append_index(path_, 0);
-
-		iter.stamp = store->stamp;
-		iter.user_data = NULL;
-		iter.user_data2 = entry;
-		iter.user_data3 = GINT_TO_POINTER(-1);
-
-		if(0 < prev_size)
-			gtk_tree_model_row_changed(GTK_TREE_MODEL(store), path_, &iter);
-		else
-			gtk_tree_model_row_inserted(GTK_TREE_MODEL(store), path_, &iter);
-
-		gtk_tree_path_free(path_);
-		i=1;
-	}
-
-	for(index = 0; index < new_size; ++i, ++index)
-	{
-		path_ = gtk_tree_path_new();
-		gtk_tree_path_append_index(path_, i);
-
-		iter.stamp = store->stamp;
-		if(store->sort_list)
-			iter.user_data = store->sort_list[i];
-		else
-			iter.user_data = lsq_archive_iter_nth_child(archive, lsq_archive_get_iter(archive, NULL), i);
-		iter.user_data2 = entry;
-		iter.user_data3 = GINT_TO_POINTER(index);
-
-		if(i < prev_size)
-			gtk_tree_model_row_changed(GTK_TREE_MODEL(store), path_, &iter);
-		else
-			gtk_tree_model_row_inserted(GTK_TREE_MODEL(store), path_, &iter);
-
-		gtk_tree_path_free(path_);
-	}
-
-	for(index = prev_size - 1; index >= i; --index)
-	{
-		path_ = gtk_tree_path_new();
-		gtk_tree_path_append_index(path_, index);
-
-		gtk_tree_model_row_deleted(GTK_TREE_MODEL(store), path_);
-
-		gtk_tree_path_free(path_);
-	}
-
-	if(store->props._show_up_dir && lsq_archive_get_iter(archive, NULL) != entry)
-		new_size++;
-
-	store->list_size = new_size;
+	gtk_tree_view_set_model(store->treeview, NULL);
+	gtk_tree_view_set_model(store->treeview, GTK_TREE_MODEL(store));
 }
 
 static void
@@ -1141,13 +1077,8 @@
 void
 sq_archive_store_set_archive(SQArchiveStore *store, LSQArchive *archive)
 {
-	gint i = 0;
-	GtkTreePath *path_ = NULL;
-	GtkTreeIter iter;
 	g_return_if_fail(store);
 
-	LSQArchiveIter *entry = NULL;
-	gint prev_size =  0;
 	GList *list_iter;
 	GSList *current_entry;
 
@@ -1157,27 +1088,6 @@
 		store->sort_list = NULL;
 	}
 
-	if(store->navigation.present)
-	{
-		entry = ((GSList*)store->navigation.present->data)->data;
-		prev_size = lsq_archive_iter_n_children(archive, entry);
-
-		if(store->props._show_up_dir && lsq_archive_get_iter(store->archive, NULL) != entry)
-			prev_size++;
-	}
-
-	for(i = prev_size - 1; i >= 0; --i)
-	{
-		path_ = gtk_tree_path_new();
-		gtk_tree_path_append_index(path_, i);
-
-		gtk_tree_model_row_deleted(GTK_TREE_MODEL(store), path_);
-
-		gtk_tree_path_free(path_);
-	}
-
-	store->list_size = 0;
-
 	if(store->archive)
 	{
 		g_signal_handlers_disconnect_by_func(store->archive, cb_sq_archive_store_archive_refreshed, store);
@@ -1194,11 +1104,7 @@
 	store->navigation.present = NULL;
 	store->navigation.trailing = NULL;
 
-	if(store->archive)
-	{
-		g_object_unref(store->archive);
-		store->archive = NULL;
-	}
+	sq_archive_store_refresh(store);
 
 	if(!archive)
 	{
@@ -1216,26 +1122,7 @@
 		sq_archive_store_append_history(store, current_entry);
 
 		sq_archive_store_sort(store);
-
-		store->list_size = lsq_archive_iter_n_children(archive, lsq_archive_get_iter(archive, NULL));
-
-		for(i = 0; i < store->list_size; ++i)
-		{
-			path_ = gtk_tree_path_new();
-			gtk_tree_path_append_index(path_, i);
-
-			iter.stamp = store->stamp;
-			if(store->sort_list)
-				iter.user_data = store->sort_list[i];
-			else
-				iter.user_data = lsq_archive_iter_nth_child(archive, lsq_archive_get_iter(archive, NULL), i);
-			iter.user_data2 = lsq_archive_get_iter(archive, NULL);
-			iter.user_data3 = GINT_TO_POINTER(i);
-
-			gtk_tree_model_row_inserted(GTK_TREE_MODEL(store), path_, &iter);
-
-			gtk_tree_path_free(path_);
-		}
+		sq_archive_store_refresh(store);
 	}
 
 	g_signal_emit(store, sq_archive_store_signals[SQ_ARCHIVE_STORE_SIGNAL_NEW_ARCHIVE], 0, NULL);
@@ -1389,7 +1276,7 @@
 	sq_archive_store_sort(store);
 	sq_archive_store_refresh(store);
 
-	//g_signal_emit(store, sq_archive_store_signals[SQ_ARCHIVE_STORE_SIGNAL_PWD_CHANGED], 0,NULL);
+	g_signal_emit(store, sq_archive_store_signals[SQ_ARCHIVE_STORE_SIGNAL_PWD_CHANGED], 0,NULL);
 
 	return TRUE;
 }
@@ -1676,8 +1563,13 @@
 	if(lsq_archive_get_status(archive) == LSQ_ARCHIVESTATUS_IDLE)
 	{
 		if(!store->navigation.present)
+		{
+			g_debug("added home");
 			sq_archive_store_append_history(store, g_slist_prepend(NULL, lsq_archive_get_iter(archive, NULL)));
-		g_signal_emit(store, sq_archive_store_signals[SQ_ARCHIVE_STORE_SIGNAL_PWD_CHANGED], 0,NULL);
+			g_signal_emit(store, sq_archive_store_signals[SQ_ARCHIVE_STORE_SIGNAL_PWD_CHANGED], 0,NULL);
+		}
+		sq_archive_store_sort(store);
+		sq_archive_store_refresh(store);
 	}
 }
 

Modified: squeeze/trunk/src/archive_store.h
===================================================================
--- squeeze/trunk/src/archive_store.h	2007-01-08 16:44:42 UTC (rev 24315)
+++ squeeze/trunk/src/archive_store.h	2007-01-08 18:45:57 UTC (rev 24316)
@@ -49,7 +49,6 @@
 	gint sort_column;
 	GtkSortType sort_order;
 	LSQEntry **sort_list;
-	guint list_size;
 	GtkIconTheme *icon_theme;
 	GtkTreeView *treeview;
 	struct {



More information about the Xfce4-commits mailing list