[Xfce4-commits] r23530 - xarchiver/branches/xarchiver-psybsd/src

Stephan Arts stephan at xfce.org
Fri Oct 27 02:08:29 CEST 2006


Author: stephan
Date: 2006-10-27 00:08:28 +0000 (Fri, 27 Oct 2006)
New Revision: 23530

Modified:
   xarchiver/branches/xarchiver-psybsd/src/archive_store.c
   xarchiver/branches/xarchiver-psybsd/src/archive_store.h
   xarchiver/branches/xarchiver-psybsd/src/main_window.c
   xarchiver/branches/xarchiver-psybsd/src/main_window.h
Log:
Added initial code to toggle icons at runtime. (uses 'add' tool-button for now, button didn't do anything usefull anyway :p)



Modified: xarchiver/branches/xarchiver-psybsd/src/archive_store.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/archive_store.c	2006-10-26 22:55:36 UTC (rev 23529)
+++ xarchiver/branches/xarchiver-psybsd/src/archive_store.c	2006-10-27 00:08:28 UTC (rev 23530)
@@ -351,7 +351,10 @@
 	if(!archive)
 		return 0;
 	
-	return lxa_archive_n_property(archive) + 1;
+	if(store->props._show_icons)
+		return lxa_archive_n_property(archive) + 1;
+	else
+		return lxa_archive_n_property(archive);
 }
 
 static GType
@@ -365,10 +368,13 @@
 	if(!archive)
 		return G_TYPE_INVALID;
 
-	index--;
+	if(store->props._show_icons)
+	{
+		index--;
 
-	if(index < 0)
-		return G_TYPE_STRING;
+		if(index < 0)
+			return G_TYPE_STRING;
+	}
 
 	return lxa_archive_get_property_type(archive, index);
 }
@@ -459,7 +465,8 @@
 
 	g_return_if_fail(archive);
 
-	column--;
+	if(store->props._show_icons)
+		column--;
 
 	if(entry)
 	{
@@ -660,6 +667,7 @@
 	if(store->sort_column == sort_col_id && store->sort_order == order)
 		return;
 
+	
 	if(sort_col_id == 0)
 		return;
 
@@ -846,7 +854,7 @@
 
 	tree_model = g_object_new(XA_TYPE_ARCHIVE_STORE, NULL);
 
-	tree_model->props._show_icons = show_icons?1:0;
+	//tree_model->props._show_icons = show_icons?1:0;
 	tree_model->props._show_up_dir = show_up_dir?1:0;
 	tree_model->icon_theme = icon_theme;
 
@@ -1247,3 +1255,16 @@
 		store->icon_theme = icon_theme;
 }
 
+gboolean
+xa_archive_store_get_show_icons(XAArchiveStore *store)
+{
+	return store->props._show_icons;
+}
+
+void
+xa_archive_store_set_show_icons(XAArchiveStore *store, gboolean show)
+{
+	gint prev_size = lxa_archive_iter_n_children(store->archive, (LXAEntry*)store->current_entry->data);
+	store->props._show_icons = show?1:0;
+	xa_archive_store_refresh(store, prev_size);
+}

Modified: xarchiver/branches/xarchiver-psybsd/src/archive_store.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/archive_store.h	2006-10-26 22:55:36 UTC (rev 23529)
+++ xarchiver/branches/xarchiver-psybsd/src/archive_store.h	2006-10-27 00:08:28 UTC (rev 23530)
@@ -86,7 +86,11 @@
 xa_archive_store_set_pwd(XAArchiveStore *store, const gchar *path);
 gboolean
 xa_archive_store_set_pwd_silent(XAArchiveStore *store, const gchar *path);
+gboolean
+xa_archive_store_get_show_icons(XAArchiveStore *store);
 void
+xa_archive_store_set_show_icons(XAArchiveStore *store, gboolean show);
+void
 xa_archive_store_set_icon_theme(XAArchiveStore *store, GtkIconTheme *icon_theme);
 
 #endif /* __XARCHIVER_ARCHIVE_STORE_H__ */

Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-10-26 22:55:36 UTC (rev 23529)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-10-27 00:08:28 UTC (rev 23530)
@@ -48,10 +48,6 @@
 
 #include "main.h"
 
