X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Ftext-data-import-dialog.h;h=9e13b65f0af233151835f1bfdad16ec921766976;hb=03a7b96a587a58bda342b4eb5ce5f935880ba2b7;hp=3b8a987e0dfa9a172b224d31e74c45e49e939e8e;hpb=001db1bf60acf85491463edcd557aad6e661195c;p=pspp diff --git a/src/ui/gui/text-data-import-dialog.h b/src/ui/gui/text-data-import-dialog.h index 3b8a987e0d..9e13b65f0a 100644 --- a/src/ui/gui/text-data-import-dialog.h +++ b/src/ui/gui/text-data-import-dialog.h @@ -23,6 +23,8 @@ #include "libpspp/str.h" +enum { MAX_PREVIEW_LINES = 1000 }; /* Max number of lines to read. */ + /* The file to be imported. */ struct file { @@ -45,6 +47,7 @@ struct assistant GtkBuilder *builder; GtkAssistant *assistant; GMainLoop *main_loop; + bool loop_done; GtkWidget *paste_button; GtkWidget *reset_button; int response; @@ -54,78 +57,6 @@ struct assistant GtkCellRenderer *fixed_renderer; }; - -/* The sheet_spec page of the assistant (only relevant for spreadsheet imports). */ -struct sheet_spec_page - { - GtkWidget *page; - struct casereader *reader; - struct dictionary *dict; - struct spreadsheet *spreadsheet; - - struct spreadsheet_read_info sri; - struct spreadsheet_read_options opts; - }; - - -/* The introduction page of the assistant. */ -struct intro_page - { - GtkWidget *page; - GtkWidget *all_cases_button; - GtkWidget *n_cases_button; - GtkWidget *n_cases_spin; - GtkWidget *percent_button; - GtkWidget *percent_spin; - }; - -/* Page where the user chooses the first line of data. */ -struct first_line_page - { - int skip_lines; /* Number of initial lines to skip? */ - bool variable_names; /* Variable names above first line of data? */ - - GtkWidget *page; - GtkTreeView *tree_view; - GtkWidget *variable_names_cb; - }; - - -/* Page where the user chooses field separators. */ -struct separators_page - { - /* How to break lines into columns. */ - struct string separators; /* Field separators. */ - struct string quotes; /* Quote characters. */ - bool escape; /* Doubled quotes yield a quote mark? */ - - /* The columns produced thereby. */ - struct column *columns; /* Information about each column. */ - size_t column_cnt; /* Number of columns. */ - - GtkWidget *page; - GtkWidget *custom_cb; - GtkWidget *custom_entry; - GtkWidget *quote_cb; - GtkWidget *quote_combo; - GtkEntry *quote_entry; - GtkWidget *escape_cb; - GtkTreeView *fields_tree_view; - }; - -/* Page where the user verifies and adjusts input formats. */ -struct formats_page - { - struct dictionary *dict; - - GtkWidget *page; - GtkTreeView *data_tree_view; - PsppireDict *psppire_dict; - struct variable **modified_vars; - size_t modified_var_cnt; - }; - - struct import_assistant { struct file file; @@ -136,10 +67,17 @@ struct import_assistant struct first_line_page *first_line; struct separators_page *separators; struct formats_page *formats; - }; + /* The columns produced. */ + struct column *columns; /* Information about each column. */ + size_t column_cnt; /* Number of columns. */ + int skip_lines; /* Number of initial lines to skip? */ + bool variable_names; /* Variable names above first line of data? */ + struct dictionary *dict; + struct spreadsheet *spreadsheet; + }; struct column { @@ -174,11 +112,11 @@ void text_data_import_assistant (PsppireDataWindow *); /* FIXME: Should this be private to first line page ? */ void make_tree_view (const struct import_assistant *ia, size_t first_line, - GtkTreeView **tree_view); + PsppSheetView **tree_view); -gint get_monospace_width (GtkTreeView *, GtkCellRenderer *, +gint get_monospace_width (PsppSheetView *, GtkCellRenderer *, size_t char_cnt); -gint get_string_width (GtkTreeView *, GtkCellRenderer *, +gint get_string_width (PsppSheetView *, GtkCellRenderer *, const char *string); @@ -187,39 +125,32 @@ void push_watch_cursor (struct import_assistant *); void pop_watch_cursor (struct import_assistant *); -GtkTreeView *create_data_tree_view (bool input, GtkContainer *parent, - struct import_assistant *); +PsppSheetView *create_data_tree_view (bool input, GtkContainer *parent, + struct import_assistant *); -GtkTreeViewColumn *make_data_column (struct import_assistant *, - GtkTreeView *, bool input, - gint column_idx); +PsppSheetViewColumn *make_data_column (struct import_assistant *, + PsppSheetView *, bool input, + gint column_idx); void update_assistant (struct import_assistant *ia); - bool init_file (struct import_assistant *ia, GtkWindow *parent_window); void destroy_file (struct import_assistant *ia); - -void init_intro_page (struct import_assistant *); -void reset_intro_page (struct import_assistant *); - -void init_sheet_spec_page (struct import_assistant *); void prepare_sheet_spec_page (struct import_assistant *ia); void reset_sheet_spec_page (struct import_assistant *); void post_sheet_spec_page (struct import_assistant *ia); -void init_first_line_page (struct import_assistant *ia); void prepare_first_line_page (struct import_assistant *ia); void reset_first_line_page (struct import_assistant *); -void init_separators_page (struct import_assistant *ia); +void reset_intro_page (struct import_assistant *ia); + void prepare_separators_page (struct import_assistant *ia); void reset_separators_page (struct import_assistant *); void destroy_separators_page (struct import_assistant *ia); -void init_formats_page (struct import_assistant *ia); void prepare_formats_page (struct import_assistant *ia); void reset_formats_page (struct import_assistant *); void destroy_formats_page (struct import_assistant *ia);