diff options
author | Sourav <sourav.mahajan@synerzip.com> | 2014-04-04 18:06:44 +0530 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-04-08 03:20:50 -0500 |
commit | 69eebf8735973a05c931182d2ebfe35ce25f4b1a (patch) | |
tree | 4cdb8edaadcc57d7c742d508c761549dda455993 /writerfilter | |
parent | ceb199692c42d86903bc4e7df11fa895c92e95c1 (diff) |
fdo76591:-Textbox property (order-> send behind text) is not preserved.
Z-Index was not handledin LO for vml.
I have made the changes to handle that using aGrabBag.
Change-Id: I2af3b2974c8eb699bc6a7b743dc438584d6517ac
Reviewed-on: https://gerrit.libreoffice.org/8833
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 2177596330ad..d6c97ed55874 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -59,6 +59,7 @@ #include <com/sun/star/text/ControlCharacter.hpp> #include <com/sun/star/text/XTextColumns.hpp> #include <oox/mathml/import.hxx> + #include <GraphicHelpers.hxx> #ifdef DEBUG_DOMAINMAPPER #include <resourcemodel/QNameToString.hxx> @@ -1735,16 +1736,30 @@ void DomainMapper_Impl::PushShapeContext( const uno::Reference< drawing::XShape if (xSInfo->supportsService("com.sun.star.text.TextFrame")) { // Extract the special "btLr text frame" mode, requested by oox, if needed. + // Extract vml ZOrder from FrameInteropGrabBag uno::Reference<beans::XPropertySet> xShapePropertySet(xShape, uno::UNO_QUERY); uno::Sequence<beans::PropertyValue> aGrabBag; xShapePropertySet->getPropertyValue("FrameInteropGrabBag") >>= aGrabBag; + bool checkBtLrStatus = false;bool checkZOredrStatus = false; + for (int i = 0; i < aGrabBag.getLength(); ++i) { if (aGrabBag[i].Name == "mso-layout-flow-alt") { m_bFrameBtLr = aGrabBag[i].Value.get<OUString>() == "bottom-to-top"; - break; + checkBtLrStatus = true; } + if (aGrabBag[i].Name == "VML-Z-ORDER") + { + GraphicZOrderHelper* pZOrderHelper = m_rDMapper.graphicZOrderHelper(); + sal_Int32 zOrder; + aGrabBag[i].Value >>= zOrder; + xShapePropertySet->setPropertyValue( "ZOrder", uno::makeAny(pZOrderHelper->findZOrder(zOrder))); + pZOrderHelper->addItem(xShapePropertySet, zOrder); + checkZOredrStatus = true; + } + if(checkBtLrStatus && checkZOredrStatus) + break; } uno::Reference<text::XTextContent> xTextContent(xShape, uno::UNO_QUERY_THROW); |