Merge remote branch 'origin/master' into import-gui
[pspp] / src / ui / gui / page-sheet-spec.c
index 59c9c76636644eb99eae08ed70ab2b0fb0f85a01..3d92bfe4100929a074d6718a76c98115b23b1de0 100644 (file)
@@ -78,7 +78,6 @@ struct sheet_spec_page
     struct casereader *reader;
     struct dictionary *dict;
     
-    struct spreadsheet_read_info sri;
     struct spreadsheet_read_options opts;
   };
 
@@ -87,6 +86,9 @@ char *
 sheet_spec_gen_syntax (const struct import_assistant *ia)
 {
   const struct sheet_spec_page *ssp = ia->sheet_spec;
+  GtkBuilder *builder = ia->asst.builder;
+  GtkWidget *range_entry = get_widget_assert (builder, "cell-range-entry");
+  const gchar *range = gtk_entry_get_text (GTK_ENTRY (range_entry));
 
   struct string s = DS_EMPTY_INITIALIZER;
 
@@ -99,14 +101,13 @@ sheet_spec_gen_syntax (const struct import_assistant *ia)
                   (ia->spreadsheet->type == SPREADSHEET_GNUMERIC) ? "GNM" : "ODS",
                   ia->file.file_name,                   
                   ssp->opts.sheet_index,
-                  ssp->sri.read_names ? "ON" : "OFF");
+                  ssp->opts.read_names ? "ON" : "OFF");
 
 
-  if ( ssp->opts.cell_range)
+  if (range && 0 != strcmp ("", range))
     {
       syntax_gen_pspp (&s,
-                      "\n  /CELLRANGE=RANGE %sq",
-                      ssp->opts.cell_range);
+                      "\n  /CELLRANGE=RANGE %sq", range);
     }
   else
     {
@@ -197,40 +198,32 @@ post_sheet_spec_page (struct import_assistant *ia)
   struct casereader *creader = NULL;
   struct dictionary *dict = NULL;
 
-  GtkWidget *range_entry = get_widget_assert (builder, "cell-range-entry");
   GtkWidget *readnames_checkbox = get_widget_assert (builder, "readnames-checkbox");
-
+  GtkWidget *range_entry = get_widget_assert (builder, "cell-range-entry");
   const gchar *range = gtk_entry_get_text (GTK_ENTRY (range_entry));
+  GtkWidget *combo_box = get_widget_assert (builder, "sheet-entry");
 
-  gint num = 1;
+  gint num = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box));
   
   ssp->opts.sheet_name = NULL;
   ssp->opts.cell_range = NULL;
-  ssp->opts.sheet_index = num;
+  ssp->opts.sheet_index = num + 1;
 
   if ( convert_cell_ref (range, &col_start, &row_start, &col_stop, &row_stop))
     {
       ssp->opts.cell_range = range;
     }
 
-  ssp->sri.read_names = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (readnames_checkbox));
-  ssp->sri.asw = -1;
+  ssp->opts.read_names = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (readnames_checkbox));
+  ssp->opts.asw = -1;
 
   switch (ia->spreadsheet->type)
     {
     case SPREADSHEET_ODS:
-      {
-       printf ("%s:%d\n", __FILE__, __LINE__);
-       creader = ods_make_reader (ia->spreadsheet, &ssp->sri, &ssp->opts);
-       dict = ia->spreadsheet->dict;
-      }
-      break;
     case SPREADSHEET_GNUMERIC:
       {
-       printf ("%s:%d\n",__FILE__, __LINE__);
-       creader = gnumeric_make_reader (ia->spreadsheet, &ssp->sri, &ssp->opts);
+       creader = spreadsheet_make_reader (ia->spreadsheet, &ssp->opts);
        dict = ia->spreadsheet->dict;
-       printf ("%s:%d Reader %p Dict %p\n",__FILE__, __LINE__, creader, dict);
       }
       break;
     default: