+ GtkBuilder *builder = ia->asst.builder;
+ GtkWidget *sheet_entry = get_widget_assert (builder, "sheet-entry");
+ GtkWidget *readnames_checkbox = get_widget_assert (builder, "readnames-checkbox");
+
+ gtk_combo_box_set_active (GTK_COMBO_BOX (sheet_entry), 0);
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (readnames_checkbox), FALSE);
+}
+
+/* Called when the Forward button is clicked,
+ but before displaying the new page.
+*/
+void
+post_sheet_spec_page (struct import_assistant *ia)
+{
+ int row_start = -1;
+ int row_stop = -1;
+ int col_start = -1;
+ int col_stop = -1;
+
+ GtkBuilder *builder = ia->asst.builder;
+
+ struct sheet_spec_page *ssp = ia->sheet_spec;
+ struct casereader *creader = NULL;
+ struct dictionary *dict = NULL;
+
+ GtkWidget *readnames_checkbox = get_widget_assert (builder, "readnames-checkbox");
+ GtkWidget *range_entry = get_widget_assert (builder, "cell-range-entry");
+ const gchar *range = gtk_entry_get_text (GTK_ENTRY (range_entry));
+ GtkWidget *combo_box = get_widget_assert (builder, "sheet-entry");
+
+ gint num = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box));
+
+ ssp->opts.sheet_name = NULL;
+ ssp->opts.cell_range = NULL;
+ ssp->opts.sheet_index = num + 1;
+
+ if ( convert_cell_ref (range, &col_start, &row_start, &col_stop, &row_stop))
+ {
+ ssp->opts.cell_range = g_strdup (range);
+ }
+
+ ssp->opts.read_names = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (readnames_checkbox));
+ ssp->opts.asw = -1;
+
+ switch (ia->spreadsheet->type)
+ {
+ case SPREADSHEET_ODS:
+ case SPREADSHEET_GNUMERIC:
+ {
+ creader = spreadsheet_make_reader (ia->spreadsheet, &ssp->opts);
+ dict = ia->spreadsheet->dict;
+ }
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+
+ ssp->dict = dict;
+ ssp->reader = creader;
+
+ if (creader && dict)
+ {
+ update_assistant (ia);
+ }
+ else
+ {
+ GtkWidget * dialog = gtk_message_dialog_new (NULL,
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ _("An error occurred reading the spreadsheet file."));
+
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+ }