[Xfce4-commits] r23362 - in xarchiver/branches/xarchiver-psybsd: libxarchiver src
Stephan Arts
stephan at xfce.org
Wed Oct 11 22:31:40 UTC 2006
Author: stephan
Date: 2006-10-11 22:31:39 +0000 (Wed, 11 Oct 2006)
New Revision: 23362
Modified:
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
xarchiver/branches/xarchiver-psybsd/src/archive_store.c
xarchiver/branches/xarchiver-psybsd/src/main_window.c
xarchiver/branches/xarchiver-psybsd/src/navigation_bar.c
xarchiver/branches/xarchiver-psybsd/src/tool_bar.c
Log:
Applied patch from Peter de Ridder <pc.ridder at zonnet.nl> (Fixes navigation history)
Added navigationhistory size as property to navigation-bar.
Removed 'critical' glib warning from libxarchiver.
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c 2006-10-11 21:18:05 UTC (rev 23361)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c 2006-10-11 22:31:39 UTC (rev 23362)
@@ -409,7 +409,8 @@
LXAEntry *
lxa_entry_children_nth_data(LXAArchive *archive, LXAEntry *entry, guint n)
{
- g_return_val_if_fail(entry, NULL);
+ if(entry == NULL)
+ return NULL;
lxa_archive_entry_flush_buffer(archive, entry);
n++;
/* the first element of the array (*entry->children) contains the size of the array */
Modified: xarchiver/branches/xarchiver-psybsd/src/archive_store.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/archive_store.c 2006-10-11 21:18:05 UTC (rev 23361)
+++ xarchiver/branches/xarchiver-psybsd/src/archive_store.c 2006-10-11 22:31:39 UTC (rev 23362)
@@ -44,7 +44,11 @@
};
/* signals */
-static gint xa_archive_store_signals[1];
+enum {
+ XA_ARCHIVE_STORE_SIGNAL_PWD_CHANGED = 0,
+ XA_ARCHIVE_STORE_SIGNAL_NUMBER
+};
+static gint xa_archive_store_signals[XA_ARCHIVE_STORE_SIGNAL_NUMBER];
static void
xa_archive_store_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
@@ -214,7 +218,7 @@
G_PARAM_READWRITE);
g_object_class_install_property(object_class, XA_ARCHIVE_STORE_SHOW_UP_DIR, pspec);
- xa_archive_store_signals[0] = g_signal_new("xa_pwd_changed",
+ xa_archive_store_signals[XA_ARCHIVE_STORE_SIGNAL_PWD_CHANGED] = g_signal_new("xa_pwd_changed",
G_TYPE_FROM_CLASS(as_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
0,
@@ -971,7 +975,7 @@
xa_archive_store_sort(store);
xa_archive_store_refresh(store, prev_size);
- g_signal_emit(store, xa_archive_store_signals[0], 0,NULL);
+ g_signal_emit(store, xa_archive_store_signals[XA_ARCHIVE_STORE_SIGNAL_PWD_CHANGED], 0,NULL);
}
void
@@ -999,7 +1003,7 @@
xa_archive_store_sort(store);
xa_archive_store_refresh(store, prev_size);
- g_signal_emit(store, xa_archive_store_signals[0], 0,NULL);
+ g_signal_emit(store, xa_archive_store_signals[XA_ARCHIVE_STORE_SIGNAL_PWD_CHANGED], 0,NULL);
}
void
@@ -1067,7 +1071,7 @@
gtk_tree_path_free(path_);
}
- g_signal_emit(store, xa_archive_store_signals[0], 0,NULL);
+ g_signal_emit(store, xa_archive_store_signals[XA_ARCHIVE_STORE_SIGNAL_PWD_CHANGED], 0,NULL);
}
gchar *
@@ -1148,7 +1152,7 @@
{
gint result = xa_archive_store_set_pwd_silent(store, path);
- g_signal_emit(store, xa_archive_store_signals[0], 0,NULL);
+ g_signal_emit(store, xa_archive_store_signals[XA_ARCHIVE_STORE_SIGNAL_PWD_CHANGED], 0,NULL);
return result;
}
Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c 2006-10-11 21:18:05 UTC (rev 23361)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c 2006-10-11 22:31:39 UTC (rev 23362)
@@ -293,6 +293,7 @@
window->treemodel = xa_archive_store_new(NULL, TRUE, TRUE, window->icon_theme);
xa_archive_store_connect_treeview(XA_ARCHIVE_STORE(window->treemodel), GTK_TREE_VIEW(window->treeview));
gtk_tree_view_set_model(GTK_TREE_VIEW(window->treeview), GTK_TREE_MODEL(window->treemodel));
+ xa_navigation_bar_set_store(window->navigationbar, XA_ARCHIVE_STORE(window->treemodel));
}
GtkWidget *
@@ -552,8 +553,8 @@
GtkTreeModel *liststore = window->treemodel;
GList *columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(window->treeview));
+ xa_navigation_bar_clear_history(window->navigationbar);
xa_archive_store_set_contents(XA_ARCHIVE_STORE(liststore), NULL);
- xa_navigation_bar_clear_history(window->navigationbar);
/* xa_archive_tree_store_set_contents(XA_ARCHIVE_TREE_STORE(liststore), NULL); */
while(columns)
@@ -736,7 +737,6 @@
}
}
gtk_tree_view_set_search_column(GTK_TREE_VIEW(window->treeview), 1);
- xa_navigation_bar_set_store(window->navigationbar, XA_ARCHIVE_STORE(liststore));
}
void
Modified: xarchiver/branches/xarchiver-psybsd/src/navigation_bar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/navigation_bar.c 2006-10-11 21:18:05 UTC (rev 23361)
+++ xarchiver/branches/xarchiver-psybsd/src/navigation_bar.c 2006-10-11 22:31:39 UTC (rev 23362)
@@ -34,6 +34,16 @@
static void
cb_xa_navigation_bar_pwd_changed(XAArchiveStore *store, XANavigationBar *bar);
+static void
+xa_navigation_bar_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
+static void
+xa_navigation_bar_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
+
+/* properties */
+enum {
+ XA_NAVIGATION_BAR_NAV_HISTORY = 1
+};
+
GType
xa_navigation_bar_get_type ()
{
@@ -63,6 +73,20 @@
static void
xa_navigation_bar_class_init(XANavigationBarClass *navigation_bar_class)
{
+ GObjectClass *object_class = G_OBJECT_CLASS (navigation_bar_class);
+ GParamSpec *pspec = NULL;
+
+ object_class->set_property = xa_navigation_bar_set_property;
+ object_class->get_property = xa_navigation_bar_get_property;
+
+ pspec = g_param_spec_uint("navigation_history",
+ "",
+ "",
+ 0,
+ G_MAXUINT,
+ 10,
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, XA_NAVIGATION_BAR_NAV_HISTORY, pspec);
}
static void
@@ -70,6 +94,8 @@
{
navigation_bar->_cb_pwd_changed = (GCallback)cb_xa_navigation_bar_pwd_changed;
navigation_bar->max_history = 10;
+ navigation_bar->pwd = NULL;
+ navigation_bar->history = NULL;
}
void
@@ -168,7 +194,7 @@
xa_navigation_bar_history_has_next(XANavigationBar *nav_bar)
{
if(nav_bar->pwd)
- return (g_list_previous(nav_bar->pwd)?1:0);
+ return (g_list_previous(nav_bar->pwd)?TRUE:FALSE);
return FALSE;
}
@@ -177,7 +203,7 @@
xa_navigation_bar_history_has_previous(XANavigationBar *nav_bar)
{
if(nav_bar->pwd)
- return (g_list_next(nav_bar->pwd)?1:0);
+ return (g_list_next(nav_bar->pwd)?TRUE:FALSE);
return FALSE;
}
@@ -190,3 +216,25 @@
nav_bar->history = NULL;
nav_bar->pwd = NULL;
}
+
+static void
+xa_navigation_bar_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+ switch(prop_id)
+ {
+ case XA_NAVIGATION_BAR_NAV_HISTORY:
+ XA_NAVIGATION_BAR(object)->max_history = g_value_get_uint(value);
+ break;
+ }
+}
+
+static void
+xa_navigation_bar_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ switch(prop_id)
+ {
+ case XA_NAVIGATION_BAR_NAV_HISTORY:
+ g_value_set_uint(value, XA_NAVIGATION_BAR(object)->max_history);
+ break;
+ }
+}
Modified: xarchiver/branches/xarchiver-psybsd/src/tool_bar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/tool_bar.c 2006-10-11 21:18:05 UTC (rev 23361)
+++ xarchiver/branches/xarchiver-psybsd/src/tool_bar.c 2006-10-11 22:31:39 UTC (rev 23362)
@@ -212,6 +212,6 @@
static void
cb_xa_tool_bar_path_field_activated(GtkWidget *entry, XAToolBar *tool_bar)
{
- const gchar *path = gtk_entry_get_text(GTK_ENTRY(entry));
- xa_archive_store_set_pwd(XA_NAVIGATION_BAR(tool_bar)->store, path);
+ gchar *path = gtk_entry_get_text(GTK_ENTRY(entry));
+ xa_archive_store_set_pwd(XA_ARCHIVE_STORE(XA_NAVIGATION_BAR(tool_bar)->store), path);
}
More information about the Xfce4-commits
mailing list