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=561c0405bf1b23fd781cf3e20d811f82a0e9a613;hpb=5c210c96542db2a357cf1aa6b690ef2ea88a54b1;p=pspp diff --git a/src/ui/gui/text-data-import-dialog.h b/src/ui/gui/text-data-import-dialog.h index 561c0405bf..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,92 +57,28 @@ 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 +struct import_assistant { - 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; - }; - + struct file file; + struct assistant asst; -/* 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? */ + struct intro_page *intro; + struct sheet_spec_page *sheet_spec; + struct first_line_page *first_line; + struct separators_page *separators; + struct formats_page *formats; - /* The columns produced thereby. */ + /* The columns produced. */ 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 - { + int skip_lines; /* Number of initial lines to skip? */ + bool variable_names; /* Variable names above first line of data? */ 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; - struct assistant asst; - struct intro_page intro; - struct sheet_spec_page sheet_spec; - struct first_line_page first_line; - struct separators_page separators; - struct formats_page formats; + struct spreadsheet *spreadsheet; }; - - - struct column { /* Variable name for this column. This is the variable name @@ -173,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); @@ -186,44 +125,37 @@ 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); -void init_assistant (struct import_assistant *, GtkWindow *); +struct import_assistant * init_assistant (GtkWindow *); void destroy_assistant (struct import_assistant *);