From 933ad79a28fbde607ec062b42d248169a2d16353 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sat, 12 Jan 2013 13:08:58 +0100 Subject: [PATCH] Enable specification of the cell range --- src/ui/gui/page-sheet-spec.c | 17 ++++++++++++++--- src/ui/gui/text-data-import-dialog.c | 20 ++++++++++++++++++-- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/ui/gui/page-sheet-spec.c b/src/ui/gui/page-sheet-spec.c index 91ab6e23b2..dc31dec5ae 100644 --- a/src/ui/gui/page-sheet-spec.c +++ b/src/ui/gui/page-sheet-spec.c @@ -93,6 +93,11 @@ reset_sheet_spec_page (struct import_assistant *ia) void post_sheet_spec_page (struct import_assistant *ia) { + char col_start[10]; + char col_stop[10]; + int row_start = -1; + int row_stop = -1; + GtkBuilder *builder = ia->asst.builder; struct file *file = &ia->file; @@ -101,16 +106,22 @@ post_sheet_spec_page (struct import_assistant *ia) struct dictionary *dict; GtkWidget *sheet_entry = get_widget_assert (builder, "sheet-entry"); + GtkWidget *range_entry = get_widget_assert (builder, "cell-range-entry"); GtkWidget *readnames_checkbox = get_widget_assert (builder, "readnames-checkbox"); - gint num = atoi (gtk_entry_get_text (sheet_entry)); - - printf ("%s sheet number %d\n", __FUNCTION__, num); + gint num = atoi (gtk_entry_get_text (GTK_ENTRY (sheet_entry))); + const gchar *range = gtk_entry_get_text (GTK_ENTRY (range_entry)); + + sscanf (range, "%[a-zA-Z]%d:%[a-zA-Z]%d", col_start, &row_start, col_stop, &row_stop); + ssp->opts.sheet_name = NULL; ssp->opts.cell_range = NULL; ssp->opts.sheet_index = num; + if ( row_start > 0 && row_stop > 0) + ssp->opts.cell_range = xasprintf ("%s%d:%s%d", col_start, row_start, col_stop, row_stop); + ssp->sri.file_name = file->file_name; ssp->sri.read_names = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (readnames_checkbox)); ssp->sri.asw = -1; diff --git a/src/ui/gui/text-data-import-dialog.c b/src/ui/gui/text-data-import-dialog.c index cda83ebb65..ea7d6da219 100644 --- a/src/ui/gui/text-data-import-dialog.c +++ b/src/ui/gui/text-data-import-dialog.c @@ -289,12 +289,28 @@ generate_syntax (const struct import_assistant *ia) "\n /TYPE=%ss" "\n /FILE=%sq" "\n /SHEET=index %d" - "\n /READNAMES=%ss" - ".", + "\n /READNAMES=%ss", (ia->file.type == FTYPE_GNUMERIC) ? "GNM" : "ODS", ia->file.file_name, ssp->opts.sheet_index, ssp->sri.read_names ? "ON" : "OFF"); + + + if ( ssp->opts.cell_range) + { + syntax_gen_pspp (&s, + "\n /CELLRANGE=RANGE %sq", + ssp->opts.cell_range); + } + else + { + syntax_gen_pspp (&s, + "\n /CELLRANGE=FULL"); + } + + + syntax_gen_pspp (&s, "."); + } break; -- 2.30.2