[Xfce4-commits] r23150 - in xarchiver/branches/xarchiver-psybsd: libxarchiver src

Stephan Arts stephan at xfce.org
Wed Sep 13 22:34:06 UTC 2006


Author: stephan
Date: 2006-09-13 22:34:05 +0000 (Wed, 13 Sep 2006)
New Revision: 23150

Modified:
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.h
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support.c
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support.h
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h
   xarchiver/branches/xarchiver-psybsd/src/main_window.c
   xarchiver/branches/xarchiver-psybsd/src/main_window.h
Log:

It now shows the root-children in treeview.



Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c	2006-09-13 21:40:25 UTC (rev 23149)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c	2006-09-13 22:34:05 UTC (rev 23150)
@@ -111,7 +111,6 @@
 	archive_support->extract = lxa_archive_support_gnu_tar_extract;
 	archive_support->remove = lxa_archive_support_gnu_tar_remove;
 	archive_support->refresh = lxa_archive_support_gnu_tar_refresh;
-	archive_support->view = lxa_archive_support_gnu_tar_view;
 }
 
 void
@@ -320,12 +319,6 @@
 	return 0;
 }
 
-GSList *
-lxa_archive_support_gnu_tar_view(LXAArchive *archive, gchar *path)
-{
-	
-}
-
 gint
 lxa_archive_support_gnu_tar_refresh(LXAArchive *archive)
 {

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.h	2006-09-13 21:40:25 UTC (rev 23149)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.h	2006-09-13 22:34:05 UTC (rev 23150)
@@ -66,7 +66,7 @@
 gint                 lxa_archive_support_gnu_tar_extract(LXAArchive *, gchar *, GSList *);
 gint                 lxa_archive_support_gnu_tar_remove(LXAArchive *, GSList *);
 gint                 lxa_archive_support_gnu_tar_refresh(LXAArchive *);
-GSList              *lxa_archive_support_gnu_tar_view(LXAArchive *, gchar *);
+
 G_END_DECLS
 
 #endif /* __LIBXARCHIVER_ARCHIVE_SUPPORT_GNU_TAR_H__ */

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support.c	2006-09-13 21:40:25 UTC (rev 23149)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support.c	2006-09-13 22:34:05 UTC (rev 23150)
@@ -233,20 +233,6 @@
 }
 
 GSList *
-lxa_archive_support_view(LXAArchiveSupport *support, LXAArchive *archive, gchar *path)
-{
-	if(support->view)
-	{
-		lxa_archive_set_status(archive, LXA_ARCHIVESTATUS_VIEW);
-		archive->support = support;
-		return support->view(archive, path);
-	}
-	else
-		g_critical("VIEW NOT IMPLEMENTED BY SUPPORT OBJECT '%s'", support->id);
-	return NULL;
-}
-
-GSList *
 lxa_archive_support_list_properties(LXAArchiveSupport *support, gchar *prefix)
 {
 	guint _nprops, i;

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support.h	2006-09-13 21:40:25 UTC (rev 23149)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support.h	2006-09-13 22:34:05 UTC (rev 23150)
@@ -61,7 +61,6 @@
 	gint        (*extract)(LXAArchive *archive, gchar *dest_path, GSList *files);
 	gint        (*remove)(LXAArchive *archive, GSList *files);
 	gint        (*refresh)(LXAArchive *archive);
-	GSList     *(*view)(LXAArchive *archive, gchar *path);
 };
 
 typedef struct _LXAArchiveSupportClass LXAArchiveSupportClass;
@@ -87,7 +86,6 @@
 gint                 lxa_archive_support_extract(LXAArchiveSupport *, LXAArchive *, gchar *, GSList *);
 gint                 lxa_archive_support_remove(LXAArchiveSupport *, LXAArchive *, GSList *);
 gint                 lxa_archive_support_refresh(LXAArchiveSupport *, LXAArchive *);
-GSList              *lxa_archive_support_view(LXAArchiveSupport *, LXAArchive *, gchar *);
 
 GSList *             lxa_archive_support_list_properties(LXAArchiveSupport *, gchar *);
 

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c	2006-09-13 21:40:25 UTC (rev 23149)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c	2006-09-13 22:34:05 UTC (rev 23150)
@@ -80,10 +80,9 @@
 			0,
 			NULL,
 			NULL,
-			g_cclosure_marshal_VOID__POINTER,
+			g_cclosure_marshal_VOID__VOID,
 			G_TYPE_NONE,
-			1,
-			G_TYPE_POINTER,
+			0,
 			NULL);
 }
 
