work
[pspp] / src / output / pivot-output.c
index a1fba1a3baf5ef5211cb5ebd7e5630ba244ba9be..6e31a7aab7918770be52053f1f793bac279a1c86 100644 (file)
@@ -382,6 +382,7 @@ collect_footnotes (const struct pivot_table *pt,
 void
 pivot_output (const struct pivot_table *pt,
               const size_t *layer_indexes,
+              bool printing UNUSED,
               struct table **titlep,
               struct table **layersp,
               struct table **bodyp,
@@ -409,6 +410,13 @@ pivot_output (const struct pivot_table *pt,
     body->styles[i] = table_area_style_override (
       body->container, &pt->look->areas[i], NULL, NULL, false);
 
+  struct table_border_style borders[PIVOT_N_BORDERS];
+  memcpy (borders, pt->look->borders, sizeof borders);
+  if (!printing && pt->show_grid_lines)
+    for (int b = 0; b < PIVOT_N_BORDERS; b++)
+      if (borders[b].stroke == TABLE_STROKE_NONE)
+        borders[b].stroke = TABLE_STROKE_DASHED;
+
   for (size_t i = 0; i < PIVOT_N_BORDERS; i++)
     {
       const struct table_border_style *in = &pt->look->borders[i];
@@ -419,7 +427,7 @@ pivot_output (const struct pivot_table *pt,
 
   compose_headings (body,
                     &pt->axes[PIVOT_AXIS_COLUMN], H, &pt->axes[PIVOT_AXIS_ROW],
-                    pt->look->borders,
+                    borders,
                     PIVOT_BORDER_DIM_COL_HORZ,
                     PIVOT_BORDER_DIM_COL_VERT,
                     PIVOT_BORDER_CAT_COL_HORZ,
@@ -433,7 +441,7 @@ pivot_output (const struct pivot_table *pt,
 
   compose_headings (body,
                     &pt->axes[PIVOT_AXIS_ROW], V, &pt->axes[PIVOT_AXIS_COLUMN],
-                    pt->look->borders,
+                    borders,
                     PIVOT_BORDER_DIM_ROW_VERT,
                     PIVOT_BORDER_DIM_ROW_HORZ,
                     PIVOT_BORDER_CAT_ROW_VERT,
@@ -479,25 +487,25 @@ pivot_output (const struct pivot_table *pt,
   if (body->n[H] && body->n[V])
     {
       table_hline (
-        body, get_table_rule (pt->look->borders, PIVOT_BORDER_INNER_TOP),
+        body, get_table_rule (borders, PIVOT_BORDER_INNER_TOP),
         0, body->n[H] - 1, 0);
       table_hline (
-        body, get_table_rule (pt->look->borders, PIVOT_BORDER_INNER_BOTTOM),
+        body, get_table_rule (borders, PIVOT_BORDER_INNER_BOTTOM),
         0, body->n[H] - 1, body->n[V]);
       table_vline (
-        body, get_table_rule (pt->look->borders, PIVOT_BORDER_INNER_LEFT),
+        body, get_table_rule (borders, PIVOT_BORDER_INNER_LEFT),
         0, 0, body->n[V] - 1);
       table_vline (
-        body, get_table_rule (pt->look->borders, PIVOT_BORDER_INNER_RIGHT),
+        body, get_table_rule (borders, PIVOT_BORDER_INNER_RIGHT),
         body->n[H], 0, body->n[V] - 1);
 
       if (stub[V])
         table_hline (
-          body, get_table_rule (pt->look->borders, PIVOT_BORDER_DATA_TOP),
+          body, get_table_rule (borders, PIVOT_BORDER_DATA_TOP),
           0, body->n[H] - 1, stub[V]);
       if (stub[H])
         table_vline (
-          body, get_table_rule (pt->look->borders, PIVOT_BORDER_DATA_LEFT),
+          body, get_table_rule (borders, PIVOT_BORDER_DATA_LEFT),
           stub[H], 0, body->n[V] - 1);
 
     }
@@ -506,7 +514,7 @@ pivot_output (const struct pivot_table *pt,
 
   /* Title. */
   struct table *title;
-  if (pt->title && titlep)
+  if (pt->title && pt->show_title && titlep)
     {
       title = create_aux_table (pt, 1, 1, PIVOT_AREA_TITLE);
       fill_cell (title, 0, 0, 0, 0,
@@ -552,7 +560,7 @@ pivot_output (const struct pivot_table *pt,
 
   /* Caption. */
   struct table *caption;
-  if (pt->caption && captionp)
+  if (pt->caption && pt->show_caption && captionp)
     {
       caption = create_aux_table (pt, 1, 1, PIVOT_AREA_CAPTION);
       fill_cell (caption, 0, 0, 0, 0,