[gnumeric] Fix loading of ellipse objects define in ODF's shape section. [#676064]
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] Fix loading of ellipse objects define in ODF's shape section. [#676064]
- Date: Tue, 15 May 2012 03:30:44 +0000 (UTC)
commit 9b473d0081275bc0b1d2ad9bb60134f647b5431d
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date: Mon May 14 21:30:06 2012 -0600
Fix loading of ellipse objects define in ODF's shape section. [#676064]
2012-05-14 Andreas J. Guelzow <aguelzow pyrshep ca>
* openoffice-read.c (od_draw_text_box_p_end): delete
(odf_ellipse): push text:p structure
(opendoc_content_dtd): add elements to table:shapes
NEWS | 1 +
plugins/openoffice/ChangeLog | 6 +++++
plugins/openoffice/openoffice-read.c | 40 ++++++++++-----------------------
3 files changed, 19 insertions(+), 28 deletions(-)
---
diff --git a/NEWS b/NEWS
index 1ef6fbb..059ab34 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ Andreas:
* Fix warning on column insertion. [#675224]
* Correctly read & write rich-text chart titles to/from ODF. [#675821]
* Read and write the graph titles to/from ODF. [#675820]
+ * Fix loading of ellipse objects define in ODF's shape section. [#676064]
Jean:
* Fix graph series headers when a multiple selection is used. [#675913]
diff --git a/plugins/openoffice/ChangeLog b/plugins/openoffice/ChangeLog
index 85f3506..7e1b935 100644
--- a/plugins/openoffice/ChangeLog
+++ b/plugins/openoffice/ChangeLog
@@ -1,5 +1,11 @@
2012-05-14 Andreas J. Guelzow <aguelzow pyrshep ca>
+ * openoffice-read.c (od_draw_text_box_p_end): delete
+ (odf_ellipse): push text:p structure
+ (opendoc_content_dtd): add elements to table:shapes
+
+2012-05-14 Andreas J. Guelzow <aguelzow pyrshep ca>
+
* openoffice-read.c (od_draw_frame_start): store width and height
(oo_chart_title): read placement information
(oo_chart_title_end): apply placement information
diff --git a/plugins/openoffice/openoffice-read.c b/plugins/openoffice/openoffice-read.c
index 2c774ce..1f88cc8 100644
--- a/plugins/openoffice/openoffice-read.c
+++ b/plugins/openoffice/openoffice-read.c
@@ -7523,28 +7523,6 @@ od_draw_text_box (GsfXMLIn *xin, G_GNUC_UNUSED xmlChar const **attrs)
odf_push_text_p (state, FALSE);
}
-static void
-od_draw_text_box_p_end (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
-{
- OOParseState *state = (OOParseState *)xin->user_state;
- gchar *text_old, *text_new;
-
- if (!IS_GNM_SO_FILLED (state->chart.so))
- /* We are intentionally ignoring this frame content */
- return;
-
- g_object_get (state->chart.so, "text", &text_old, NULL);
-
- if (text_old == NULL) {
- g_object_set (state->chart.so, "text", xin->content->str, NULL);
- } else {
- text_new = g_strconcat (text_old, "\n", xin->content->str, NULL);
- g_free (text_old);
- g_object_set (state->chart.so, "text", text_new, NULL);
- g_free (text_new);
- }
-}
-
/* oo_chart_title is used both for chart titles and legend titles */
static void
oo_chart_title (GsfXMLIn *xin, xmlChar const **attrs)
@@ -8856,7 +8834,10 @@ odf_rect (GsfXMLIn *xin, xmlChar const **attrs)
static void
odf_ellipse (GsfXMLIn *xin, xmlChar const **attrs)
{
+ OOParseState *state = (OOParseState *)xin->user_state;
+
odf_so_filled (xin, attrs, TRUE);
+ odf_push_text_p (state, FALSE);
}
static GOArrow *
@@ -10081,6 +10062,12 @@ static GsfXMLInNode const opendoc_content_dtd [] =
GSF_XML_IN_NODE (TABLE, TABLE_SOURCE, OO_NS_TABLE, "table-source", GSF_XML_NO_CONTENT, NULL, NULL),
GSF_XML_IN_NODE (TABLE, TABLE_SHAPES, OO_NS_TABLE, "shapes", GSF_XML_NO_CONTENT, NULL, NULL),
GSF_XML_IN_NODE (TABLE_SHAPES, DRAW_FRAME, OO_NS_DRAW, "frame", GSF_XML_NO_CONTENT, &od_draw_frame_start, &od_draw_frame_end),
+ GSF_XML_IN_NODE (TABLE_SHAPES, DRAW_ELLIPSE, OO_NS_DRAW, "ellipse", GSF_XML_NO_CONTENT, &odf_ellipse, &od_draw_text_frame_end),
+ GSF_XML_IN_NODE (DRAW_ELLIPSE, TEXT_CONTENT, OO_NS_TEXT, "p", GSF_XML_NO_CONTENT, NULL, NULL), /* 2nd def */
+ GSF_XML_IN_NODE (TABLE_SHAPES, DRAW_LINE, OO_NS_DRAW, "line", GSF_XML_NO_CONTENT, &odf_line, &od_draw_frame_end),
+ GSF_XML_IN_NODE (DRAW_LINE, DRAW_LINE_TEXT, OO_NS_TEXT, "p", GSF_XML_NO_CONTENT, NULL, NULL),
+ GSF_XML_IN_NODE (TABLE_SHAPES, DRAW_RECT, OO_NS_DRAW, "rect", GSF_XML_NO_CONTENT, &odf_rect, &od_draw_text_frame_end),
+ GSF_XML_IN_NODE (DRAW_RECT, TEXT_CONTENT, OO_NS_TEXT, "p", GSF_XML_NO_CONTENT, NULL, NULL), /* 2nd def */
GSF_XML_IN_NODE (TABLE, FORMS, OO_NS_OFFICE, "forms", GSF_XML_NO_CONTENT, NULL, NULL),
GSF_XML_IN_NODE (FORMS, FORM, OO_NS_FORM, "form", GSF_XML_NO_CONTENT, NULL, NULL),
GSF_XML_IN_NODE (FORM, FORM_PROPERTIES, OO_NS_FORM, "properties", GSF_XML_NO_CONTENT, NULL, NULL),
@@ -10128,12 +10115,9 @@ static GsfXMLInNode const opendoc_content_dtd [] =
GSF_XML_IN_NODE (CELL_GRAPHIC, CELL_GRAPHIC, OO_NS_DRAW, "g", GSF_XML_NO_CONTENT, NULL, NULL), /* 2nd def */
GSF_XML_IN_NODE (CELL_GRAPHIC, DRAW_POLYLINE, OO_NS_DRAW, "polyline", GSF_XML_NO_CONTENT, NULL, NULL), /* 2nd def */
GSF_XML_IN_NODE (TABLE_CELL, DRAW_CONTROL, OO_NS_DRAW, "control", GSF_XML_NO_CONTENT, &od_draw_control_start, NULL),
- GSF_XML_IN_NODE (TABLE_CELL, DRAW_RECT, OO_NS_DRAW, "rect", GSF_XML_NO_CONTENT, &odf_rect, &od_draw_text_frame_end),
- GSF_XML_IN_NODE (DRAW_RECT, TEXT_CONTENT, OO_NS_TEXT, "p", GSF_XML_NO_CONTENT, NULL, NULL), /* 2nd def */
- GSF_XML_IN_NODE (TABLE_CELL, DRAW_LINE, OO_NS_DRAW, "line", GSF_XML_NO_CONTENT, &odf_line, &od_draw_frame_end),
- GSF_XML_IN_NODE (DRAW_LINE, DRAW_LINE_TEXT, OO_NS_TEXT, "p", GSF_XML_NO_CONTENT, NULL, NULL),
- GSF_XML_IN_NODE (TABLE_CELL, DRAW_ELLIPSE, OO_NS_DRAW, "ellipse", GSF_XML_NO_CONTENT, &odf_ellipse, &od_draw_frame_end),
- GSF_XML_IN_NODE (DRAW_ELLIPSE, DRAW_TEXT_BOX_TEXT, OO_NS_TEXT, "p", GSF_XML_CONTENT, NULL, &od_draw_text_box_p_end),
+ GSF_XML_IN_NODE (TABLE_CELL, DRAW_RECT, OO_NS_DRAW, "rect", GSF_XML_NO_CONTENT, NULL, NULL), /* 2nd def */
+ GSF_XML_IN_NODE (TABLE_CELL, DRAW_LINE, OO_NS_DRAW, "line", GSF_XML_NO_CONTENT, NULL, NULL), /* 2nd def */
+ GSF_XML_IN_NODE (TABLE_CELL, DRAW_ELLIPSE, OO_NS_DRAW, "ellipse", GSF_XML_NO_CONTENT, NULL, NULL), /* 2nd def */
GSF_XML_IN_NODE (TABLE_CELL, DRAW_FRAME, OO_NS_DRAW, "frame", GSF_XML_NO_CONTENT, NULL, NULL),/* 2nd def */
GSF_XML_IN_NODE (DRAW_FRAME, DRAW_OBJECT, OO_NS_DRAW, "object", GSF_XML_NO_CONTENT, &od_draw_object, NULL),
GSF_XML_IN_NODE (DRAW_OBJECT, DRAW_OBJECT_TEXT, OO_NS_TEXT, "p", GSF_XML_CONTENT, NULL, NULL),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]