gui: Make text import assistant accept only one quote character.
[pspp] / src / ui / gui / psppire-import-assistant.h
index cdcf8fb73ee48f274745eccffd547da248a28a01..deec75c8789931ac0fb8aeddbeb346d040cc8ca3 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2015, 2017  Free Software Foundation
+   Copyright (C) 2015, 2017, 2020  Free Software Foundation
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -28,6 +28,8 @@
 #include "psppire-text-file.h"
 #include "psppire-delimited-text.h"
 
+#include <ssw-sheet.h>
+
 G_BEGIN_DECLS
 
 struct spreadsheet;
@@ -58,18 +60,25 @@ struct spreadsheet;
 typedef struct _PsppireImportAssistant       PsppireImportAssistant;
 typedef struct _PsppireImportAssistantClass  PsppireImportAssistantClass;
 
-
-typedef void page_func (PsppireImportAssistant *, GtkWidget *page);
+enum IMPORT_ASSISTANT_DIRECTION {IMPORT_ASSISTANT_FORWARDS, IMPORT_ASSISTANT_BACKWARDS};
 
 struct _PsppireImportAssistant
 {
   GtkAssistant parent;
 
-  GtkBuilder *builder;
+  gint previous_page;
+  gchar *file_name;
+  GMainLoop *main_loop;
+  GtkWidget *paste_button;
+  GtkWidget *reset_button;
+  int response;
 
-  gint current_page;
+  struct dictionary *dict;
+  struct dictionary *casereader_dict;
+
+  GtkWidget *var_sheet;
+  GtkWidget *data_sheet;
 
-  gchar *file_name;
 
   /* START The chooser page of the assistant. */
   GtkWidget *encoding_selector;
@@ -77,6 +86,9 @@ struct _PsppireImportAssistant
   /* END The chooser page of the assistant. */
 
 
+  GtkBuilder *text_builder;
+
+
   /* START The introduction page of the assistant. */
     GtkWidget *all_cases_button;
     GtkWidget *n_cases_button;
@@ -86,17 +98,19 @@ struct _PsppireImportAssistant
   /* END The introduction page of the assistant. */
 
 
-/* START Page where the user chooses field separators. */
+  /* START Page where the user chooses field separators. */
 
   /* How to break lines into columns. */
   struct string quotes;       /* Quote characters. */
 
   GtkWidget *custom_cb;
   GtkWidget *custom_entry;
-  GtkWidget *quote_cb;
-  GtkWidget *quote_combo;
+  GtkWidget *quote_none;
+  GtkWidget *quote_single;
+  GtkWidget *quote_double;
+  GtkWidget *quote_custom;
+  GtkWidget *quote_custom_entry;
 
-  GtkEntry *quote_entry;
   GtkWidget *fields_tree_view;
 
 /* END Page where the user chooses field separators. */
@@ -107,22 +121,15 @@ struct _PsppireImportAssistant
   GtkWidget *variable_names_cb;
   /* END first line page */
 
-  GMainLoop *main_loop;
-  GtkWidget *paste_button;
-  GtkWidget *reset_button;
-  int response;
-
   PsppireTextFile *text_file;
   PsppireDelimitedText *delimiters_model;
 
-  struct sheet_spec_page *sheet_spec;
-
-  struct dictionary *dict;
-
-  GtkWidget *var_sheet;
-  GtkWidget *data_sheet;
-
+  /* START spreadsheet related things */
+  GtkBuilder *spread_builder;
+  GtkWidget *preview_sheet;
   struct spreadsheet *spreadsheet;
+  SswRange selection;
+  bool updating_selection;
 };
 
 struct _PsppireImportAssistantClass
@@ -139,6 +146,9 @@ gchar *psppire_import_assistant_generate_syntax (PsppireImportAssistant *);
 
 int psppire_import_assistant_run (PsppireImportAssistant *asst);
 
+GtkWidget *add_page_to_assistant (PsppireImportAssistant *ia,
+                                  GtkWidget *page, GtkAssistantPageType type, const gchar *title);
+
 G_END_DECLS
 
 #endif /* __PSPPIRE_IMPORT_ASSISTANT_H__ */