summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oox/source/export/shapes.cxx19
1 files changed, 16 insertions, 3 deletions
diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx
index f26a5278cb57..dab14ce6ad16 100644
--- a/oox/source/export/shapes.cxx
+++ b/oox/source/export/shapes.cxx
@@ -822,11 +822,18 @@ void ShapeExport::WriteGraphicObjectShapePart( Reference< XShape > xShape, const
if( NonEmptyText( xShape ) )
{
- WriteTextShape( xShape );
+ // avoid treating all 'IsPresentationObject' objects as having text.
+ Reference< XSimpleText > xText( xShape, UNO_QUERY );
- //DBG(dump_pset(mXPropSet));
+ if( xText.is() && xText->getString().getLength() )
+ {
+ DBG(printf("graphicObject: wrote only text\n"));
- return;
+ WriteTextShape( xShape );
+
+ //DBG(dump_pset(mXPropSet));
+ return;
+ }
}
DBG(printf("graphicObject without text\n"));
@@ -1124,6 +1131,12 @@ static const NameToConvertMapType& lcl_GetConverters()
shape_converters[ "com.sun.star.drawing.OLE2Shape" ] = &ShapeExport::WriteOLE2Shape;
shape_converters[ "com.sun.star.drawing.TableShape" ] = &ShapeExport::WriteTableShape;
shape_converters[ "com.sun.star.drawing.TextShape" ] = &ShapeExport::WriteTextShape;
+
+ shape_converters[ "com.sun.star.presentation.GraphicObjectShape" ] = &ShapeExport::WriteGraphicObjectShape;
+ shape_converters[ "com.sun.star.presentation.OLE2Shape" ] = &ShapeExport::WriteOLE2Shape;
+ shape_converters[ "com.sun.star.presentation.TableShape" ] = &ShapeExport::WriteTableShape;
+ shape_converters[ "com.sun.star.presentation.TextShape" ] = &ShapeExport::WriteTextShape;
+
shape_converters[ "com.sun.star.presentation.DateTimeShape" ] = &ShapeExport::WriteTextShape;
shape_converters[ "com.sun.star.presentation.FooterShape" ] = &ShapeExport::WriteTextShape;
shape_converters[ "com.sun.star.presentation.HeaderShape" ] = &ShapeExport::WriteTextShape;