summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2017-10-06 16:04:25 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-10-31 15:29:31 +0100
commit27b4c48e63d95fd90ab3f4c5014b98cdf94ae611 (patch)
treeadbbf1336a5f49ad4d2628237bbedab239a958d7 /oox
parent6b51d804949b6860ffac4480c27e540558cb44d3 (diff)
SmartArt: export text rotation in the PPTX
Slightly modified unittest from master. libreoffice-5-4 doesn't export shape groups so far. Change-Id: I74bfc172fe7434d14de468ecfd3412636e53780c Reviewed-on: https://gerrit.libreoffice.org/43202 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/43364 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'oox')
-rw-r--r--oox/source/export/chartexport.cxx22
-rw-r--r--oox/source/export/drawingml.cxx4
2 files changed, 4 insertions, 22 deletions
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 28f8c6c4d7f8..a3a1e957a76f 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -1038,26 +1038,6 @@ void ChartExport::exportLegend( const Reference< css::chart::XChartDocument >& x
pFS->endElement( FSNS( XML_c, XML_legend ) );
}
-namespace {
-
-/**
- * nRotation is a 100th of a degree and the return value is
- * in a 60,000th of a degree
- *
- * Also rotation is in opposite directions so multiply with -1
- */
-OString calcRotationValue(sal_Int32 nRotation)
-{
- if (nRotation > 18000) // 180 degree
- {
- nRotation -= 36000;
- }
- nRotation *= -600;
- return OString::number(nRotation);
-}
-
-}
-
void ChartExport::exportTitle( const Reference< XShape >& xShape )
{
OUString sText;
@@ -1090,7 +1070,7 @@ void ChartExport::exportTitle( const Reference< XShape >& xShape )
pFS->singleElement( FSNS( XML_a, XML_bodyPr ),
XML_vert, sWritingMode,
- XML_rot, calcRotationValue(nRotation).getStr(),
+ XML_rot, oox::drawingml::calcRotationValue(nRotation).getStr(),
FSEND );
// TODO: lstStyle
pFS->singleElement( FSNS( XML_a, XML_lstStyle ),
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 48720d923144..506370a5e5a2 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -2098,6 +2098,8 @@ void DrawingML::WriteText( const Reference< XInterface >& rXIface, const OUStrin
if( !xXText.is() )
return;
+ sal_Int32 nTextRotateAngle = 0;
+
#define DEFLRINS 254
#define DEFTBINS 127
sal_Int32 nLeft, nRight, nTop, nBottom;
@@ -2137,7 +2139,6 @@ void DrawingML::WriteText( const Reference< XInterface >& rXIface, const OUStrin
{
for ( sal_Int32 i = 0, nElems = aProps.getLength(); i < nElems; ++i )
{
- sal_Int32 nTextRotateAngle = 0;
if ( aProps[ i ].Name == "TextPreRotateAngle" && ( aProps[ i ].Value >>= nTextRotateAngle ) )
{
if ( nTextRotateAngle == -90 )
@@ -2194,6 +2195,7 @@ void DrawingML::WriteText( const Reference< XInterface >& rXIface, const OUStrin
XML_anchor, sVerticalAlignment,
XML_anchorCtr, bHorizontalCenter ? "1" : nullptr,
XML_vert, sWritingMode,
+ XML_rot, (nTextRotateAngle != 0) ? oox::drawingml::calcRotationValue( nTextRotateAngle * 100 ).getStr() : nullptr,
FSEND );
if( !presetWarp.isEmpty())
{