Author: stephan
Date: 2006-09-14 10:02:11 +0000 (Thu, 14 Sep 2006)
New Revision: 23153

Removed:
   xarchiver/branches/xarchiver-psybsd/src/main_window_menu_bar.c
   xarchiver/branches/xarchiver-psybsd/src/main_window_menu_bar.h
   xarchiver/branches/xarchiver-psybsd/src/main_window_status_bar.c
   xarchiver/branches/xarchiver-psybsd/src/main_window_status_bar.h
   xarchiver/branches/xarchiver-psybsd/src/main_window_tool_bar.c
   xarchiver/branches/xarchiver-psybsd/src/main_window_tool_bar.h
Modified:
   xarchiver/branches/xarchiver-psybsd/TODO
   xarchiver/branches/xarchiver-psybsd/libxarchiver/Makefile.am
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
   xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c
   xarchiver/branches/xarchiver-psybsd/src/Makefile.am
   xarchiver/branches/xarchiver-psybsd/src/extract_dialog.c
   xarchiver/branches/xarchiver-psybsd/src/main_window.c
Log:
:o it shows .tar* archive contents.



Modified: xarchiver/branches/xarchiver-psybsd/TODO
===================================================================
--- xarchiver/branches/xarchiver-psybsd/TODO    2006-09-14 08:59:13 UTC (rev 
23152)
+++ xarchiver/branches/xarchiver-psybsd/TODO    2006-09-14 10:02:11 UTC (rev 
23153)
@@ -9,10 +9,16 @@
 ---------------------------------------------------------------
 
 +-+-+-+
-  Speedup GUI
+       
+  Fix table column stuff work correctly
++-+-+-+
 
+  Implement table-columns to gnu-tar archive;
 +-+-+-+
 
+  Speedup GUI
++-+-+-+
+
        Implement View support (for all support-objects)
                Use Path-entries for path-components. (Should reduce mem-usage 
on large archives tremendously)
 +-+-+-+

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/Makefile.am
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/Makefile.am        
2006-09-14 08:59:13 UTC (rev 23152)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/Makefile.am        
2006-09-14 10:02:11 UTC (rev 23153)
@@ -6,8 +6,6 @@
        archive.c archive.h \
        archive-support.c archive-support.h \
   archive-support-zip.c archive-support-zip.h \
-  archive-support-rar.c archive-support-rar.h \
-  archive-support-unrar.c archive-support-unrar.h \
        archive-support-gnu-tar.c archive-support-gnu-tar.h
 
 libxarchiver_a_CFLAGS = \

Modified: 
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c  
2006-09-14 08:59:13 UTC (rev 23152)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c  
2006-09-14 10:02:11 UTC (rev 23153)
@@ -345,6 +345,7 @@
                lxa_execute(command, archive, NULL, NULL, 
lxa_archive_support_gnu_tar_refresh_parse_output, NULL);
                g_free(command);
        }
+       return 0;
 }
 
 void
@@ -374,16 +375,8 @@
 lxa_archive_support_gnu_tar_refresh_parse_output(GIOChannel *ioc, GIOCondition 
cond, gpointer data)
 {
        GIOStatus status = G_IO_STATUS_NORMAL;
-       FILE *out_file = NULL;
        LXAArchive *archive = data;
        gchar *line     = NULL;
-       gchar **line_items = NULL;
-       guint read = 0;
-       GError *error = NULL;
-       gchar *command = NULL;
-       GSList *tmp_list = NULL;
-       GSList *parent_list = NULL;
-       gint i = 0, n = 0;
        LXAEntry *entry;
 
 

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c  2006-09-14 
08:59:13 UTC (rev 23152)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c  2006-09-14 
10:02:11 UTC (rev 23153)
@@ -157,7 +157,7 @@
        GSList *tmp_list;
        GSList *tmp_list_children;
        gchar **path_items;
-       LXAEntry *tmp_entry;
+       LXAEntry *tmp_entry = NULL;
        path_items = g_strsplit_set(path, "/\n", -1);
        tmp_list = g_slist_find_custom(archive->root_entries, path_items[0], 
(GCompareFunc)lxa_archive_lookup_dir);
        if(!tmp_list)
@@ -187,12 +187,15 @@
        return tmp_entry;
 }
 