-enum {
-	XA_MAIN_WINDOW_SHOW_ICONS = 1
-};
-
 static void
 xa_main_window_init(XAMainWindow *);
 static void
@@ -109,18 +105,11 @@
 xa_main_window_class_init(XAMainWindowClass *window_class)
 {
 	GObjectClass *object_class = G_OBJECT_CLASS (window_class);
-	GParamSpec *pspec = NULL;
 
 	object_class->set_property = xa_main_window_set_property;
 	object_class->get_property = xa_main_window_get_property;
 	object_class->finalize     = xa_main_window_finalize;
 
-	pspec = g_param_spec_boolean("show-icons",
-		_("Show icons"),
-		_("Show icons"),
-		FALSE,
-		G_PARAM_READWRITE);
-	g_object_class_install_property(object_class, XA_MAIN_WINDOW_SHOW_ICONS, pspec);
 }
 
 static void
@@ -374,7 +363,6 @@
 
 	window = g_object_new(xa_main_window_get_type(),
 			"title", "Xarchiver " PACKAGE_VERSION,
-			"show-icons", TRUE,
 			NULL);
 
 	XA_MAIN_WINDOW(window)->icon_theme = icon_theme;
@@ -391,23 +379,11 @@
 static void
 xa_main_window_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
 {
-	switch(prop_id)
-	{
-		case XA_MAIN_WINDOW_SHOW_ICONS:
-			g_value_set_boolean(value, XA_MAIN_WINDOW(object)->props._show_icons);
-			break;
-	}
 }
 
 static void
 xa_main_window_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
 {
-	switch(prop_id)
-	{
-		case XA_MAIN_WINDOW_SHOW_ICONS:
-			XA_MAIN_WINDOW(object)->props._show_icons = g_value_get_boolean(value);
-			break;
-	}
 }
 
 GtkWidget *
@@ -554,6 +530,17 @@
 void
 cb_xa_main_add_to_archive(GtkWidget *widget, gpointer userdata)
 {
+	XAMainWindow *window = XA_MAIN_WINDOW(userdata);
+	if(xa_archive_store_get_show_icons(XA_ARCHIVE_STORE(window->treemodel)))
+	{
+		xa_archive_store_set_show_icons(XA_ARCHIVE_STORE(window->treemodel), FALSE);
+		xa_main_window_reset_columns(window);
+	}
+	else
+	{
+		xa_archive_store_set_show_icons(XA_ARCHIVE_STORE(window->treemodel), TRUE);
+		xa_main_window_reset_columns(window);
+	}
 }
 
 void
@@ -586,7 +573,7 @@
 			while(_rows)
 			{
 				gtk_tree_model_get_iter(GTK_TREE_MODEL(treemodel), &iter, _rows->data);
-				if(window->props._show_icons)
+				if(xa_archive_store_get_show_icons(XA_ARCHIVE_STORE(treemodel)))
 					gtk_tree_model_get_value(GTK_TREE_MODEL(treemodel), &iter, 1, value);
 				else
 					gtk_tree_model_get_value(GTK_TREE_MODEL(treemodel), &iter, 0, value);
@@ -770,21 +757,36 @@
 	}
 	g_list_free(columns);
 
