[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - filter/source sw/qa

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Mon Aug 10 11:28:08 UTC 2020


 filter/source/msfilter/escherex.cxx        |   20 ++++++++++++++++++++
 sw/qa/extras/ooxmlexport/ooxmlexport15.cxx |    2 ++
 2 files changed, 22 insertions(+)

New commits:
commit 2eb4fe77fa7d8e7e2154f9807e1eed0076e1d7e2
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Fri Aug 7 15:26:48 2020 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Mon Aug 10 13:27:35 2020 +0200

    filter: MSO export: convert TextWrap property to Escher_Wrap*
    
    There's a paucity of working wrapping modes in Escher unfortunately.
    
    Change-Id: Ibaf99c3249a6492dc129f9c9b5707778038f9a4c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100331
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>
    (cherry picked from commit 2cb90a5c87fe46737c8d840967d8836284f92ffd)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100353
    Reviewed-by: Xisco Fauli <xiscofauli at libreoffice.org>

diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 443d533ecadb..8bf8c779af64 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -61,6 +61,7 @@
 #include <com/sun/star/drawing/FlagSequence.hpp>
 #include <com/sun/star/drawing/PolygonFlags.hpp>
 #include <com/sun/star/text/WritingMode.hpp>
+#include <com/sun/star/text/WrapTextMode.hpp>
 #include <com/sun/star/drawing/TextVerticalAdjust.hpp>
 #include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
 #include <com/sun/star/drawing/EnhancedCustomShapeSegment.hpp>
@@ -692,6 +693,10 @@ void EscherPropertyContainer::CreateTextProperties(
     bool bWordWrap          ( false );
     bool bAutoGrowSize      ( false );
 
+    uno::Any aTextWrap;
+
+    EscherPropertyValueHelper::GetPropertyValue(aTextWrap, rXPropSet, "TextWrap", true);
+
     if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, "TextWritingMode", true ) )
         aAny >>= eWM;
     if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, "TextVerticalAdjust", true ) )
@@ -830,6 +835,21 @@ void EscherPropertyContainer::CreateTextProperties(
                 nTextAttr |= 0x20002;
         }
     }
+
+    if (aTextWrap.hasValue())
+    {   // explicit text wrap overrides whatever was inferred previously
+        switch (aTextWrap.get<text::WrapTextMode>())
+        {
+            case text::WrapTextMode_THROUGH:
+                eWrapMode = ESCHER_WrapNone;
+                break;
+            // in theory there are 3 more Escher_Wrap, but [MS-ODRAW] says they are useless
+            default:
+                eWrapMode = ESCHER_WrapSquare;
+                break;
+        }
+    }
+
     AddOpt( ESCHER_Prop_dxTextLeft, nLeft * 360 );
     AddOpt( ESCHER_Prop_dxTextRight, nRight * 360 );
     AddOpt( ESCHER_Prop_dyTextTop, nTop * 360 );
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx
index ad019ecd0504..67184ba57636 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx
@@ -82,6 +82,8 @@ DECLARE_OOXMLEXPORT_TEST(testAtPageShapeRelOrientation, "rotated_shape.fodt")
 
     // now test text rotation -> VML writing direction
     assertXPath(pXmlDocument, "/w:document/w:body/w:p/w:r/mc:AlternateContent[1]/mc:Fallback/w:pict/v:shape/v:textbox", "style", "mso-layout-flow-alt:bottom-to-top");
+    // text wrap -> VML
+    assertXPath(pXmlDocument, "/w:document/w:body/w:p/w:r/mc:AlternateContent[1]/mc:Fallback/w:pict/v:shape/w10:wrap", "type", "none");
 
 }
 


More information about the Libreoffice-commits mailing list