@@ -142,7 +141,7 @@
 gint
 lxa_archive_lookup_dir(gpointer entry, gconstpointer filename)
 {
-	return strcmp(((LXAEntry *)entry)->filename, filename);
+	return strcmp(g_value_get_string(((LXAEntry *)entry)->filename), filename);
 }
 
 /* 
@@ -164,7 +163,9 @@
 	if(!tmp_list)
 	{
 		tmp_entry = g_new0(LXAEntry, 1);
-		tmp_entry->filename = g_strdup(path_items[0]);
+		tmp_entry->filename = g_new0(GValue, 1);
+		tmp_entry->filename = g_value_init(tmp_entry->filename, G_TYPE_STRING);
+		g_value_set_string(tmp_entry->filename, path_items[0]);
 		archive->root_entries = g_slist_prepend(archive->root_entries, tmp_entry);
 		tmp_list = archive->root_entries;
 	}
@@ -174,7 +175,9 @@
 		if(!tmp_list_children)
 		{
 			tmp_entry = g_new0(LXAEntry, 1);
-			tmp_entry->filename = g_strdup(path_items[i]);
+		tmp_entry->filename = g_new0(GValue, 1);
+			tmp_entry->filename = g_value_init(tmp_entry->filename, G_TYPE_STRING);
+			g_value_set_string(tmp_entry->filename, path_items[i]);
 			((LXAEntry *)tmp_list->data)->children = g_slist_prepend(((LXAEntry *)tmp_list->data)->children, tmp_entry);
 			tmp_list_children = ((LXAEntry *)tmp_list->data)->children;
 		}

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h	2006-09-13 21:40:25 UTC (rev 23149)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h	2006-09-13 22:34:05 UTC (rev 23150)
@@ -33,7 +33,7 @@
 } LXAArchiveStatus;
 
 typedef struct {
-	gchar *filename;
+	GValue *filename;
 	GSList *children;
 } LXAEntry;
 

Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-09-13 21:40:25 UTC (rev 23149)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-09-13 22:34:05 UTC (rev 23150)
@@ -36,9 +36,9 @@
 {
 	static GType xa_main_window_type = 0;
 
- 	if (!xa_main_window_type)
+	if (!xa_main_window_type)
 	{
- 		static const GTypeInfo xa_main_window_info = 
+		static const GTypeInfo xa_main_window_info = 
 		{
 			sizeof (XAMainWindowClass),
 			(GBaseInitFunc) NULL,
@@ -283,7 +283,7 @@
 	XAMainWindow *parent_window = XA_MAIN_WINDOW(userdata);
 	
 	dialog = gtk_file_chooser_dialog_new(_("Open archive"), 
-	                                     GTK_WINDOW(parent_window),
+																			 GTK_WINDOW(parent_window),
 																			 GTK_FILE_CHOOSER_ACTION_OPEN,
 																			 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
 																			 GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL);
@@ -322,13 +322,13 @@
  *
  */
 void
-xa_main_window_archive_status_changed(LXAArchive *archive, gpointer data)
+xa_main_window_archive_status_changed(LXAArchive *archive, gpointer userdata)
 {
-	XAMainWindow *main_window = data;
+	XAMainWindow *main_window = XA_MAIN_WINDOW(userdata);
 	if(archive->old_status == LXA_ARCHIVESTATUS_REFRESH)
 	{
 		LXAArchiveSupport *lpSupport = lxa_get_support_for_mime(archive->mime);
-		GSList *items = lxa_archive_support_view(lpSupport, archive, "/");
+		GSList *items = lxa_archive_get_children(archive, "/");
 		xa_main_window_set_contents(main_window, archive, items, "/");
 	}
 }
@@ -343,10 +343,13 @@
 xa_main_window_set_contents(XAMainWindow *main_window, LXAArchive *archive, GSList *items, gchar *path)
 {
 	gint x;
+	GtkTreeIter iter;
 	GtkCellRenderer *renderer;
 	GtkTreeViewColumn *column;
 	GtkListStore *liststore = gtk_list_store_newv(archive->column_number, archive->column_types);
 
+	main_window->working_dir = path;
+
 	for(x = 0; x < archive->column_number; x++)
 	{
 		switch(archive->column_types[x])
@@ -360,6 +363,11 @@
 		gtk_tree_view_column_set_sort_column_id(column, x);
 		gtk_tree_view_append_column(GTK_TREE_VIEW(main_window->treeview), column);
 	}
-
+	while(items)
+	{
+		gtk_list_store_append(liststore, &iter);
+		gtk_list_store_set_value(liststore, &iter, 0, ((LXAEntry *)items->data)->filename);
+		items = items->next;
+	}
 	gtk_tree_view_set_model(GTK_TREE_VIEW(main_window->treeview), GTK_TREE_MODEL(liststore));
 }

Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.h	2006-09-13 21:40:25 UTC (rev 23149)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.h	2006-09-13 22:34:05 UTC (rev 23150)
@@ -88,6 +88,7 @@
 		GtkToolItem *tool_item_extract;
 		GtkToolItem *tool_item_remove;
 	} toolbar;
+	gchar *working_dir;
 };
 
 typedef struct _XAMainWindowClass XAMainWindowClass;
@@ -104,7 +105,7 @@
 void cb_xa_main_open_archive(GtkWidget *widget, gpointer userdata);
 void cb_xa_main_extract_archive(GtkWidget *widget, gpointer userdata);
 
-void xa_main_window_archive_status_changed(LXAArchive *archive, gpointer data);
+void xa_main_window_archive_status_changed(LXAArchive *archive, gpointer userdata);
 void xa_main_window_set_contents(XAMainWindow *, LXAArchive *, GSList *, gchar *);
 
 G_END_DECLS



More information about the Xfce4-commits mailing list