sw/qa/extras/ww8export/data/tdf70838b_verticalRotation.odt |binary sw/qa/extras/ww8export/ww8export2.cxx | 12 ++++++++++++ sw/source/filter/ww8/wrtw8esh.cxx | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-)
New commits: commit fc32fd280efe27f7618b4905ffc232a824cf9666 Author: Justin Luth <justin_l...@sil.org> Date: Thu Jun 28 15:48:40 2018 +0300 tdf#118421 ww8export: rotate vertically: not Lines or groups Lines and Groups often are exceptions. Normally, the import code swaps vertical rotations also. In the case of lines (from the tests that I observed) lines don't have a rotation value at that point during import, so no correction is made. Grouping always messes things up. Change-Id: I344c5a29f887294b751ffc87c01b30e472cfb4c2 Reviewed-on: https://gerrit.libreoffice.org/56595 Reviewed-by: Justin Luth <justin_l...@sil.org> Tested-by: Justin Luth <justin_l...@sil.org> (cherry picked from commit 1cedd88d40a26a55ce433f8b742215aea83a5382) Reviewed-on: https://gerrit.libreoffice.org/56654 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/sw/qa/extras/ww8export/data/tdf70838b_verticalRotation.odt b/sw/qa/extras/ww8export/data/tdf70838b_verticalRotation.odt new file mode 100644 index 000000000000..556f2564c7a2 Binary files /dev/null and b/sw/qa/extras/ww8export/data/tdf70838b_verticalRotation.odt differ diff --git a/sw/qa/extras/ww8export/ww8export2.cxx b/sw/qa/extras/ww8export/ww8export2.cxx index c1af4cb538b1..aa6879fa139d 100644 --- a/sw/qa/extras/ww8export/ww8export2.cxx +++ b/sw/qa/extras/ww8export/ww8export2.cxx @@ -314,6 +314,18 @@ DECLARE_WW8EXPORT_TEST(testTdf70838, "tdf70838.odt") CPPUNIT_ASSERT( aRect.GetHeight() > aRect.GetWidth() ); } +DECLARE_WW8EXPORT_TEST(testTdf70838b_verticalRotation, "tdf70838b_verticalRotation.odt") +{ + SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument *>(mxComponent.get()); + SwDoc* pDoc = pTextDoc->GetDocShell()->GetDoc(); + SdrPage* pPage = pDoc->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0); + tools::Rectangle aGroupShape = pPage->GetObj(0)->GetSnapRect(); + tools::Rectangle aLine = pPage->GetObj(2)->GetSnapRect(); + + CPPUNIT_ASSERT_MESSAGE("Smiley faces are round", aGroupShape.GetHeight() > aGroupShape.GetWidth()); + CPPUNIT_ASSERT_MESSAGE("Line is taller, not wider", aLine.GetHeight() > aLine.GetWidth()); +} + DECLARE_WW8EXPORT_TEST( testActiveXCheckbox, "checkbox_control.odt" ) { // First check box anchored as a floating object diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx index 8f34da90d5ed..81e72a5096f6 100644 --- a/sw/source/filter/ww8/wrtw8esh.cxx +++ b/sw/source/filter/ww8/wrtw8esh.cxx @@ -692,7 +692,8 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const // rotating to vertical means swapping height and width as seen in SvxMSDffManager::ImportShape const long nAngle = NormAngle360( pObj->GetRotateAngle() ); - if ( ( nAngle > 4500 && nAngle <= 13500 ) || ( nAngle > 22500 && nAngle <= 31500 ) ) + const bool bAllowSwap = pObj->GetObjIdentifier() != OBJ_LINE && pObj->GetObjIdentifier() != OBJ_GRUP; + if ( bAllowSwap && (( nAngle > 4500 && nAngle <= 13500 ) || ( nAngle > 22500 && nAngle <= 31500 )) ) { const long nWidth = aRect.getWidth(); const long nHeight = aRect.getHeight(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits