diff options
Diffstat (limited to 'sw/source/filter/xml/xmlimpit.cxx')
-rw-r--r-- | sw/source/filter/xml/xmlimpit.cxx | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/sw/source/filter/xml/xmlimpit.cxx b/sw/source/filter/xml/xmlimpit.cxx index 1e921ac9dce6..0ba10f9cfd25 100644 --- a/sw/source/filter/xml/xmlimpit.cxx +++ b/sw/source/filter/xml/xmlimpit.cxx @@ -42,6 +42,7 @@ #include <editeng/formatbreakitem.hxx> #include <editeng/keepitem.hxx> #include <editeng/brushitem.hxx> +#include <editeng/frmdir.hxx> #include <fmtpdsc.hxx> #include <fmtornt.hxx> #include <fmtfsize.hxx> @@ -52,6 +53,7 @@ #include <xmloff/xmlprhdl.hxx> #include "xmlithlp.hxx" #include <com/sun/star/uno/Any.hxx> +#include <sal/log.hxx> using ::editeng::SvxBorderLine; using namespace ::com::sun::star; @@ -905,14 +907,25 @@ bool SvXMLImportItemMapper::PutXMLValue( case RES_FRAMEDIR: { - std::unique_ptr<XMLPropertyHandler> pWritingModeHandler = - XMLPropertyHandlerFactory::CreatePropertyHandler( - XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT ); - Any aAny; - bOk = pWritingModeHandler->importXML( rValue, aAny, - rUnitConverter ); - if( bOk ) - bOk = rItem.PutValue( aAny, 0 ); + if (IsXMLToken(rValue, XML_BT_LR)) + { + // Read bt-lr from the extension namespace, handle other values + // below. + Any aAny; + aAny <<= static_cast<sal_uInt16>(SvxFrameDirection::Vertical_LR_BT); + bOk = rItem.PutValue(aAny, 0); + } + else + { + std::unique_ptr<XMLPropertyHandler> pWritingModeHandler = + XMLPropertyHandlerFactory::CreatePropertyHandler( + XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT ); + Any aAny; + bOk = pWritingModeHandler->importXML( rValue, aAny, + rUnitConverter ); + if( bOk ) + bOk = rItem.PutValue( aAny, 0 ); + } } break; |