From: John Darrington Date: Sat, 6 May 2017 06:59:56 +0000 (+0200) Subject: Add an (empty) datasheet to the import assistant X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c779c0c9beb2e6b3bde870fdd2fd9cd8a86877fa;p=pspp Add an (empty) datasheet to the import assistant --- diff --git a/src/ui/gui/psppire-data-store.c b/src/ui/gui/psppire-data-store.c index 7c2708f1da..7b6aa7fb7f 100644 --- a/src/ui/gui/psppire-data-store.c +++ b/src/ui/gui/psppire-data-store.c @@ -81,6 +81,9 @@ __tree_model_iter_n_children (GtkTreeModel *tree_model, { PsppireDataStore *store = PSPPIRE_DATA_STORE (tree_model); + if (store->datasheet == NULL) + return 0; + gint n = datasheet_get_n_rows (store->datasheet); return n; @@ -112,11 +115,9 @@ __iter_nth_child (GtkTreeModel *tree_model, PsppireDataStore *store = PSPPIRE_DATA_STORE (tree_model); g_assert (parent == NULL); - g_return_val_if_fail (store, FALSE); - g_return_val_if_fail (store->datasheet, FALSE); - if (n >= datasheet_get_n_rows (store->datasheet)) + if (!store->datasheet || n >= datasheet_get_n_rows (store->datasheet)) { iter->stamp = -1; iter->user_data = NULL; diff --git a/src/ui/gui/psppire-import-assistant.c b/src/ui/gui/psppire-import-assistant.c index 6441e47193..de4e76252a 100644 --- a/src/ui/gui/psppire-import-assistant.c +++ b/src/ui/gui/psppire-import-assistant.c @@ -50,6 +50,10 @@ #include "psppire-spreadsheet-model.h" #include "psppire-text-file.h" #include "psppire-delimited-text.h" +#include "psppire-data-sheet.h" +#include "psppire-data-store.h" +#include "psppire-dict.h" +#include "psppire-variable-sheet.h" #include "ui/syntax-gen.h" @@ -1801,6 +1805,9 @@ prepare_formats_page (PsppireImportAssistant *ia) { PsppireDict *dict = psppire_dict_new_from_dict (ia->dict); g_object_set (ia->var_sheet, "data-model", dict, NULL); + + PsppireDataStore *store = psppire_data_store_new (dict); + g_object_set (ia->data_sheet, "data-model", store, NULL); } static void @@ -1823,6 +1830,15 @@ formats_page_create (PsppireImportAssistant *ia) gtk_widget_show_all (vars_scroller); } + GtkWidget *data_scroller = get_widget_assert (builder, "data-scroller"); + if (ia->data_sheet == NULL) + { + ia->data_sheet = psppire_data_sheet_new (); + + gtk_container_add (GTK_CONTAINER (data_scroller), ia->data_sheet); + + gtk_widget_show_all (data_scroller); + } add_page_to_assistant (ia, w, GTK_ASSISTANT_PAGE_CONFIRM, _("Adjust Variable Formats")); diff --git a/src/ui/gui/psppire-import-assistant.h b/src/ui/gui/psppire-import-assistant.h index dc69277546..55bfbeb5a6 100644 --- a/src/ui/gui/psppire-import-assistant.h +++ b/src/ui/gui/psppire-import-assistant.h @@ -137,6 +137,7 @@ struct _PsppireImportAssistant struct dictionary *dict; GtkWidget *var_sheet; + GtkWidget *data_sheet; struct spreadsheet *spreadsheet; };