-	column = gtk_tree_view_column_new();
-	renderer = gtk_cell_renderer_pixbuf_new();
-	g_object_set_property(G_OBJECT(renderer), "stock-size", value);
-	gtk_tree_view_column_pack_start(column, renderer, FALSE);
-	gtk_tree_view_column_set_attributes(column, renderer, "icon-name", 0, NULL);
+	if(xa_archive_store_get_show_icons(XA_ARCHIVE_STORE(window->treemodel)))
+	{
+		column = gtk_tree_view_column_new();
+		renderer = gtk_cell_renderer_pixbuf_new();
+		g_object_set_property(G_OBJECT(renderer), "stock-size", value);
+		gtk_tree_view_column_pack_start(column, renderer, FALSE);
+		gtk_tree_view_column_set_attributes(column, renderer, "icon-name", 0, NULL);
 
-	renderer = gtk_cell_renderer_text_new();
-	gtk_tree_view_column_pack_start(column, renderer, TRUE);
-	gtk_tree_view_column_set_attributes(column, renderer, "text", LXA_ARCHIVE_PROP_FILENAME + 1, NULL);
+		renderer = gtk_cell_renderer_text_new();
+		gtk_tree_view_column_pack_start(column, renderer, TRUE);
+		gtk_tree_view_column_set_attributes(column, renderer, "text", LXA_ARCHIVE_PROP_FILENAME + 1, NULL);
 
-	gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-	gtk_tree_view_column_set_sort_column_id(column, LXA_ARCHIVE_PROP_FILENAME + 1);
-	gtk_tree_view_column_set_title(column, lxa_archive_get_property_name(archive, LXA_ARCHIVE_PROP_FILENAME));
-	gtk_tree_view_append_column(GTK_TREE_VIEW(window->treeview), column);
+		gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+		gtk_tree_view_column_set_sort_column_id(column, LXA_ARCHIVE_PROP_FILENAME + 1);
+		gtk_tree_view_column_set_title(column, lxa_archive_get_property_name(archive, LXA_ARCHIVE_PROP_FILENAME));
+		gtk_tree_view_append_column(GTK_TREE_VIEW(window->treeview), column);
+	}
+	else
+	{
+		column = gtk_tree_view_column_new();
+		renderer = gtk_cell_renderer_text_new();
+		gtk_tree_view_column_pack_start(column, renderer, TRUE);
+		gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+		gtk_tree_view_column_set_attributes(column, renderer, "text", LXA_ARCHIVE_PROP_FILENAME, NULL);
+		gtk_tree_view_column_set_sort_column_id(column, LXA_ARCHIVE_PROP_FILENAME);
+		gtk_tree_view_column_set_title(column, lxa_archive_get_property_name(archive, LXA_ARCHIVE_PROP_FILENAME));
+		gtk_tree_view_append_column(GTK_TREE_VIEW(window->treeview), column);
+	}
 
+
 	if(!show_only_filenames)
 	{
 		for(x = LXA_ARCHIVE_PROP_USER; x < lxa_archive_n_property(archive); ++x)
@@ -794,11 +796,17 @@
 				case(G_TYPE_STRING):
 				case(G_TYPE_UINT64):
 					renderer = gtk_cell_renderer_text_new();
-					column = gtk_tree_view_column_new_with_attributes(lxa_archive_get_property_name(archive, x), renderer, "text", x+1, NULL);
+					if(xa_archive_store_get_show_icons(XA_ARCHIVE_STORE(window->treemodel)))
+						column = gtk_tree_view_column_new_with_attributes(lxa_archive_get_property_name(archive, x), renderer, "text", x+1, NULL);
+					else
+						column = gtk_tree_view_column_new_with_attributes(lxa_archive_get_property_name(archive, x), renderer, "text", x, NULL);
 					break;
 			}
 			gtk_tree_view_column_set_resizable(column, TRUE);
-			gtk_tree_view_column_set_sort_column_id(column, x+1);
+			if(xa_archive_store_get_show_icons(XA_ARCHIVE_STORE(window->treemodel)))
+				gtk_tree_view_column_set_sort_column_id(column, x+1);
+			else
+				gtk_tree_view_column_set_sort_column_id(column, x);
 			gtk_tree_view_append_column(GTK_TREE_VIEW(window->treeview), column);
 		}
 	}

Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.h	2006-10-26 22:55:36 UTC (rev 23529)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.h	2006-10-27 00:08:28 UTC (rev 23530)
@@ -100,9 +100,10 @@
 	} toolbar;
 	GtkIconTheme *icon_theme;
 	LXAArchive *lp_xa_archive;
-	struct {
-		gboolean   _show_icons;
-	} props;
+	LXAArchiveSupport *lp_xa_support;
+	//struct {
+	//	gboolean   _show_icons;
+	//} props;
 };
 
 typedef struct _XAMainWindowClass XAMainWindowClass;



More information about the Xfce4-commits mailing list