[Libreoffice-commits] core.git: sw/qa xmloff/source

Mark Hung marklh9 at gmail.com
Sun Mar 25 04:55:50 UTC 2018


 sw/qa/extras/odfexport/odfexport.cxx |    3 +++
 xmloff/source/text/txtprhdl.cxx      |    9 +--------
 xmloff/source/text/txtprmap.cxx      |    6 ++++--
 3 files changed, 8 insertions(+), 10 deletions(-)

New commits:
commit 1401f5fbc8427178371b2d6add11510e06e6414f
Author: Mark Hung <marklh9 at gmail.com>
Date:   Fri Mar 9 22:41:34 2018 +0800

    xmloff: export ruby-position in a more compatible way.
    
    Export both style:ruby-position and loext:ruby-position.
    The later one only allows "above" and "below", obeying
    ODF standard while the former one allows "inter-character",
    which is added lately. Also use ODFVER_012_EXT_COMPAT
    so that loext:ruby-position isn't exported only in
    extended mode.
    
    Change-Id: I7b9208f289f8253a835b2f7751549206361274e0
    Reviewed-on: https://gerrit.libreoffice.org/51007
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Mark Hung <marklh9 at gmail.com>

diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx
index 9d1c60811f78..7566ec25ad6e 100644
--- a/sw/qa/extras/odfexport/odfexport.cxx
+++ b/sw/qa/extras/odfexport/odfexport.cxx
@@ -1921,7 +1921,10 @@ DECLARE_ODFEXPORT_TEST(testReferenceLanguage, "referencelanguage.odt")
 DECLARE_ODFEXPORT_TEST(testRubyPosition, "ruby-position.odt")
 {
     if (xmlDocPtr pXmlDoc = parseExport("content.xml"))
+    {
         assertXPath(pXmlDoc, "//style:style[@style:family='ruby']/style:ruby-properties[@loext:ruby-position='inter-character']", 1);
+        assertXPath(pXmlDoc, "//style:style[@style:family='ruby']/style:ruby-properties[@style:ruby-position='below']", 1);
+    }
 }
 
 DECLARE_ODFEXPORT_TEST(testBulletAsImage, "BulletAsImage.odt")
diff --git a/xmloff/source/text/txtprhdl.cxx b/xmloff/source/text/txtprhdl.cxx
index 482dd4f02aee..4ca595d30691 100644
--- a/xmloff/source/text/txtprhdl.cxx
+++ b/xmloff/source/text/txtprhdl.cxx
@@ -209,13 +209,6 @@ static SvXMLEnumMapEntry<sal_Int16> const pXML_RubyPosition_Enum[] =
     { XML_TOKEN_INVALID,        0 }
 };
 
-static SvXMLEnumMapEntry<sal_Int16> const pXML_RubyIsAbove_Enum[] =
-{
-    { XML_ABOVE,                RubyPosition::ABOVE},
-    { XML_BELOW,                RubyPosition::BELOW},
-    { XML_TOKEN_INVALID,        0 }
-};
-
 static SvXMLEnumMapEntry<sal_uInt16> const pXML_FontRelief_Enum[] =
 {
     { XML_NONE,             FontRelief::NONE        },
@@ -1309,7 +1302,7 @@ static const XMLPropertyHandler *GetPropertyHandler
         pHdl = new XMLConstantsPropertyHandler( pXML_RubyPosition_Enum, XML_TOKEN_INVALID );
         break;
     case XML_TYPE_TEXT_RUBY_IS_ABOVE:
-        pHdl = new XMLConstantsPropertyHandler( pXML_RubyIsAbove_Enum, XML_TOKEN_INVALID );
+        pHdl = new XMLNamedBoolPropertyHdl(::xmloff::token::XML_ABOVE, ::xmloff::token::XML_BELOW);
         break;
     // OD 2004-05-05 #i28701#
     case XML_TYPE_WRAP_INFLUENCE_ON_POSITION:
diff --git a/xmloff/source/text/txtprmap.cxx b/xmloff/source/text/txtprmap.cxx
index ae484f236f5b..99693da63e21 100644
--- a/xmloff/source/text/txtprmap.cxx
+++ b/xmloff/source/text/txtprmap.cxx
@@ -65,6 +65,8 @@ using namespace ::xmloff::token;
 // ruby properties
 #define MR_E( a, p, l, t, c ) \
     M_E_( a, p, l, (t|XML_TYPE_PROP_RUBY), c )
+#define MR_EV( a, p, l, t, c, v ) \
+    M_EV_( a, p, l, (t|XML_TYPE_PROP_RUBY), c, v )
 
 // cell properties
 #define MC_E( a, p, l, t, c ) \
@@ -964,8 +966,8 @@ XMLPropertyMapEntry const aXMLSectionPropMap[] =
 XMLPropertyMapEntry const aXMLRubyPropMap[] =
 {
     MR_E( "RubyAdjust", STYLE, RUBY_ALIGN, XML_TYPE_TEXT_RUBY_ADJUST, 0 ),
-    MR_E( "RubyPosition",    STYLE, RUBY_POSITION, XML_TYPE_TEXT_RUBY_IS_ABOVE, 0 ),
-    MR_E( "RubyPosition",   LO_EXT, RUBY_POSITION, XML_TYPE_TEXT_RUBY_POSITION | MID_FLAG_MERGE_PROPERTY, 0 ),
+    MR_E( "RubyIsAbove",    STYLE, RUBY_POSITION, XML_TYPE_TEXT_RUBY_IS_ABOVE, 0 ),
+    MR_EV( "RubyPosition",   LO_EXT, RUBY_POSITION, XML_TYPE_TEXT_RUBY_POSITION, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT),
     M_END()
 };
 


More information about the Libreoffice-commits mailing list