[Xfce4-commits] r23759 - xarchiver/branches/xarchiver-psybsd/src

Stephan Arts stephan at xfce.org
Mon Nov 6 14:36:29 CET 2006


Author: stephan
Date: 2006-11-06 13:36:28 +0000 (Mon, 06 Nov 2006)
New Revision: 23759

Modified:
   xarchiver/branches/xarchiver-psybsd/src/main_window.c
   xarchiver/branches/xarchiver-psybsd/src/notebook.c
   xarchiver/branches/xarchiver-psybsd/src/notebook.h
Log:
Made tabs optional (can be configured in xarchiver/xarchiverrc)


Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-11-06 13:09:24 UTC (rev 23758)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-11-06 13:36:28 UTC (rev 23759)
@@ -154,6 +154,7 @@
 	gboolean show_icons = TRUE;
 	gboolean sort_case = TRUE;
 	gboolean sort_folders = TRUE;
+	gboolean use_tabs = TRUE;
 
 	window->settings = xa_settings_new();
 
@@ -232,11 +233,12 @@
 	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);
+	window->notebook = xa_notebook_new(window->navigationbar, use_tabs);
 	g_signal_connect(G_OBJECT(window->notebook), "switch-page", G_CALLBACK(cb_xa_main_window_notebook_page_switched), window);
 	g_signal_connect(G_OBJECT(window->notebook), "archive-removed", G_CALLBACK(cb_xa_main_window_notebook_page_removed), window);
 /* Statusbar */
@@ -492,7 +494,7 @@
 		if(replace < 0)
 			xa_notebook_add_archive(XA_NOTEBOOK(window->notebook), archive, support);
 		else
-			xa_notebook_add_archive(XA_NOTEBOOK(window->notebook), archive, support);
+			xa_notebook_page_set_archive(XA_NOTEBOOK(window->notebook), archive, support, replace);
 		return 0;
 	}
 	return 1;

Modified: xarchiver/branches/xarchiver-psybsd/src/notebook.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/notebook.c	2006-11-06 13:09:24 UTC (rev 23758)
+++ xarchiver/branches/xarchiver-psybsd/src/notebook.c	2006-11-06 13:36:28 UTC (rev 23759)
@@ -44,7 +44,7 @@
 xa_notebook_treeview_reset_columns(LXAArchive *archive, GtkTreeView *treeview);
 
 void
-cb_notebook_close_archive(GtkButton *button, GtkTreeView *treeview);
+cb_notebook_close_archive(GtkButton *button, GtkWidget *child);
 
 void
 cb_notebook_archive_status_changed(LXAArchive *archive, XANotebook *notebook);
@@ -135,7 +135,7 @@
 }
 
 GtkWidget *
-xa_notebook_new(XANavigationBar *bar)
+xa_notebook_new(XANavigationBar *bar, gboolean use_tabs)
 {
 	XANotebook *notebook;
 
@@ -150,7 +150,7 @@
 	}
 
 	notebook->props._show_icons = TRUE;
-	notebook->multi_tab = TRUE;
+	notebook->multi_tab = use_tabs;
 
 	return (GtkWidget *)notebook;
 }
@@ -223,7 +223,7 @@
 	g_signal_connect(G_OBJECT(archive), "lxa_status_changed", G_CALLBACK(cb_notebook_archive_status_changed), notebook);
 	g_signal_connect(G_OBJECT(archive), "lxa_refreshed", G_CALLBACK(cb_notebook_archive_refreshed), tree_view);
 
-	g_signal_connect(G_OBJECT(close_button), "clicked", G_CALLBACK(cb_notebook_close_archive), tree_view);
+	g_signal_connect(G_OBJECT(close_button), "clicked", G_CALLBACK(cb_notebook_close_archive), scroll_window);
 
 
 	xa_archive_store_set_support(XA_ARCHIVE_STORE(tree_model), support);
@@ -247,11 +247,11 @@
 }
 
 void
-cb_notebook_close_archive(GtkButton *button, GtkTreeView *treeview)
+cb_notebook_close_archive(GtkButton *button, GtkWidget *child)
 {
-	GtkNotebook *notebook = GTK_NOTEBOOK(gtk_widget_get_parent(GTK_WIDGET(treeview)));
+	GtkNotebook *notebook = GTK_NOTEBOOK(gtk_widget_get_parent(child));
 
-	gint n = gtk_notebook_page_num(notebook, GTK_WIDGET(treeview));
+	gint n = gtk_notebook_page_num(notebook, child);
 	gtk_notebook_remove_page(notebook, n);
 	g_signal_emit(G_OBJECT(notebook), xa_notebook_signals[0], 0, notebook);
 }
@@ -375,10 +375,22 @@
 void
 xa_notebook_page_set_archive(XANotebook *notebook, LXAArchive *archive, LXAArchiveSupport *support, gint n)
 {
-	GtkWidget *scrolledwindow = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), n);
-	GtkWidget *treeview = gtk_bin_get_child(GTK_BIN(scrolledwindow));
-	GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
+	if(gtk_notebook_get_n_pages(GTK_NOTEBOOK(notebook)))
+	{
+		GtkWidget *scrolledwindow = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), n);
+		GtkWidget *treeview = gtk_bin_get_child(GTK_BIN(scrolledwindow));
+		GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
 
-	xa_archive_store_set_archive(XA_ARCHIVE_STORE(store), archive);
-	xa_archive_store_set_support(XA_ARCHIVE_STORE(store), support);
+		xa_archive_store_set_archive(XA_ARCHIVE_STORE(store), archive);
+		xa_archive_store_set_support(XA_ARCHIVE_STORE(store), support);
+
+		g_signal_connect(G_OBJECT(archive), "lxa_status_changed", G_CALLBACK(cb_notebook_archive_status_changed), notebook);
+		g_signal_connect(G_OBJECT(archive), "lxa_refreshed", G_CALLBACK(cb_notebook_archive_refreshed), treeview);
+
+		lxa_archive_support_refresh(support, archive);
+
+		gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), store);
+	}
+	else
+		xa_notebook_add_archive(XA_NOTEBOOK(notebook), archive, support);
 }

Modified: xarchiver/branches/xarchiver-psybsd/src/notebook.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/notebook.h	2006-11-06 13:09:24 UTC (rev 23758)
+++ xarchiver/branches/xarchiver-psybsd/src/notebook.h	2006-11-06 13:36:28 UTC (rev 23759)
@@ -63,7 +63,7 @@
 	GtkNotebookClass parent;
 };
 
-GtkWidget   *xa_notebook_new (XANavigationBar *bar);
+GtkWidget   *xa_notebook_new (XANavigationBar *bar, gboolean use_tabs);
 GType xa_notebook_get_type ();
 
 void  xa_notebook_set_navigation_bar(XANotebook *, XANavigationBar *);



More information about the Xfce4-commits mailing list