From bb72ef2a15b0a08b07256f1bb3a0c96c413e8da8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20K=C5=82os?= Date: Thu, 26 Oct 2017 10:33:45 +0200 Subject: [PATCH] ODP: export TextPreRotateAngle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I13eb005195ebbdee5016bf279cba423e388723a0 Reviewed-on: https://gerrit.libreoffice.org/43910 Reviewed-by: Szymon Kłos Tested-by: Szymon Kłos --- sd/qa/unit/data/pptx/shape-text-rotate.pptx | Bin 0 -> 33784 bytes sd/qa/unit/export-tests.cxx | 24 ++++++++++++++++++ xmloff/inc/EnhancedCustomShapeToken.hxx | 1 + .../source/draw/EnhancedCustomShapeToken.cxx | 1 + xmloff/source/draw/shapeexport.cxx | 3 ++- 5 files changed, 28 insertions(+), 1 deletion(-) create mode 100755 sd/qa/unit/data/pptx/shape-text-rotate.pptx diff --git a/sd/qa/unit/data/pptx/shape-text-rotate.pptx b/sd/qa/unit/data/pptx/shape-text-rotate.pptx new file mode 100755 index 0000000000000000000000000000000000000000..4a433c748d32eb56b2e9160f0029859cbf9e45fe GIT binary patch literal 33784 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 } +void SdExportTest::testTextRotation() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/shape-text-rotate.pptx"), PPTX); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile); + + uno::Reference xPage(getPage(0, xDocShRef)); + uno::Reference xPropSet(getShape(0, xPage)); + + CPPUNIT_ASSERT(xPropSet.is()); + + auto aGeomPropSeq = xPropSet->getPropertyValue("CustomShapeGeometry").get>(); + comphelper::SequenceAsHashMap aCustomShapeGeometry(aGeomPropSeq); + + auto it = aCustomShapeGeometry.find("TextRotateAngle"); + CPPUNIT_ASSERT(it != aCustomShapeGeometry.end()); + + CPPUNIT_ASSERT_EQUAL((double)(-90), aCustomShapeGeometry["TextRotateAngle"].get()); + + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/xmloff/inc/EnhancedCustomShapeToken.hxx b/xmloff/inc/EnhancedCustomShapeToken.hxx index dafe8b8ec8ec..92e200333dbc 100644 --- a/xmloff/inc/EnhancedCustomShapeToken.hxx +++ b/xmloff/inc/EnhancedCustomShapeToken.hxx @@ -93,6 +93,7 @@ namespace xmloff { namespace EnhancedCustomShapeToken { EAS_MirroredY, EAS_ViewBox, EAS_TextRotateAngle, + EAS_TextPreRotateAngle, EAS_ExtrusionAllowed, EAS_ConcentricGradientFillAllowed, EAS_TextPathAllowed, diff --git a/xmloff/source/draw/EnhancedCustomShapeToken.cxx b/xmloff/source/draw/EnhancedCustomShapeToken.cxx index 91ee72b9fe45..bd4427b4affd 100644 --- a/xmloff/source/draw/EnhancedCustomShapeToken.cxx +++ b/xmloff/source/draw/EnhancedCustomShapeToken.cxx @@ -108,6 +108,7 @@ static const TokenTable pTokenTableArray[] = { "MirroredY", EAS_MirroredY }, { "ViewBox", EAS_ViewBox }, { "TextRotateAngle", EAS_TextRotateAngle }, + { "TextPreRotateAngle", EAS_TextPreRotateAngle }, { "ExtrusionAllowed", EAS_ExtrusionAllowed }, { "TextPathAllowed", EAS_TextPathAllowed }, { "ConcentricGradientFillAllowed", EAS_ConcentricGradientFillAllowed }, diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx index bab38ebaeb9b..aff07db2e138 100644 --- a/xmloff/source/draw/shapeexport.cxx +++ b/xmloff/source/draw/shapeexport.cxx @@ -4251,10 +4251,11 @@ void ImpExportEnhancedGeometry( SvXMLExport& rExport, const uno::Reference< bean } } break; + case EAS_TextPreRotateAngle : case EAS_TextRotateAngle : { double fTextRotateAngle = 0; - if ( rGeoProp.Value >>= fTextRotateAngle ) + if ( ( rGeoProp.Value >>= fTextRotateAngle ) && fTextRotateAngle != 0 ) { ::sax::Converter::convertDouble( aStrBuffer, fTextRotateAngle );