X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Ftext-data-import-dialog.c;h=f6d2561893c6b813c0fa528fef4651b861602f76;hb=683961575de1160a98ed9a262b05db597b2e7609;hp=ce23093feefa33ea88837236f77fc9a8f43423e7;hpb=0b0ca44889e637251cb5f2dbf3c7fdc4ec8b9bd7;p=pspp diff --git a/src/ui/gui/text-data-import-dialog.c b/src/ui/gui/text-data-import-dialog.c index ce23093fee..f6d2561893 100644 --- a/src/ui/gui/text-data-import-dialog.c +++ b/src/ui/gui/text-data-import-dialog.c @@ -19,6 +19,7 @@ #include "ui/gui/text-data-import-dialog.h" #include "page-intro.h" +#include "page-sheet-spec.h" #include "page-first-line.h" #include "page-separators.h" #include "page-formats.h" @@ -77,6 +78,7 @@ text_data_import_assistant (PsppireDataWindow *dw) { GtkWindow *parent_window = GTK_WINDOW (dw); struct import_assistant *ia = init_assistant (parent_window); + struct sheet_spec_page *ssp ; if (!init_file (ia, parent_window)) { @@ -84,7 +86,13 @@ text_data_import_assistant (PsppireDataWindow *dw) return; } + ssp = ia->sheet_spec; + if (ia->spreadsheet) + { + ia->sheet_spec = sheet_spec_page_create (ia); + } + else { ia->intro = intro_page_create (ia); ia->first_line = first_line_page_create (ia); @@ -114,7 +122,11 @@ text_data_import_assistant (PsppireDataWindow *dw) switch (ia->asst.response) { case GTK_RESPONSE_APPLY: - free (execute_syntax_string (dw, generate_syntax (ia))); + { + gchar *fn = g_path_get_basename (ia->file.file_name); + open_data_window (PSPPIRE_WINDOW (dw), fn, generate_syntax (ia)); + g_free (fn); + } break; case PSPPIRE_RESPONSE_PASTE: free (paste_syntax_to_window (generate_syntax (ia))); @@ -123,6 +135,7 @@ text_data_import_assistant (PsppireDataWindow *dw) break; } + if (ssp) { destroy_formats_page (ia); destroy_separators_page (ia); @@ -223,6 +236,7 @@ generate_syntax (const struct import_assistant *ia) { struct string s = DS_EMPTY_INITIALIZER; + if (ia->spreadsheet == NULL) { syntax_gen_pspp (&s, "GET DATA" @@ -232,7 +246,6 @@ generate_syntax (const struct import_assistant *ia) if (ia->file.encoding && strcmp (ia->file.encoding, "Auto")) syntax_gen_pspp (&s, " /ENCODING=%sq\n", ia->file.encoding); - intro_append_syntax (ia->intro, &s); @@ -245,7 +258,11 @@ generate_syntax (const struct import_assistant *ia) formats_append_syntax (ia, &s); apply_dict (ia->dict, &s); } - + else + { + return sheet_spec_gen_syntax (ia); + } + return ds_cstr (&s); } @@ -645,7 +662,7 @@ push_watch_cursor (struct import_assistant *ia) GtkWidget *widget = GTK_WIDGET (ia->asst.assistant); GdkDisplay *display = gtk_widget_get_display (widget); GdkCursor *cursor = gdk_cursor_new_for_display (display, GDK_WATCH); - gdk_window_set_cursor (widget->window, cursor); + gdk_window_set_cursor (gtk_widget_get_window (widget), cursor); gdk_cursor_unref (cursor); gdk_display_flush (display); } @@ -659,6 +676,6 @@ pop_watch_cursor (struct import_assistant *ia) if (--ia->asst.watch_cursor == 0) { GtkWidget *widget = GTK_WIDGET (ia->asst.assistant); - gdk_window_set_cursor (widget->window, NULL); + gdk_window_set_cursor (gtk_widget_get_window (widget), NULL); } }