[Xfce4-commits] r23344 - in xarchiver/branches/xarchiver-psybsd: libxarchiver src

Stephan Arts stephan at xfce.org
Tue Oct 10 21:46:22 UTC 2006


Author: stephan
Date: 2006-10-10 21:46:21 +0000 (Tue, 10 Oct 2006)
New Revision: 23344

Modified:
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
   xarchiver/branches/xarchiver-psybsd/src/main_window.c
   xarchiver/branches/xarchiver-psybsd/src/navigation_bar.c
   xarchiver/branches/xarchiver-psybsd/src/navigation_bar.h
   xarchiver/branches/xarchiver-psybsd/src/tool_bar.c
   xarchiver/branches/xarchiver-psybsd/src/tool_bar.h
Log:
Implemented toolbar path entry
removed obsolete g_debug from libxarchiver



Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c	2006-10-10 21:43:11 UTC (rev 23343)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c	2006-10-10 21:46:21 UTC (rev 23344)
@@ -116,7 +116,6 @@
 	LXAArchive *archive = LXA_ARCHIVE(object);
 	if(archive->path)
 		g_free(archive->path);
-	g_print("%u\n", sizeof(LXAEntry));
 	lxa_archive_free_entry(archive, &archive->root_entry);
 	switch(archive->status)
 	{

Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-10-10 21:43:11 UTC (rev 23343)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-10-10 21:46:21 UTC (rev 23344)
@@ -257,6 +257,7 @@
 
 /* main view */
 	window->scrollwindow = gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(window->scrollwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 
 	window->treeview = gtk_tree_view_new();
 
@@ -463,6 +464,7 @@
 		open_archive_path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
 		if(window->lp_xa_archive)
 		{
+			xa_navigation_bar_clear_history(window->navigationbar);
 			xa_archive_store_set_contents(XA_ARCHIVE_STORE(window->treemodel), NULL);
 			g_object_unref(window->lp_xa_archive);
 			window->lp_xa_archive = NULL;
@@ -551,6 +553,7 @@
 	GList *columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(window->treeview));
 
 	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)

Modified: xarchiver/branches/xarchiver-psybsd/src/navigation_bar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/navigation_bar.c	2006-10-10 21:43:11 UTC (rev 23343)
+++ xarchiver/branches/xarchiver-psybsd/src/navigation_bar.c	2006-10-10 21:46:21 UTC (rev 23344)
@@ -167,12 +167,26 @@
 gboolean
 xa_navigation_bar_history_has_next(XANavigationBar *nav_bar)
 {
-	return (g_list_previous(nav_bar->pwd)?1:0);
+	if(nav_bar->pwd)
+		return (g_list_previous(nav_bar->pwd)?1:0);
+	return FALSE;
 }
 
 /* idem */
 gboolean
 xa_navigation_bar_history_has_previous(XANavigationBar *nav_bar)
 {
-	return (g_list_next(nav_bar->pwd)?1:0);
+	if(nav_bar->pwd)
+		return (g_list_next(nav_bar->pwd)?1:0);
+	return FALSE;
 }
+
+void
+xa_navigation_bar_clear_history(XANavigationBar *nav_bar)
+{
+	nav_bar->pwd = g_list_first(nav_bar->history);
+	g_list_foreach(nav_bar->pwd, (GFunc)g_free, NULL);
+	g_list_free(nav_bar->pwd);
+	nav_bar->history = NULL;
+	nav_bar->pwd = NULL;
+}

Modified: xarchiver/branches/xarchiver-psybsd/src/navigation_bar.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/navigation_bar.h	2006-10-10 21:43:11 UTC (rev 23343)
+++ xarchiver/branches/xarchiver-psybsd/src/navigation_bar.h	2006-10-10 21:46:21 UTC (rev 23344)
@@ -68,6 +68,7 @@
 gboolean   xa_navigation_bar_history_forward(XANavigationBar *nav_bar);
 gboolean   xa_navigation_bar_history_has_next(XANavigationBar *nav_bar);
 gboolean   xa_navigation_bar_history_has_previous(XANavigationBar *nav_bar);
+void       xa_navigation_bar_clear_history(XANavigationBar *nav_bar);
 
 G_END_DECLS
 #endif /* __XARCHIVER_NAVIGATION_BAR_H__*/

Modified: xarchiver/branches/xarchiver-psybsd/src/tool_bar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/tool_bar.c	2006-10-10 21:43:11 UTC (rev 23343)
+++ xarchiver/branches/xarchiver-psybsd/src/tool_bar.c	2006-10-10 21:46:21 UTC (rev 23344)
@@ -41,8 +41,13 @@
 cb_xa_tool_bar_history_forward(GtkWidget *forward_button, XAToolBar *nav_bar);
 
 static void
-cb_xa_tool_bar_up(GtkWidget *forward_button, XANavigationBar *nav_bar);
+cb_xa_tool_bar_up(GtkWidget *, XAToolBar *tool_bar);
+static void
+cb_xa_tool_bar_home(GtkWidget *, XAToolBar *tool_bar);
 
+static void
+cb_xa_tool_bar_path_field_activated(GtkWidget *entry, XAToolBar *tool_bar);
+
 GType
 xa_tool_bar_get_type ()
 {
@@ -83,22 +88,23 @@
 
 	tool_bar->back_button = gtk_tool_button_new_from_stock("gtk-go-back");
 	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), tool_bar->back_button, 0);
