Author: stephan
Date: 2006-09-13 13:58:14 +0000 (Wed, 13 Sep 2006)
New Revision: 23141

Modified:
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.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:
Added treeview (why it doesn't work, beets me)



Modified: 
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c  
2006-09-13 13:44:55 UTC (rev 23140)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c  
2006-09-13 13:58:14 UTC (rev 23141)
@@ -341,6 +341,11 @@
        }
        else
        {
+               archive->column_number = 1;
+               archive->column_types = g_new0(GType, 1);
+               archive->column_types[0] = G_TYPE_STRING;
+               archive->column_names = g_new0(gchar *, 1);
+               archive->column_names[0] = g_strdup("filename");
                //empty archive-tree
                /* use tvf once implementation of path recognition is stable */
                gchar *command = 
g_strconcat(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->app_name, " tf " , 
archive->path, NULL);
@@ -354,7 +359,6 @@
 {
        LXAArchive *archive = data;
        archive->child_pid = 0;
-
 }
 
 void
@@ -389,6 +393,7 @@
        gint i = 0, n = 0;
        LXAEntry *entry;
 
+
        if(cond & (G_IO_PRI | G_IO_IN))
        {
                while(TRUE)

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h  2006-09-13 
13:44:55 UTC (rev 23140)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h  2006-09-13 
13:58:14 UTC (rev 23141)
@@ -73,6 +73,9 @@
        gchar              *tmp_file;
        gchar              *files;
        gboolean            has_passwd;
+       gint                column_number;
+       GType              *column_types;
+       gchar             **column_names;
 };
 
 typedef struct _LXAArchiveClass LXAArchiveClass;

Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c       2006-09-13 
13:44:55 UTC (rev 23140)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c       2006-09-13 
13:58:14 UTC (rev 23141)
@@ -173,14 +173,28 @@
        gtk_container_add(GTK_CONTAINER(toolbar), 
GTK_WIDGET(window->toolbar.tool_item_remove));
        gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(tool_separator));
 
-       gtk_box_pack_start(GTK_BOX(main_vbox), menubar, 0, FALSE, FALSE);
-       gtk_box_pack_start(GTK_BOX(main_vbox), toolbar, 0, FALSE, FALSE);
-       //gtk_box_pack_end(GTK_BOX(main_vbox), statusbar, 0, FALSE, FALSE);
+/* main view */
+       window->scrollwindow = gtk_scrolled_window_new(NULL, NULL);
 
+       window->treeview = gtk_tree_view_new();
+
+       gtk_container_add(GTK_CONTAINER(window->scrollwindow), 
window->treeview);
+
+       gtk_widget_show(window->scrollwindow);
+       gtk_widget_show(window->treeview);
+/* Statusbar */
+
+       statusbar = gtk_statusbar_new();
+
+       gtk_box_pack_start(GTK_BOX(main_vbox), menubar, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX(main_vbox), toolbar, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX(main_vbox), window->scrollwindow, TRUE, 
TRUE, 0);
+       gtk_box_pack_end(GTK_BOX(main_vbox), statusbar, FALSE, FALSE, 0);
+
        gtk_widget_show(main_vbox);
        gtk_widget_show_all(menubar);
        gtk_widget_show_all(toolbar);
-       //gtk_widget_show_all(statusbar);
+       gtk_widget_show_all(statusbar);
 
        gtk_container_add(GTK_CONTAINER(window), main_vbox);
 }
@@ -315,7 +329,7 @@
        {
                LXAArchiveSupport *lpSupport = 
lxa_get_support_for_mime(archive->mime);
                GSList *items = lxa_archive_support_view(lpSupport, archive, 
"/");
-               xa_main_window_set_contents(main_window, items, "/");
+               xa_main_window_set_contents(main_window, archive, items, "/");
        }
 }
 
@@ -326,7 +340,26 @@
 }
 
 void 
-xa_main_window_set_contents(XAMainWindow *main_window, GSList *items, gchar 
*path)
+xa_main_window_set_contents(XAMainWindow *main_window, LXAArchive *archive, 
GSList *items, gchar *path)
 {
+       gint x;
+       GtkCellRenderer *renderer;
+       GtkTreeViewColumn *column;
+       GtkListStore *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));
 }

Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.h       2006-09-13 
13:44:55 UTC (rev 23140)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.h       2006-09-13 
13:58:14 UTC (rev 23141)
@@ -51,6 +51,8 @@
 struct _XAMainWindow
 {
        GtkWindow parent;
+       GtkWidget *treeview;
+       GtkWidget *scrollwindow;
        struct {
                GtkWidget *menu_item_archive;
                GtkWidget *menu_archive;
@@ -103,7 +105,7 @@
 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_set_contents(XAMainWindow *, GSList *, gchar *);
+void xa_main_window_set_contents(XAMainWindow *, LXAArchive *, GSList *, gchar 
*);
 
 G_END_DECLS
 #endif /* __XARCHIVER_MAIN_WINDOW_H__ */

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

Reply via email to