[Xfce4-commits] r25115 - in squeeze/trunk: libsqueeze src

Stephan Arts stephan at xfce.org
Mon Mar 5 17:18:26 CET 2007


Author: stephan
Date: 2007-03-05 16:18:26 +0000 (Mon, 05 Mar 2007)
New Revision: 25115

Modified:
   squeeze/trunk/libsqueeze/archive-support-gnu-tar.c
   squeeze/trunk/libsqueeze/archive-support-zip.c
   squeeze/trunk/libsqueeze/archive-support.c
   squeeze/trunk/libsqueeze/internals.c
   squeeze/trunk/libsqueeze/internals.h
   squeeze/trunk/src/archive_store.c
   squeeze/trunk/src/archive_store.h
   squeeze/trunk/src/notebook.c
Log:
remove now uses archive-iters

Modified: squeeze/trunk/libsqueeze/archive-support-gnu-tar.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-support-gnu-tar.c	2007-03-05 16:10:57 UTC (rev 25114)
+++ squeeze/trunk/libsqueeze/archive-support-gnu-tar.c	2007-03-05 16:18:26 UTC (rev 25115)
@@ -395,7 +395,7 @@
 }
 
 static gint
-lsq_archive_support_gnu_tar_remove(LSQArchive *archive, GSList *filenames)
+lsq_archive_support_gnu_tar_remove(LSQArchive *archive, GSList *file_iters)
 {
 	if(!LSQ_IS_ARCHIVE_SUPPORT_GNU_TAR(archive->support))
 	{
@@ -412,7 +412,7 @@
 		LSQArchiveCommand *archive_command = NULL;
 		gchar *options = NULL;
 		gchar *tmp_file = NULL;
-		gchar *files = lsq_concat_filenames(filenames);
+		gchar *files = lsq_concat_iter_filenames(file_iters);
 		gchar *command_skeleton = NULL;
 		if(!g_strcasecmp(thunar_vfs_mime_info_get_name(archive->mime_info), "application/x-tarz"))
 			command_skeleton = g_strdup("uncompress -c %1$s");

Modified: squeeze/trunk/libsqueeze/archive-support-zip.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-support-zip.c	2007-03-05 16:10:57 UTC (rev 25114)
+++ squeeze/trunk/libsqueeze/archive-support-zip.c	2007-03-05 16:18:26 UTC (rev 25115)
@@ -270,7 +270,7 @@
 }
 
 static gint
-lsq_archive_support_zip_remove(LSQArchive *archive, GSList *filenames)
+lsq_archive_support_zip_remove(LSQArchive *archive, GSList *file_iters)
 {
 	LSQArchiveCommand *archive_command = NULL;
 	if(!LSQ_IS_ARCHIVE_SUPPORT_ZIP(archive->support))
@@ -288,7 +288,8 @@
 		if(!g_strcasecmp((gchar *)thunar_vfs_mime_info_get_name(archive->mime_info), "application/x-zip") || 
 		   !g_strcasecmp((gchar *)thunar_vfs_mime_info_get_name(archive->mime_info), "application/zip"))
 		{
-			gchar *files = lsq_concat_filenames(filenames);
+			/* FIXME: when directories are removed, append a '*' wildcard to the filenames */
+			gchar *files = lsq_concat_iter_filenames(file_iters);
 
 			archive_command = lsq_archive_command_new("", archive, "zip -d %1$s %2$s", FALSE, TRUE);
 			g_object_set_data(G_OBJECT(archive_command), "files", files);

Modified: squeeze/trunk/libsqueeze/archive-support.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-support.c	2007-03-05 16:10:57 UTC (rev 25114)
+++ squeeze/trunk/libsqueeze/archive-support.c	2007-03-05 16:18:26 UTC (rev 25115)
@@ -226,11 +226,11 @@
 }
 
 gint
-lsq_archive_support_remove(LSQArchiveSupport *support, LSQArchive *archive, GSList *files)
+lsq_archive_support_remove(LSQArchiveSupport *support, LSQArchive *archive, GSList *file_iters)
 {
 	if(support->remove)
 	{
-		return support->remove(archive, files);
+		return support->remove(archive, file_iters);
 	}
 	else
 		g_critical("REMOVE NOT IMPLEMENTED BY SUPPORT OBJECT '%s'", support->id);

Modified: squeeze/trunk/libsqueeze/internals.c
===================================================================
--- squeeze/trunk/libsqueeze/internals.c	2007-03-05 16:10:57 UTC (rev 25114)
+++ squeeze/trunk/libsqueeze/internals.c	2007-03-05 16:18:26 UTC (rev 25115)
@@ -22,6 +22,7 @@
 
 #include "libsqueeze-archive.h"
 #include "libsqueeze-support.h"
+#include "libsqueeze-view.h"
 #include "archive-iter.h"
 #include "archive-command.h"
 #include "archive.h"
@@ -56,6 +57,24 @@
 	return concat_str;
 }
 
+gchar *
+lsq_concat_iter_filenames(GSList *file_iters)
+{
+	GSList *_file_iters = file_iters;
+	gchar *concat_str = g_strdup(" "), *_concat_str;
+
+	while(_file_iters)
+	{
+		gchar *path = lsq_archive_iter_get_path(_file_iters->data);
+		_concat_str = concat_str;
+		concat_str = g_strconcat(_concat_str, " ", g_shell_quote(path) , NULL);
+		_file_iters = _file_iters->next;
+		g_free(_concat_str);
+		g_free(path);
+	}
+	return concat_str;
+}
+
 LSQArchive *
 lsq_opened_archive_get_archive(gchar *path)
 {

Modified: squeeze/trunk/libsqueeze/internals.h
===================================================================
--- squeeze/trunk/libsqueeze/internals.h	2007-03-05 16:10:57 UTC (rev 25114)
+++ squeeze/trunk/libsqueeze/internals.h	2007-03-05 16:18:26 UTC (rev 25115)
@@ -36,6 +36,8 @@
 
 gchar *
 lsq_concat_filenames(GSList *filenames) G_GNUC_INTERNAL;
+gchar *
+lsq_concat_iter_filenames(GSList *file_iters) G_GNUC_INTERNAL;
 
 LSQArchive *
 lsq_opened_archive_get_archive(gchar *path) G_GNUC_INTERNAL;

Modified: squeeze/trunk/src/archive_store.c
===================================================================
--- squeeze/trunk/src/archive_store.c	2007-03-05 16:10:57 UTC (rev 25114)
+++ squeeze/trunk/src/archive_store.c	2007-03-05 16:18:26 UTC (rev 25115)
@@ -1591,3 +1591,10 @@
 	g_signal_emit(store, sq_archive_store_signals[SQ_ARCHIVE_STORE_SIGNAL_PWD_CHANGED], 0, store->navigation.present->data, NULL);
 }
 
+
+LSQArchiveIter *
+sq_archive_store_get_archive_iter(SQArchiveStore *store, GtkTreeIter *iter)
+{
+	LSQArchiveIter *entry = iter->user_data;
+	return entry;
+}

Modified: squeeze/trunk/src/archive_store.h
===================================================================
--- squeeze/trunk/src/archive_store.h	2007-03-05 16:10:57 UTC (rev 25114)
+++ squeeze/trunk/src/archive_store.h	2007-03-05 16:18:26 UTC (rev 25115)
@@ -92,6 +92,8 @@
 void sq_archive_store_set_sort_case_sensitive(SQArchiveStore *, gboolean);
 void sq_archive_store_set_sort_folders_first(SQArchiveStore *, gboolean);
 
+LSQArchiveIter *sq_archive_store_get_archive_iter(SQArchiveStore *, GtkTreeIter *);
+
 gboolean
 sq_archive_store_has_history(SQArchiveStore *store);
 gboolean

Modified: squeeze/trunk/src/notebook.c
===================================================================
--- squeeze/trunk/src/notebook.c	2007-03-05 16:10:57 UTC (rev 25114)
+++ squeeze/trunk/src/notebook.c	2007-03-05 16:18:26 UTC (rev 25115)
@@ -775,22 +775,20 @@
 
 	GtkWidget *treeview = gtk_bin_get_child(GTK_BIN(scrolledwindow));
 	GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
-	//gchar *pwd = sq_archive_store_get_pwd(SQ_ARCHIVE_STORE(store));
 	GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(treeview));
 	GList *rows = gtk_tree_selection_get_selected_rows(selection, &store);
 	GList *_rows = rows;
 	while(_rows)
 	{
 		gtk_tree_model_get_iter(store, &iter, _rows->data);
-		gtk_tree_model_get_value(store, &iter, 1, &value);
+		LSQArchiveIter *entry = sq_archive_store_get_archive_iter(SQ_ARCHIVE_STORE(store), &iter);
 
-		//filenames = g_slist_prepend(filenames, g_strconcat(pwd, g_value_get_string(&value), NULL));
+		lsq_archive_iter_ref(entry);
+		filenames = g_slist_prepend(filenames, entry);
 
-		g_value_unset((GValue*)&value);
 		_rows = _rows->next;
 	}
 	g_list_free(rows);
-	//g_free(pwd);
 	
 	return filenames;
 }



More information about the Xfce4-commits mailing list