[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