[gnumeric] ssdiff: report more sheet attribute differences.



commit 08e2e6d43a7e69474d4493d86d5cc59f44dc29fa
Author: Morten Welinder <terra gnome org>
Date:   Fri Feb 28 10:54:28 2014 -0500

    ssdiff: report more sheet attribute differences.

 ChangeLog    |    5 +++++
 NEWS         |    1 +
 src/ssdiff.c |   20 ++++++++++++++++++++
 3 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 62b1ec6..1286a0f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-28  Morten Welinder  <terra gnome org>
+
+       * src/ssdiff.c (diff_sheets_attrs): Detect more sheet attribute
+       changes.
+
 2014-02-27  Jean Brefort  <jean brefort normalesup org>
 
        * src/item-grid.c (item_grid_draw_region): fix background filling for
diff --git a/NEWS b/NEWS
index e7db0f8..baa352e 100644
--- a/NEWS
+++ b/NEWS
@@ -44,6 +44,7 @@ Morten:
        * Fix xls/biff8 export of long comments.  [#725168]
        * Fix xls/biff8 import of comment's text attributes.  [#725168]
        * Improve the xls macro-roundtrip situation.  [#725220]
+       * Improve ssdiff for sheet attributes.
 
 --------------------------------------------------------------------------
 Gnumeric 1.12.11
diff --git a/src/ssdiff.c b/src/ssdiff.c
index 6c8ea82..f469378 100644
--- a/src/ssdiff.c
+++ b/src/ssdiff.c
@@ -818,6 +818,13 @@ diff_sheets_cells (GnmDiffState *state, Sheet *old_sheet, Sheet *new_sheet)
        g_ptr_array_free (new_cells, TRUE);
 }
 
+#define DO_INT(field,attr)                                             \
+       do {                                                            \
+               if (old_sheet->field != new_sheet->field)               \
+                       state->actions->sheet_attr_int_changed          \
+                               (state, attr, old_sheet->field, new_sheet->field); \
+} while (0)
+
 static void
 diff_sheets_attrs (GnmDiffState *state, Sheet *old_sheet, Sheet *new_sheet)
 {
@@ -830,7 +837,20 @@ diff_sheets_attrs (GnmDiffState *state, Sheet *old_sheet, Sheet *new_sheet)
        if (os->max_rows != ns->max_rows)
                state->actions->sheet_attr_int_changed
                        (state, "Rows", os->max_rows, ns->max_rows);
+
+       DO_INT (display_formulas, "DisplayFormulas");
+       DO_INT (hide_zero, "HideZero");
+       DO_INT (hide_grid, "HideGrid");
+       DO_INT (hide_col_header, "HideColHeader");
+       DO_INT (hide_row_header, "HideRowHeader");
+       DO_INT (display_outlines, "DisplayOutlines");
+       DO_INT (outline_symbols_below, "OutlineSymbolsBelow");
+       DO_INT (outline_symbols_right, "OutlineSymbolsRight");
+       DO_INT (text_is_rtl, "RTL_Layout");
+       DO_INT (is_protected, "Protected");
+       DO_INT (visibility, "Visibility");
 }
+#undef DO_INT
 
 struct cb_diff_sheets_styles {
        GnmDiffState *state;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]