[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