summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2017-10-26 10:33:45 +0200
committerAndras Timar <andras.timar@collabora.com>2017-10-31 08:54:15 +0100
commite7a0948db44f049b1cf03a6e6fcaca7e63e88ac2 (patch)
tree5ea24bec184c7153f6c88f44cb424878a43f79d5
parent8c827202086256b8f5826d18268d50ada7b49b8c (diff)
ODP: export TextPreRotateAngle
Change-Id: I13eb005195ebbdee5016bf279cba423e388723a0 Reviewed-on: https://gerrit.libreoffice.org/43910 Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Tested-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/44079 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
-rwxr-xr-xsd/qa/unit/data/pptx/shape-text-rotate.pptxbin0 -> 33784 bytes
-rw-r--r--sd/qa/unit/export-tests.cxx24
-rw-r--r--xmloff/inc/EnhancedCustomShapeToken.hxx1
-rw-r--r--xmloff/source/draw/EnhancedCustomShapeToken.cxx1
-rw-r--r--xmloff/source/draw/shapeexport.cxx3
5 files changed, 28 insertions, 1 deletions
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 000000000000..4a433c748d32
--- /dev/null
+++ b/sd/qa/unit/data/pptx/shape-text-rotate.pptx
Binary files differ
diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx
index 6bbb2a53648b..f7240647814d 100644
--- a/sd/qa/unit/export-tests.cxx
+++ b/sd/qa/unit/export-tests.cxx
@@ -93,6 +93,7 @@ public:
void testTdf62176();
void testTransparentBackground();
void testEmbeddedPdf();
+ void testTextRotation();
CPPUNIT_TEST_SUITE(SdExportTest);
@@ -108,6 +109,7 @@ public:
CPPUNIT_TEST(testTdf62176);
CPPUNIT_TEST(testTransparentBackground);
CPPUNIT_TEST(testEmbeddedPdf);
+ CPPUNIT_TEST(testTextRotation);
CPPUNIT_TEST_SUITE_END();
@@ -653,6 +655,28 @@ void SdExportTest::testEmbeddedPdf()
#endif
}
+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<drawing::XDrawPage> xPage(getPage(0, xDocShRef));
+ uno::Reference<beans::XPropertySet> xPropSet(getShape(0, xPage));
+
+ CPPUNIT_ASSERT(xPropSet.is());
+
+ auto aGeomPropSeq = xPropSet->getPropertyValue("CustomShapeGeometry").get<uno::Sequence<beans::PropertyValue>>();
+ comphelper::SequenceAsHashMap aCustomShapeGeometry(aGeomPropSeq);
+
+ auto it = aCustomShapeGeometry.find("TextRotateAngle");
+ CPPUNIT_ASSERT(it != aCustomShapeGeometry.end());
+
+ CPPUNIT_ASSERT_EQUAL((double)(-90), aCustomShapeGeometry["TextRotateAngle"].get<double>());
+
+ 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 076ae2728fbd..9e6c25b49e4d 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 e4ec98689841..34786ce43d31 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -4268,10 +4268,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 );