-	g_signal_connect(G_OBJECT(tool_bar->back_button), "clicked", (GCallback)cb_xa_tool_bar_history_back, XA_NAVIGATION_BAR(tool_bar));
+	g_signal_connect(G_OBJECT(tool_bar->back_button), "clicked", (GCallback)cb_xa_tool_bar_history_back, tool_bar);
 	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->back_button), 0);
 
 	tool_bar->forward_button = gtk_tool_button_new_from_stock("gtk-go-forward");
 	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), tool_bar->forward_button, 1);
-	g_signal_connect(G_OBJECT(tool_bar->forward_button), "clicked", (GCallback)cb_xa_tool_bar_history_forward, XA_NAVIGATION_BAR(tool_bar));
+	g_signal_connect(G_OBJECT(tool_bar->forward_button), "clicked", (GCallback)cb_xa_tool_bar_history_forward, tool_bar);
 	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->forward_button), 0);
 
 	tool_bar->up_button = gtk_tool_button_new_from_stock("gtk-go-up");
 	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), tool_bar->up_button, 2);
-	g_signal_connect(G_OBJECT(tool_bar->up_button), "clicked", (GCallback)cb_xa_tool_bar_up, XA_NAVIGATION_BAR(tool_bar));
+	g_signal_connect(G_OBJECT(tool_bar->up_button), "clicked", (GCallback)cb_xa_tool_bar_up, tool_bar);
 	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->up_button), 0);
 
-	button = gtk_tool_button_new_from_stock("gtk-home");
-	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), button, 3);
-	gtk_widget_set_sensitive(GTK_WIDGET(button), 0);
+	tool_bar->home_button = gtk_tool_button_new_from_stock("gtk-home");
+	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), tool_bar->home_button, 3);
+	g_signal_connect(G_OBJECT(tool_bar->home_button), "clicked", (GCallback)cb_xa_tool_bar_home, tool_bar);
+	gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->home_button), 0);
 
 	button = gtk_separator_tool_item_new();
 	gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), button, 4);
@@ -107,6 +113,7 @@
 	tool_bar->path_field = gtk_entry_new();
 
 	gtk_container_add(GTK_CONTAINER(button), tool_bar->path_field);
+	g_signal_connect(G_OBJECT(tool_bar->path_field), "activate", (GCallback)cb_xa_tool_bar_path_field_activated, tool_bar);
 	gtk_tool_item_set_visible_horizontal(button, TRUE);
 	gtk_tool_item_set_homogeneous(button, TRUE);
 
@@ -135,9 +142,15 @@
 	gtk_entry_set_text(GTK_ENTRY(tool_bar->path_field), path);
 
 	if(strlen(path) < 1 || (strlen(path) == 1 && path[0] == '/'))
+	{
 		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->up_button), 0);
+		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->home_button), 0);
+	}
 	else
+	{
 		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->up_button), 1);
+		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->home_button), 1);
+	}
 	if(xa_navigation_bar_history_get_length(XA_NAVIGATION_BAR(tool_bar)) <= 1)
 	{
 		gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->back_button), 0);
@@ -163,14 +176,12 @@
 	gchar *path= xa_archive_store_get_pwd(store);
 	xa_navigation_bar_history_push(XA_NAVIGATION_BAR(tool_bar), path);
 	xa_tool_bar_refresh(tool_bar, path);
-	g_debug("Pushing path '%s'\n", path);
 	g_free(path);
 }
 
 static void
 cb_xa_tool_bar_history_back(GtkWidget *back_button, XAToolBar *tool_bar)
 {
-	g_debug("back");
 	xa_navigation_bar_history_back(XA_NAVIGATION_BAR(tool_bar));
 	gchar *path= xa_archive_store_get_pwd(XA_NAVIGATION_BAR(tool_bar)->store);
 	xa_tool_bar_refresh(tool_bar, path);
@@ -180,7 +191,6 @@
 static void
 cb_xa_tool_bar_history_forward(GtkWidget *forward_button, XAToolBar *tool_bar)
 {
-	g_debug("forward");
 	xa_navigation_bar_history_forward(XA_NAVIGATION_BAR(tool_bar));
 	gchar *path= xa_archive_store_get_pwd(XA_NAVIGATION_BAR(tool_bar)->store);
 	xa_tool_bar_refresh(tool_bar, path);
@@ -188,7 +198,20 @@
 }
 
 static void
-cb_xa_tool_bar_up(GtkWidget *forward_button, XANavigationBar *nav_bar)
+cb_xa_tool_bar_up(GtkWidget *forward_button, XAToolBar *tool_bar)
 {
-	xa_archive_store_go_up(nav_bar->store);
+	xa_archive_store_go_up(XA_NAVIGATION_BAR(tool_bar)->store);
 }
+
+static void
+cb_xa_tool_bar_home(GtkWidget *forward_button, XAToolBar *tool_bar)
+{
+	xa_archive_store_set_pwd(XA_NAVIGATION_BAR(tool_bar)->store, "/");
+}
+
+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);
+}

Modified: xarchiver/branches/xarchiver-psybsd/src/tool_bar.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/tool_bar.h	2006-10-10 21:43:11 UTC (rev 23343)
+++ xarchiver/branches/xarchiver-psybsd/src/tool_bar.h	2006-10-10 21:46:21 UTC (rev 23344)
@@ -48,6 +48,7 @@
 	GtkToolItem *back_button;
 	GtkToolItem *forward_button;
 	GtkToolItem *up_button;
+	GtkToolItem *home_button;
 	GtkWidget *path_field;
 };
 



More information about the Xfce4-commits mailing list