[gnumeric] Fix chart name roundtrip through ODF. [#477]



commit d36774689904bfa2798730195ec8f0cb0a8ea73b
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date:   Mon Apr 27 00:14:20 2020 -0600

    Fix chart name roundtrip through ODF. [#477]
    
    2020-04-27  Andreas J. Guelzow <aguelzow pyrshep ca>
    
        * openoffice-read.c (od_draw_frame_end_full): assign name to sheet object
        * openoffice-write.c (odf_write_frame_size): write sheet object name

 NEWS                                  | 3 +++
 plugins/openoffice/ChangeLog          | 5 +++++
 plugins/openoffice/openoffice-read.c  | 2 ++
 plugins/openoffice/openoffice-write.c | 7 +++++++
 4 files changed, 17 insertions(+)
---
diff --git a/NEWS b/NEWS
index c9ecb7631..67265bd8c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
 Gnumeric 1.12.47
 
+Andreas:
+    * Fix chart name roundtrip through ODF. [#477]
+
 Jean:
        * Fix crash when the embedded spreadsheet is invalid. [#481]
 
diff --git a/plugins/openoffice/ChangeLog b/plugins/openoffice/ChangeLog
index 2902cc462..d548e121b 100644
--- a/plugins/openoffice/ChangeLog
+++ b/plugins/openoffice/ChangeLog
@@ -1,3 +1,8 @@
+2020-04-27  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+    * openoffice-read.c (od_draw_frame_end_full): assign name to sheet object
+    * openoffice-write.c (odf_write_frame_size): write sheet object name
+
 2019-11-06  Morten Welinder <terra gnome org>
 
        * Release 1.12.46
diff --git a/plugins/openoffice/openoffice-read.c b/plugins/openoffice/openoffice-read.c
index 841f744ce..3b7d82c77 100644
--- a/plugins/openoffice/openoffice-read.c
+++ b/plugins/openoffice/openoffice-read.c
@@ -8247,6 +8247,8 @@ od_draw_frame_end_full (GsfXMLIn *xin, gboolean absolute_distance, char const *c
                ob_off->frame_offset[2] = state->chart.frame_offset[2];
                ob_off->frame_offset[3] = state->chart.frame_offset[3];
                state->chart_list = g_slist_prepend ( state->chart_list, ob_off);
+               if (state->chart.name)
+                       sheet_object_set_name (state->chart.so, state->chart.name);
 
                state->chart.so = NULL;
        }
diff --git a/plugins/openoffice/openoffice-write.c b/plugins/openoffice/openoffice-write.c
index 15feb8426..84b794c76 100644
--- a/plugins/openoffice/openoffice-write.c
+++ b/plugins/openoffice/openoffice-write.c
@@ -2854,6 +2854,7 @@ odf_write_frame_size (GnmOOExport *state, SheetObject *so)
        GnmParsePos pp;
        char *formula;
        Sheet *sheet;
+       char const *name = NULL;
 
        sheet_object_anchor_to_offset_pts (anchor, state->sheet, res_pts);
 
@@ -2892,6 +2893,12 @@ odf_write_frame_size (GnmOOExport *state, SheetObject *so)
                break;
        }
 
+       g_object_get (G_OBJECT (so),
+                             "name", &name,
+                             NULL);
+       if (name)
+               gsf_xml_out_add_cstr_unchecked (state->xml, DRAW "name", name);
+
        sheet = sheet_object_get_sheet (so);
        if (sheet) {
                int z;


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