[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