Whitespace changes only
[pspp] / src / ui / gui / page-file.c
index 850f20787d44019324bde4c0889085fe7e20573e..bf09902bf9e68c19cf3894f3d37ff504334a6a98 100644 (file)
@@ -39,7 +39,6 @@
 #include "libpspp/i18n.h"
 #include "libpspp/line-reader.h"
 #include "libpspp/message.h"
-#include "ui/gui/checkbox-treeview.h"
 #include "ui/gui/dialog-common.h"
 #include "ui/gui/executor.h"
 #include "ui/gui/helper.h"
@@ -52,7 +51,6 @@
 #include "ui/gui/psppire-scanf.h"
 #include "ui/syntax-gen.h"
 
-#include "gl/error.h"
 #include "gl/intprops.h"
 #include "gl/xalloc.h"
 
@@ -97,8 +95,8 @@ init_file (struct import_assistant *ia, GtkWindow *parent_window)
     struct line_reader *reader = line_reader_for_file (file->encoding, file->file_name, O_RDONLY);
     if (reader == NULL)
       {
-       msg (ME, _("Could not open `%s': %s"),
-            file->file_name, strerror (errno));
+       msg_error (errno, _("Could not open `%s'"),
+            file->file_name);
        return false;
       }
 
@@ -140,17 +138,27 @@ init_file (struct import_assistant *ia, GtkWindow *parent_window)
        return false;
       }
 
+
     /* Estimate the number of lines in the file. */
     if (file->line_cnt < MAX_PREVIEW_LINES)
-      file->total_lines = file->line_cnt;
+      {
+       file->total_lines = file->line_cnt;
+       file->total_is_exact = true;
+      }
     else
       {
        struct stat s;
        off_t position = line_reader_tell (reader);
        if (fstat (line_reader_fileno (reader), &s) == 0 && position > 0)
-         file->total_lines = (double) file->line_cnt / position * s.st_size;
+         {
+           file->total_lines = (double) file->line_cnt / position * s.st_size;
+           file->total_is_exact = false;
+         }
        else
+         {
          file->total_lines = 0;
+         file->total_is_exact = true;
+         }
       }
 
     line_reader_close (reader);
@@ -194,8 +202,8 @@ choose_file (GtkWindow *parent_window, gchar **encodingp)
   GtkWidget *dialog = gtk_file_chooser_dialog_new (_("Import Delimited Text Data"),
                                         parent_window,
                                         GTK_FILE_CHOOSER_ACTION_OPEN,
-                                        GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                        GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+                                       _("Cancel"), GTK_RESPONSE_CANCEL,
+                                       _("Open"), GTK_RESPONSE_ACCEPT,
                                         NULL);
 
   g_object_set (dialog, "local-only", FALSE, NULL);
@@ -228,6 +236,21 @@ choose_file (GtkWindow *parent_window, gchar **encodingp)
   gtk_file_filter_add_mime_type (filter, "text/tab-separated-values");
   gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
 
+  filter = gtk_file_filter_new ();
+  gtk_file_filter_set_name (filter, _("Gnumeric Spreadsheet Files"));
+  gtk_file_filter_add_mime_type (filter, "application/x-gnumeric");
+  gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+
+  filter = gtk_file_filter_new ();
+  gtk_file_filter_set_name (filter, _("OpenDocument Spreadsheet Files"));
+  gtk_file_filter_add_mime_type (filter, "application/vnd.oasis.opendocument.spreadsheet");
+  gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+
+  filter = gtk_file_filter_new ();
+  gtk_file_filter_set_name (filter, _("All Spreadsheet Files"));
+  gtk_file_filter_add_mime_type (filter, "application/x-gnumeric");
+  gtk_file_filter_add_mime_type (filter, "application/vnd.oasis.opendocument.spreadsheet");
+  gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
 
   gtk_file_chooser_set_extra_widget (
     GTK_FILE_CHOOSER (dialog), psppire_encoding_selector_new ("Auto", true));