summaryrefslogtreecommitdiffstats
path: root/sw/source/filter/xml/xmlimpit.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/filter/xml/xmlimpit.cxx')
-rw-r--r--sw/source/filter/xml/xmlimpit.cxx29
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;