+/* FIXME: ***HACK*** ***HACK*** */
 GSList *
 lxa_archive_get_children(LXAArchive *archive, gchar *path)
 {
-       gint i;
+       gint i = 0;
        GSList *tmp_list = archive->root_entries;
-       gchar **path_items = g_strsplit_set(path, "/\n", -1);
+       if(path[0] == '/')
+               i++;
+       gchar **path_items = g_strsplit_set(&path[i], "/\n", -1);
        for(i = 0; path_items[i]?strlen(path_items[i]):0; i++)
        {
                tmp_list = g_slist_find_custom(tmp_list, path_items[i], 
(GCompareFunc)lxa_archive_lookup_dir);

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c     
2006-09-14 08:59:13 UTC (rev 23152)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c     
2006-09-14 10:02:11 UTC (rev 23153)
@@ -37,8 +37,8 @@
        lxa_mime_database = thunar_vfs_mime_database_get_default();
 
        lxa_register_support(lxa_archive_support_zip_new());
+       /* TODO: Implement right commands in unrar
        lxa_register_support(lxa_archive_support_rar_new());
-       /* TODO: Implement right commands in unrar
        lxa_register_support(lxa_archive_support_unrar_new());
        */
        lxa_register_support(lxa_archive_support_gnu_tar_new());

Modified: xarchiver/branches/xarchiver-psybsd/src/Makefile.am
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/Makefile.am 2006-09-14 08:59:13 UTC 
(rev 23152)
+++ xarchiver/branches/xarchiver-psybsd/src/Makefile.am 2006-09-14 10:02:11 UTC 
(rev 23153)
@@ -3,9 +3,6 @@
 xarchiver_SOURCES = \
        main.c main.h \
        main_window.c main_window.h \
-       main_window_menu_bar.c main_window_menu_bar.h \
-       main_window_tool_bar.c main_window_tool_bar.h \
-       main_window_status_bar.c main_window_status_bar.h \
        new_dialog.c new_dialog.h \
        add_dialog.c add_dialog.h \
        extract_dialog.c extract_dialog.h

Modified: xarchiver/branches/xarchiver-psybsd/src/extract_dialog.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/extract_dialog.c    2006-09-14 
08:59:13 UTC (rev 23152)
+++ xarchiver/branches/xarchiver-psybsd/src/extract_dialog.c    2006-09-14 
10:02:11 UTC (rev 23153)
@@ -20,6 +20,7 @@
  */
 
 #include <config.h>
+#include <string.h>
 #include <glib.h>
 #include <gtk/gtk.h>
 #include <libxarchiver/libxarchiver.h>
@@ -151,7 +152,6 @@
 xa_extract_dialog_option_toggled (GtkWidget *widget, gpointer data)
 {
        GValue *val = g_new0(GValue, 1);
-       gboolean active;
 
        val = g_value_init(val, G_TYPE_BOOLEAN);
 
@@ -166,7 +166,6 @@
 xa_extract_dialog_option_child_notify (GtkWidget *widget, GParamSpec *pspec, 
gpointer data)
 {
        GValue *val = g_new0(GValue, 1);
-       gboolean active;
        if(strcmp(g_param_spec_get_name(pspec), "text"))
        {
                val = g_value_init(val, G_TYPE_STRING);

Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c       2006-09-14 
08:59:13 UTC (rev 23152)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c       2006-09-14 
10:02:11 UTC (rev 23153)
@@ -31,6 +31,9 @@
 static void
 xa_main_window_init(XAMainWindow *);
 
+void
+cb_xa_main_item_activated(GtkTreeView *treeview, GtkTreePath *treepath, 
GtkTreeViewColumn *column, gpointer userdata);
+
 GType
 xa_main_window_get_type ()
 {
@@ -72,6 +75,8 @@
        GtkWidget     *tmp_image;
        GtkAccelGroup *accel_group = gtk_accel_group_new();
 
+       window->working_dir = NULL;
+
        gtk_window_set_default_icon_from_file(DATADIR "/pixmaps/xarchiver.png", 
NULL);
        main_vbox = gtk_vbox_new(FALSE, 0);
 
@@ -182,6 +187,7 @@
 
        gtk_widget_show(window->scrollwindow);
        gtk_widget_show(window->treeview);
+       g_signal_connect(G_OBJECT(window->treeview), "row-activated", 
G_CALLBACK(cb_xa_main_item_activated), window);
 /* Statusbar */
 
        statusbar = gtk_statusbar_new();
@@ -324,12 +330,30 @@
 void
 xa_main_window_archive_status_changed(LXAArchive *archive, gpointer userdata)
 {
+       GtkCellRenderer *renderer = NULL;
+       GtkTreeViewColumn *column = NULL;
+       GtkListStore *liststore = NULL;
+       gint x = 0;
        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_get_children(archive, "/");
-               xa_main_window_set_contents(main_window, archive, items, "/");
+               liststore = gtk_list_store_newv(archive->column_number, 
archive->column_types); 
+               for(x = 0; x < archive->column_number; x++)
+               {
+                       switch(archive->column_types[x])
+                       {
+                               case(G_TYPE_STRING):
+                                       renderer = gtk_cell_renderer_text_new();
+                                       column = 
gtk_tree_view_column_new_with_attributes(archive->column_names[x], renderer, 
"text", x, NULL);
+                                       break;
+                       }
+                       gtk_tree_view_column_set_resizable(column, TRUE);
+                       gtk_tree_view_column_set_sort_column_id(column, x);
+                       
gtk_tree_view_append_column(GTK_TREE_VIEW(main_window->treeview), column);
+               }
+               gtk_tree_view_set_model(GTK_TREE_VIEW(main_window->treeview), 
GTK_TREE_MODEL(liststore));
+               GSList *items = lxa_archive_get_children(archive, "");
+               xa_main_window_set_contents(main_window, archive, items, "");
        }
 }
 
@@ -342,32 +366,44 @@
 void 
 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);
+       GtkTreeModel *liststore = 
gtk_tree_view_get_model(GTK_TREE_VIEW(main_window->treeview));
 
+       gtk_list_store_clear(GTK_LIST_STORE(liststore));
+
        main_window->working_dir = path;
 
-       for(x = 0; x < archive->column_number; x++)
-       {
-               switch(archive->column_types[x])
-               {
-                       case(G_TYPE_STRING):
-                               renderer = gtk_cell_renderer_text_new();
-                               column = 
gtk_tree_view_column_new_with_attributes(archive->column_names[x], renderer, 
"text", x, NULL);
-                               break;
-               }
-               gtk_tree_view_column_set_resizable(column, TRUE);
-               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);
+               gtk_list_store_append(GTK_LIST_STORE(liststore), &iter);
+               gtk_list_store_set_value(GTK_LIST_STORE(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));
 }
+
+void
+cb_xa_main_item_activated(GtkTreeView *treeview, GtkTreePath *treepath, 
GtkTreeViewColumn *column, gpointer userdata)
+{
+       GtkTreeIter iter;
+       GValue *value = g_new0(GValue, 1);
+       XAMainWindow *main_window = userdata;
+
+       GtkTreeModel *tree_model = gtk_tree_view_get_model(treeview);
+
+       gtk_tree_model_get_iter(tree_model, &iter, treepath);
+       gtk_tree_model_get_value(tree_model, &iter, 0, value);
+
+       gchar *path = g_strconcat(main_window->working_dir, "/", 
g_value_get_string(value), NULL);
+
+       g_debug("%s\n", path);
+
+       GSList *items = lxa_archive_get_children(lp_xa_archive, path);
+       if(items)
+               xa_main_window_set_contents(main_window, lp_xa_archive, items, 
path);
+/*     else*/
+               /* 'view' */
+
+g_free(value);
+
+}

Deleted: xarchiver/branches/xarchiver-psybsd/src/main_window_menu_bar.c

Deleted: xarchiver/branches/xarchiver-psybsd/src/main_window_menu_bar.h

Deleted: xarchiver/branches/xarchiver-psybsd/src/main_window_status_bar.c

Deleted: xarchiver/branches/xarchiver-psybsd/src/main_window_status_bar.h

Deleted: xarchiver/branches/xarchiver-psybsd/src/main_window_tool_bar.c

Deleted: xarchiver/branches/xarchiver-psybsd/src/main_window_tool_bar.h

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to