[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