Implement import dialog to import spreadsheet files.
authorJohn Darrington <john@darrington.wattle.id.au>
Sat, 18 May 2013 17:06:55 +0000 (19:06 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 18 May 2013 17:07:52 +0000 (19:07 +0200)
Reviewed-by: Ben Pfaff
doc/combining.texi
src/output/cairo.c
src/ui/gui/psppire-data-sheet.c

index ee2934a2b29cc4a1dd5b2512104c2342dce8ffba..a7bca10f5ba6a1d1bd9a382e92706274af4357d3 100644 (file)
@@ -58,9 +58,11 @@ This section describes the syntactical features in common among the
 @cmd{ADD FILES}, @cmd{MATCH FILES}, and @cmd{UPDATE} commands.  The
 following sections describe details specific to each command.
 
-Each of these commands reads two or more input files and combines
-them.  The command's output becomes the new active dataset.  The input
-files are not changed on disk.
+Each of these commands reads two or more input files and combines them.  
+The command's output becomes the new active dataset.
+None of the commands actually change the input files.
+Therefore, if you want the changes to become permanant, you must explictly
+save them using an appropriate procedure or transformation (@pxref{System and Portable File IO}).
 
 The syntax of each command begins with a specification of the files to
 be read as input.  For each input file, specify FILE with a system
index 32586f7937922f754cec6c426ece9925980b3682..4bb601be22f4c66495e9e67a88af6b4e8fdc8ff4 100644 (file)
@@ -267,7 +267,7 @@ apply_options (struct xr_driver *xr, struct string_map *o)
   xr->fonts[XR_FONT_EMPHASIS].desc = parse_font (d, o, "emph-font",
                                                  "serif italic", font_points);
 
-  xr->line_gutter = XR_POINT;
+  xr->line_gutter = parse_dimension (opt (d, o, "gutter", "3pt"));
   xr->line_space = XR_POINT;
   xr->line_width = XR_POINT / 2;
   xr->page_number = 0;
index 01afb5ed8772e50a9bd136241de385429a0d646e..279c36953efcb668564fdfd5a92a784e7af246ce 100644 (file)
@@ -337,13 +337,15 @@ on_data_column_editing_started (GtkCellRenderer *cell,
   if (var_has_value_labels (var) && GTK_IS_COMBO_BOX (editable))
     {
       const struct val_labs *labels = var_get_value_labels (var);
-      const struct val_lab *vl;
+      const struct val_lab **vls = val_labs_sorted (labels);
+      size_t n_vls = val_labs_count (labels);
       GtkListStore *list_store;
+      int i;
 
       list_store = gtk_list_store_new (1, G_TYPE_STRING);
-      for (vl = val_labs_first (labels); vl != NULL;
-           vl = val_labs_next (labels, vl))
+      for (i = 0; i < n_vls; ++i)
         {
+          const struct val_lab *vl = vls[i];
           GtkTreeIter iter;
 
           gtk_list_store_append (list_store, &iter);
@@ -351,6 +353,7 @@ on_data_column_editing_started (GtkCellRenderer *cell,
                               0, val_lab_get_label (vl),
                               -1);
         }
+      free (vls);
 
       gtk_combo_box_set_model (GTK_COMBO_BOX (editable),
                                GTK_TREE_MODEL (list_store));