X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpage-assistant.c;h=c55359ef566806b5cd49adecc49d56ecbb75a268;hb=03a7b96a587a58bda342b4eb5ce5f935880ba2b7;hp=f6ca9e8d10a57dcd003b7c1e62c05133349e7dea;hpb=c81095f27220e7896eb5b42df87d648538cfa5b9;p=pspp diff --git a/src/ui/gui/page-assistant.c b/src/ui/gui/page-assistant.c index f6ca9e8d10..c55359ef56 100644 --- a/src/ui/gui/page-assistant.c +++ b/src/ui/gui/page-assistant.c @@ -20,7 +20,6 @@ #include #include -#include #include #include #include @@ -36,7 +35,6 @@ #include "libpspp/i18n.h" #include "libpspp/line-reader.h" #include "libpspp/message.h" -#include "ui/gui/checkbox-treeview.h" #include "ui/gui/dialog-common.h" #include "ui/gui/executor.h" #include "ui/gui/helper.h" @@ -46,9 +44,7 @@ #include "ui/gui/psppire-encoding-selector.h" #include "ui/gui/psppire-empty-list-store.h" #include "ui/gui/psppire-var-sheet.h" -#include "ui/gui/psppire-var-store.h" -#include "gl/error.h" #include "gl/intprops.h" #include "gl/xalloc.h" @@ -65,7 +61,6 @@ static void on_cancel (GtkAssistant *assistant, struct import_assistant *); static void on_close (GtkAssistant *assistant, struct import_assistant *); static void on_paste (GtkButton *button, struct import_assistant *); static void on_reset (GtkButton *button, struct import_assistant *); -static void close_assistant (struct import_assistant *, int response); /* Initializes IA's asst substructure. PARENT_WINDOW must be the window to use as the assistant window's parent. */ @@ -78,21 +73,21 @@ init_assistant (GtkWindow *parent_window) a->builder = builder_new ("text-data-import.ui"); a->assistant = GTK_ASSISTANT (gtk_assistant_new ()); - ia->sheet_spec = sheet_spec_page_create (ia); - ia->intro = intro_page_create (ia); - ia->separators = separators_page_create (ia); - - ia->first_line = xzalloc (sizeof *ia->first_line); - ia->formats = xzalloc (sizeof *ia->formats); - + a->prop_renderer = gtk_cell_renderer_text_new (); + g_object_ref_sink (a->prop_renderer); + a->fixed_renderer = gtk_cell_renderer_text_new (); + g_object_ref_sink (a->fixed_renderer); + g_object_set (G_OBJECT (a->fixed_renderer), + "family", "Monospace", + (void *) NULL); g_signal_connect (a->assistant, "prepare", G_CALLBACK (on_prepare), ia); g_signal_connect (a->assistant, "cancel", G_CALLBACK (on_cancel), ia); g_signal_connect (a->assistant, "close", G_CALLBACK (on_close), ia); - a->paste_button = gtk_button_new_from_stock (GTK_STOCK_PASTE); + a->paste_button = gtk_button_new_with_label (_("Paste")); gtk_assistant_add_action_widget (a->assistant, a->paste_button); g_signal_connect (a->paste_button, "clicked", G_CALLBACK (on_paste), ia); - a->reset_button = gtk_button_new_from_stock ("pspp-stock-reset"); + a->reset_button = gtk_button_new_with_label (_("Reset")); gtk_assistant_add_action_widget (a->assistant, a->reset_button); g_signal_connect (a->reset_button, "clicked", G_CALLBACK (on_reset), ia); gtk_window_set_title (GTK_WINDOW (a->assistant), @@ -100,13 +95,6 @@ init_assistant (GtkWindow *parent_window) gtk_window_set_transient_for (GTK_WINDOW (a->assistant), parent_window); gtk_window_set_icon_name (GTK_WINDOW (a->assistant), "pspp"); - a->prop_renderer = gtk_cell_renderer_text_new (); - g_object_ref_sink (a->prop_renderer); - a->fixed_renderer = gtk_cell_renderer_text_new (); - g_object_ref_sink (a->fixed_renderer); - g_object_set (G_OBJECT (a->fixed_renderer), - "family", "Monospace", - (void *) NULL); return ia; } @@ -160,40 +148,52 @@ static void 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); - g_print ("%s:%d Page %d %p\n", __FILE__, __LINE__, pn, page); -#if 0 - if (pn == 1 && ssp->spreadsheet) - post_sheet_spec_page (ia); + gtk_widget_show (ia->asst.reset_button); + gtk_widget_hide (ia->asst.paste_button); - if (gtk_assistant_get_page_type (assistant, page) - == GTK_ASSISTANT_PAGE_CONFIRM) - gtk_widget_grab_focus (assistant->apply); + if ( ia->spreadsheet) + { + if (pn == 0) + { + prepare_sheet_spec_page (ia); + } + else if (pn == 1) + { + post_sheet_spec_page (ia); + prepare_formats_page (ia); + } + } else - gtk_widget_grab_focus (assistant->forward); - - - /* Prepare .... */ - if (page == ia->separators->page) - prepare_separators_page (ia); - else if (page == ia->formats->page) - prepare_formats_page (ia); - else if (page == ia->sheet_spec->page && ssp->spreadsheet) { - prepare_sheet_spec_page (ia); + switch (pn) + { + case 0: + reset_intro_page (ia); + break; + case 1: + reset_first_line_page (ia); + break; + case 2: + prepare_separators_page (ia); + reset_separators_page (ia); + break; + case 3: + prepare_formats_page (ia); + reset_formats_page (ia); + break; + } } -#endif - - gtk_widget_show (ia->asst.reset_button); - if (page == ia->formats->page) - gtk_widget_show (ia->asst.paste_button); +#if GTK3_TRANSITION + if (gtk_assistant_get_page_type (assistant, page) + == GTK_ASSISTANT_PAGE_CONFIRM) + gtk_widget_grab_focus (assistant->apply); else - gtk_widget_hide (ia->asst.paste_button); + gtk_widget_grab_focus (assistant->forward); +#endif } /* Called when the Cancel button in the assistant is clicked. */ @@ -223,21 +223,38 @@ on_paste (GtkButton *button, struct import_assistant *ia) static void on_reset (GtkButton *button, struct import_assistant *ia) { -#if 0 - 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) - reset_intro_page (ia); - else if (page == ia->first_line->page) - reset_first_line_page (ia); - else if (page == ia->separators->page) - reset_separators_page (ia); - else if (page == ia->formats->page) - reset_formats_page (ia); - else if (page == ia->sheet_spec->page) - reset_sheet_spec_page (ia); -#endif + gint pn = gtk_assistant_get_current_page (ia->asst.assistant); + + if ( ia->spreadsheet) + { + switch (pn) + { + case 0: + reset_sheet_spec_page (ia); + break; + case 1: + reset_formats_page (ia); + break; + } + } + else + { + switch (pn) + { + case 0: + reset_intro_page (ia); + break; + case 1: + reset_first_line_page (ia); + break; + case 2: + reset_separators_page (ia); + break; + case 3: + reset_formats_page (ia); + break; + } + } } /* Causes the assistant to close, returning RESPONSE for @@ -246,7 +263,10 @@ static void close_assistant (struct import_assistant *ia, int response) { ia->asst.response = response; - g_main_loop_quit (ia->asst.main_loop); + /* Use our loop_done variable until we find out + why g_main_loop_quit (ia->asst.main_loop); doesn't work. + */ + ia->asst.loop_done = true; gtk_widget_hide (GTK_WIDGET (ia->asst.assistant)); }