#include <errno.h>
#include <fcntl.h>
-#include <gtk-contrib/psppire-sheet.h>
#include <gtk/gtk.h>
#include <limits.h>
#include <stdlib.h>
#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"
#include "ui/gui/psppire-encoding-selector.h"
#include "ui/gui/psppire-empty-list-store.h"
#include "ui/gui/psppire-var-sheet.h"
-#include "ui/gui/psppire-var-store.h"
#include "ui/gui/psppire-scanf.h"
#include "ui/syntax-gen.h"
-#include "gl/error.h"
#include "gl/intprops.h"
#include "gl/xalloc.h"
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;
}
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);
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);
filter = gtk_file_filter_new ();
- gtk_file_filter_set_name (filter, _("Text files"));
+ gtk_file_filter_set_name (filter, _("Text Files"));
gtk_file_filter_add_mime_type (filter, "text/*");
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
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));