gnumeric r16475 - in branches/gnumeric-1-8: . src



Author: mortenw
Date: Wed Mar 26 18:38:37 2008
New Revision: 16475
URL: http://svn.gnome.org/viewvc/gnumeric?rev=16475&view=rev

Log:
2008-03-26  Morten Welinder  <terra gnome org>

	* src/gui-file.c (gui_file_open): Allow selection of multiple
	files.  [#524479]



Modified:
   branches/gnumeric-1-8/ChangeLog
   branches/gnumeric-1-8/NEWS
   branches/gnumeric-1-8/src/gui-file.c

Modified: branches/gnumeric-1-8/NEWS
==============================================================================
--- branches/gnumeric-1-8/NEWS	(original)
+++ branches/gnumeric-1-8/NEWS	Wed Mar 26 18:38:37 2008
@@ -5,6 +5,7 @@
 
 Morten:
 	* Fix SUMIF problems.  [#523250]
+	* Allow opening multiple files in open dialog.  [#524479]
 
 --------------------------------------------------------------------------
 Gnumeric 1.8.2

Modified: branches/gnumeric-1-8/src/gui-file.c
==============================================================================
--- branches/gnumeric-1-8/src/gui-file.c	(original)
+++ branches/gnumeric-1-8/src/gui-file.c	Wed Mar 26 18:38:37 2008
@@ -204,7 +204,7 @@
 	file_format_changed_cb_data data;
 	gint opener_default;
 	char const *title;
-	char *uri = NULL;
+	GSList *uris = NULL;
 	char const *encoding = NULL;
 	GOFileOpener *fo = NULL;
 	Workbook *workbook = wb_control_get_workbook (WORKBOOK_CONTROL (wbcg));
@@ -242,6 +242,7 @@
 			       "action", GTK_FILE_CHOOSER_ACTION_OPEN,
 			       "local-only", FALSE,
 			       "title", _("Select a file"),
+			       "select-multiple", TRUE,
 			       NULL));
 
 	advanced_button = gtk_button_new_with_mnemonic (_("Advanc_ed"));
@@ -324,7 +325,7 @@
 	if (!go_gtk_file_sel_dialog (wbcg_toplevel (wbcg), GTK_WIDGET (fsel)))
 		goto out;
 
-	uri = gtk_file_chooser_get_uri (fsel);
+	uris = gtk_file_chooser_get_uris (fsel);
 	encoding = go_charmap_sel_get_encoding (GO_CHARMAP_SEL (go_charmap_sel));
 	fo = g_list_nth_data (openers, gtk_combo_box_get_active (format_combo));
 
@@ -332,12 +333,18 @@
 	gtk_widget_destroy (GTK_WIDGET (fsel));
 	g_list_free (openers);
 
-	if (uri) {
+	while (uris) {
+		char *uri = uris->data;
+		GSList *hook = uris;
+
 		/* Make sure dialog goes away right now.  */
 		while (g_main_context_iteration (NULL, FALSE));
 
 		gui_file_read (wbcg, uri, fo, encoding);
 		g_free (uri);
+
+		uris = uris->next;
+		g_slist_free_1 (hook);
 	}
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]