/* Initializes IA's asst substructure. PARENT_WINDOW must be the
window to use as the assistant window's parent. */
-void
-init_assistant (struct import_assistant *ia, GtkWindow *parent_window)
+struct import_assistant *
+init_assistant (GtkWindow *parent_window)
{
+ struct import_assistant *ia = NULL;
+ ia = xzalloc (sizeof *ia);
struct assistant *a = &ia->asst;
+
+ ia->intro = xzalloc (sizeof *ia->intro);
+ ia->sheet_spec = xzalloc (sizeof *ia->sheet_spec);
+ ia->first_line = xzalloc (sizeof *ia->first_line);
+ ia->separators = xzalloc (sizeof *ia->separators);
+ ia->formats = xzalloc (sizeof *ia->formats);
+
a->builder = builder_new ("text-data-import.ui");
a->assistant = GTK_ASSISTANT (gtk_assistant_new ());
g_signal_connect (a->assistant, "prepare", G_CALLBACK (on_prepare), ia);
g_object_set (G_OBJECT (a->fixed_renderer),
"family", "Monospace",
(void *) NULL);
+ return ia;
}
/* Frees IA's asst substructure. */
on_prepare (GtkAssistant *assistant, GtkWidget *page,
struct import_assistant *ia)
{
+ struct sheet_spec_page *ssp = ia->sheet_spec;
+
int pn = gtk_assistant_get_current_page (assistant);
- if (pn == 1 && ia->file.type != FTYPE_TEXT)
+ if (pn == 1 && ssp->spreadsheet)
post_sheet_spec_page (ia);
if (gtk_assistant_get_page_type (assistant, page)
/* Prepare .... */
- if (page == ia->separators.page)
+ if (page == ia->separators->page)
prepare_separators_page (ia);
- else if (page == ia->formats.page)
+ else if (page == ia->formats->page)
prepare_formats_page (ia);
- else if (page == ia->sheet_spec.page)
- prepare_sheet_spec_page (ia);
+ else if (page == ia->sheet_spec->page && ssp->spreadsheet)
+ {
+ prepare_sheet_spec_page (ia);
+ }
gtk_widget_show (ia->asst.reset_button);
- if (page == ia->formats.page)
+ if (page == ia->formats->page)
gtk_widget_show (ia->asst.paste_button);
else
gtk_widget_hide (ia->asst.paste_button);
gint page_num = gtk_assistant_get_current_page (ia->asst.assistant);
GtkWidget *page = gtk_assistant_get_nth_page (ia->asst.assistant, page_num);
- if (page == ia->intro.page)
+ if (page == ia->intro->page)
reset_intro_page (ia);
- else if (page == ia->first_line.page)
+ else if (page == ia->first_line->page)
reset_first_line_page (ia);
- else if (page == ia->separators.page)
+ else if (page == ia->separators->page)
reset_separators_page (ia);
- else if (page == ia->formats.page)
+ else if (page == ia->formats->page)
reset_formats_page (ia);
- else if (page == ia->sheet_spec.page)
+ else if (page == ia->sheet_spec->page)
reset_sheet_spec_page (ia);
}