[Xfce4-commits] r23906 - in xarchiver/branches/xarchiver-psybsd: . src
Stephan Arts
stephan at xfce.org
Mon Nov 20 13:21:24 CET 2006
Author: stephan
Date: 2006-11-20 12:21:23 +0000 (Mon, 20 Nov 2006)
New Revision: 23906
Modified:
xarchiver/branches/xarchiver-psybsd/TODO
xarchiver/branches/xarchiver-psybsd/src/main.c
xarchiver/branches/xarchiver-psybsd/src/main_window.c
xarchiver/branches/xarchiver-psybsd/src/main_window.h
xarchiver/branches/xarchiver-psybsd/src/notebook.c
xarchiver/branches/xarchiver-psybsd/src/path_bar.h
xarchiver/branches/xarchiver-psybsd/src/tool_bar.c
Log:
Changed stuff (run-time navigationbar toggling PARTIALLY COMPLETE)
Updated TODO
Modified: xarchiver/branches/xarchiver-psybsd/TODO
===================================================================
--- xarchiver/branches/xarchiver-psybsd/TODO 2006-11-20 10:31:50 UTC (rev 23905)
+++ xarchiver/branches/xarchiver-psybsd/TODO 2006-11-20 12:21:23 UTC (rev 23906)
@@ -49,4 +49,12 @@
When retrieving selected items from the treeview, forget the updir item
Add trailing '/' to folder filenames when getting it from treeview
+ Add 'View' support, with internal optional internal or external viewer.
+
+ Let Tab-labels change style on archive-status.
+
+ Add progressbar to statusbar.
+
+ Toggle navigationbar at runtime
+
... Complete TODO-file
Modified: xarchiver/branches/xarchiver-psybsd/src/main.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main.c 2006-11-20 10:31:50 UTC (rev 23905)
+++ xarchiver/branches/xarchiver-psybsd/src/main.c 2006-11-20 12:21:23 UTC (rev 23906)
@@ -25,13 +25,14 @@
#include <gettext.h>
#include "settings.h"
-#include "main.h"
#include "archive_store.h"
#include "navigation_bar.h"
#include "notebook.h"
#include "application.h"
#include "main_window.h"
+#include "main.h"
+
gboolean version = FALSE;
gboolean extract_archive = FALSE;
@@ -99,8 +100,8 @@
int main(int argc, char **argv)
{
GtkWidget *main_window = NULL;
- XAApplication *xa_app;
GtkIconTheme *xa_icon_theme;
+ XAApplication *xa_app = NULL;
GError *cli_error = NULL;
gint i = 0;
Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c 2006-11-20 10:31:50 UTC (rev 23905)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c 2006-11-20 12:21:23 UTC (rev 23906)
@@ -76,7 +76,12 @@
static void
cb_xa_main_window_notebook_file_activated(XANotebook *, gchar *, gpointer);
+static void
+cb_xa_main_window_set_tool_bar(GtkWidget *widget, gpointer userdata);
+static void
+cb_xa_main_window_set_path_bar(GtkWidget *widget, gpointer userdata);
+
GType
xa_main_window_get_type ()
{
@@ -149,14 +154,15 @@
xa_settings_save(window->settings);
- gtk_widget_unref(GTK_WIDGET(window->navigationbar));
+ if(window->navigationbar)
+ gtk_widget_destroy(GTK_WIDGET(window->navigationbar));
+
g_object_unref(G_OBJECT(window->app));
}
static void
xa_main_window_init(XAMainWindow *window)
{
- GtkWidget *main_vbox;
GtkWidget *toolbar;
GtkToolItem *tool_separator;
GtkWidget *menu_separator;
@@ -176,7 +182,7 @@
xa_settings_set_group(window->settings, "Global");
- main_vbox = gtk_vbox_new(FALSE, 0);
+ window->main_vbox = gtk_vbox_new(FALSE, 0);
show_menubar = xa_settings_read_bool_entry(window->settings, "MenuBar", TRUE);
@@ -256,10 +262,12 @@
#ifdef ENABLE_TOOLBAR
window->menubar.menu_item_tool_bar = gtk_radio_menu_item_new_with_mnemonic_from_widget(GTK_RADIO_MENU_ITEM(window->menubar.menu_item_no_bar), _("Toolbar style"));
gtk_container_add(GTK_CONTAINER(window->menubar.menu_nav_bar), window->menubar.menu_item_tool_bar);
+ g_signal_connect(G_OBJECT(window->menubar.menu_item_tool_bar), "toggled", G_CALLBACK(cb_xa_main_window_set_tool_bar), window);
#endif /* ENABLE_TOOLBAR */
#ifdef ENABLE_PATHBAR
window->menubar.menu_item_path_bar = gtk_radio_menu_item_new_with_mnemonic_from_widget(GTK_RADIO_MENU_ITEM(window->menubar.menu_item_no_bar), _("Pathbar style"));
gtk_container_add(GTK_CONTAINER(window->menubar.menu_nav_bar), window->menubar.menu_item_path_bar);
+ g_signal_connect(G_OBJECT(window->menubar.menu_item_path_bar), "toggled", G_CALLBACK(cb_xa_main_window_set_path_bar), window);
#endif /* ENABLE_PATHBAR */
@@ -334,18 +342,15 @@
#endif
if(!window->navigationbar)
- {
- window->navigationbar = xa_navigation_bar_new(NULL);
up_dir = TRUE;
- }
+ else
+ up_dir = FALSE;
show_icons = xa_settings_read_bool_entry(window->settings, "ShowIcons", TRUE);
sort_case = xa_settings_read_bool_entry(window->settings, "SortCaseSensitive", TRUE);
sort_folders = xa_settings_read_bool_entry(window->settings, "SortFoldersFirst", TRUE);
use_tabs = xa_settings_read_bool_entry(window->settings, "UseTabs", TRUE);
- gtk_widget_ref(GTK_WIDGET(window->navigationbar));
-
/* main view */
window->notebook = xa_notebook_new(window->navigationbar, use_tabs, window->accel_group);
g_signal_connect(G_OBJECT(window->notebook), "switch-page", G_CALLBACK(cb_xa_main_window_notebook_page_switched), window);
@@ -356,26 +361,26 @@
window->statusbar = gtk_statusbar_new();
if(show_menubar)
- gtk_box_pack_start(GTK_BOX(main_vbox), window->menu_bar, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(window->main_vbox), window->menu_bar, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(main_vbox), toolbar, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(window->main_vbox), toolbar, FALSE, FALSE, 0);
if(window->navigationbar)
{
- gtk_box_pack_start(GTK_BOX(main_vbox), GTK_WIDGET(window->navigationbar), FALSE, FALSE, 0);
+ gtk_widget_ref(GTK_WIDGET(window->navigationbar));
+ gtk_box_pack_start(GTK_BOX(window->main_vbox), GTK_WIDGET(window->navigationbar), FALSE, FALSE, 0);
gtk_widget_show_all(GTK_WIDGET(window->navigationbar));
}
- gtk_box_pack_start(GTK_BOX(main_vbox), window->notebook, TRUE, TRUE, 0);
- gtk_box_pack_end(GTK_BOX(main_vbox), window->statusbar, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(window->main_vbox), window->notebook, TRUE, TRUE, 0);
+ gtk_box_pack_end(GTK_BOX(window->main_vbox), window->statusbar, FALSE, FALSE, 0);
- gtk_widget_show_all(main_vbox);
+ gtk_widget_show_all(window->main_vbox);
gtk_widget_show_all(toolbar);
- gtk_widget_show_all(GTK_WIDGET(window->navigationbar));
gtk_widget_show_all(window->notebook);
gtk_widget_show_all(window->statusbar);
- gtk_container_add(GTK_CONTAINER(window), main_vbox);
+ gtk_container_add(GTK_CONTAINER(window), window->main_vbox);
}
GtkWidget *
@@ -482,7 +487,8 @@
cb_xa_main_open_archive(GtkWidget *widget, gpointer userdata)
{
GtkWidget *dialog = NULL;
- gchar *open_archive_path = NULL;
+ GSList *open_archive_paths = NULL;
+ GSList *_open_archive_paths = NULL;
gint result = 0;
XAMainWindow *window = XA_MAIN_WINDOW(userdata);
@@ -491,6 +497,7 @@
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL);
+ gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), TRUE);
result = gtk_dialog_run (GTK_DIALOG (dialog) );
if(result == GTK_RESPONSE_CANCEL || result == GTK_RESPONSE_DELETE_EVENT)
{
@@ -499,11 +506,18 @@
}
if(result == GTK_RESPONSE_OK)
{
- open_archive_path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
- if(xa_notebook_get_multi_tab(XA_NOTEBOOK(window->notebook)))
- xa_main_window_open_archive(window, open_archive_path, -1);
- else
- xa_main_window_open_archive(window, open_archive_path, 0);
+ open_archive_paths = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
+ _open_archive_paths = open_archive_paths;
+ while(_open_archive_paths)
+ {
+ if(xa_notebook_get_multi_tab(XA_NOTEBOOK(window->notebook)))
+ xa_application_open_archive(window->app, (GtkWidget *)window, _open_archive_paths->data);
+ else
+ xa_application_open_archive(window->app, NULL, _open_archive_paths->data);
+ _open_archive_paths = _open_archive_paths->next;
+ }
+ g_slist_foreach(open_archive_paths, (GFunc)g_free, NULL);
+ g_slist_free(open_archive_paths);
gtk_widget_destroy(dialog);
}
}
@@ -740,3 +754,48 @@
return 1;
}
+static void
+cb_xa_main_window_set_tool_bar(GtkWidget *widget, gpointer userdata)
+{
+ XAMainWindow *window = XA_MAIN_WINDOW(userdata);
+ XANavigationBar *tool_bar = NULL;
+
+ if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
+ {
+ tool_bar = xa_tool_bar_new(NULL);
+
+ xa_notebook_set_navigation_bar(XA_NOTEBOOK(window->notebook), tool_bar);
+
+ if(window->navigationbar)
+ gtk_widget_destroy(GTK_WIDGET(window->navigationbar));
+
+ window->navigationbar = tool_bar;
+ gtk_box_pack_start(GTK_BOX(window->main_vbox), (GtkWidget *)tool_bar, FALSE, FALSE, 0);
+ gtk_box_reorder_child(GTK_BOX(window->main_vbox), (GtkWidget *)tool_bar, 2);
+ gtk_widget_show_all((GtkWidget *)tool_bar);
+ }
+}
+
+static void
+cb_xa_main_window_set_path_bar(GtkWidget *widget, gpointer userdata)
+{
+ XAMainWindow *window = XA_MAIN_WINDOW(userdata);
+ XANavigationBar *path_bar = NULL;
+
+ if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
+ {
+ path_bar = xa_path_bar_new(NULL);
+
+ xa_notebook_set_navigation_bar(XA_NOTEBOOK(window->notebook), path_bar);
+
+ if(window->navigationbar)
+ gtk_widget_destroy(GTK_WIDGET(window->navigationbar));
+
+ window->navigationbar = path_bar;
+
+ gtk_container_set_border_width(GTK_CONTAINER(window->navigationbar), 3);
+ gtk_box_pack_start(GTK_BOX(window->main_vbox), (GtkWidget *)path_bar, FALSE, FALSE, 0);
+ gtk_box_reorder_child(GTK_BOX(window->main_vbox), (GtkWidget *)path_bar, 2);
+ gtk_widget_show_all((GtkWidget *)path_bar);
+ }
+}
Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.h 2006-11-20 10:31:50 UTC (rev 23905)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.h 2006-11-20 12:21:23 UTC (rev 23906)
@@ -55,6 +55,7 @@
GtkIconTheme *icon_theme;
XAApplication *app;
GtkWidget *menu_bar;
+ GtkWidget *main_vbox;
struct {
/* 'file' menu */
GtkWidget *menu_item_file;
Modified: xarchiver/branches/xarchiver-psybsd/src/notebook.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/notebook.c 2006-11-20 10:31:50 UTC (rev 23905)
+++ xarchiver/branches/xarchiver-psybsd/src/notebook.c 2006-11-20 12:21:23 UTC (rev 23906)
@@ -224,7 +224,16 @@
void
xa_notebook_set_navigation_bar(XANotebook *notebook, XANavigationBar *bar)
{
+ if(notebook->navigation_bar)
+ xa_navigation_bar_set_store(notebook->navigation_bar, NULL);
+
+ gint page_nr = gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook));
+ GtkWidget *scrolledwindow = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), page_nr);
+ GtkWidget *treeview = gtk_bin_get_child(GTK_BIN(scrolledwindow));
+ GtkTreeModel *archive_store = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
+
notebook->navigation_bar = bar;
+ xa_navigation_bar_set_store(notebook->navigation_bar, XA_ARCHIVE_STORE(archive_store));
}
void
Modified: xarchiver/branches/xarchiver-psybsd/src/path_bar.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/path_bar.h 2006-11-20 10:31:50 UTC (rev 23905)
+++ xarchiver/branches/xarchiver-psybsd/src/path_bar.h 2006-11-20 12:21:23 UTC (rev 23906)
@@ -64,7 +64,7 @@
};
GType xa_path_bar_get_type();
-XANavigationBar *xa_path_bar_new();
+XANavigationBar *xa_path_bar_new(XAArchiveStore *);
G_END_DECLS
#endif /* __XARCHIVER_PATH_BAR_H__*/
Modified: xarchiver/branches/xarchiver-psybsd/src/tool_bar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/tool_bar.c 2006-11-20 10:31:50 UTC (rev 23905)
+++ xarchiver/branches/xarchiver-psybsd/src/tool_bar.c 2006-11-20 12:21:23 UTC (rev 23906)
@@ -168,6 +168,7 @@
gtk_widget_set_sensitive(GTK_WIDGET(tool_bar->hbox), 0);
gtk_widget_show_all(GTK_WIDGET(tool_bar->bar));
+ gtk_widget_ref((GtkWidget *)tool_bar);
}
XANavigationBar *
More information about the Xfce4-commits
mailing list