From 69ce3374f90847f357249a41118314508da6bb98 Mon Sep 17 00:00:00 2001 From: László Németh Date: Tue, 18 Dec 2018 14:13:09 +0100 Subject: tdf#99631 DOCX import: keep zoom of embedded XLSX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OLE objects by importing their VisibleArea settings This also reverts commit 5c1a6c9adb5ccfbb869a0a7ac730d8860a1bf405 "tdf#99631 DOCX import: set 1:1 scale in embedded XLSX". Change-Id: I73dc945c86d0200e72767810b2ff39f233729080 Reviewed-on: https://gerrit.libreoffice.org/65343 Tested-by: Jenkins Reviewed-by: László Németh --- writerfilter/source/dmapper/DomainMapper_Impl.cxx | 8 ++++++++ writerfilter/source/dmapper/OLEHandler.cxx | 12 ++++++++++++ writerfilter/source/dmapper/OLEHandler.hxx | 4 ++++ 3 files changed, 24 insertions(+) (limited to 'writerfilter/source') diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 1a0238e59fac..244969372080 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -1753,6 +1753,14 @@ void DomainMapper_Impl::appendOLE( const OUString& rStreamName, const std::share xOLEProperties->setPropertyValue(getPropertyName( PROP_HEIGHT ), uno::makeAny(aSize.Height)); + OUString aVisAreaWidth = pOLEHandler->GetVisAreaWidth(); + if(!aVisAreaWidth.isEmpty()) + xOLEProperties->setPropertyValue("VisibleAreaWidth", uno::makeAny(aVisAreaWidth)); + + OUString aVisAreaHeight = pOLEHandler->GetVisAreaHeight(); + if(!aVisAreaHeight.isEmpty()) + xOLEProperties->setPropertyValue("VisibleAreaHeight", uno::makeAny(aVisAreaHeight)); + uno::Reference< graphic::XGraphic > xGraphic = pOLEHandler->getReplacement(); xOLEProperties->setPropertyValue(getPropertyName( PROP_GRAPHIC ), uno::makeAny(xGraphic)); diff --git a/writerfilter/source/dmapper/OLEHandler.cxx b/writerfilter/source/dmapper/OLEHandler.cxx index dee9ceb22ae1..fad449489e3c 100644 --- a/writerfilter/source/dmapper/OLEHandler.cxx +++ b/writerfilter/source/dmapper/OLEHandler.cxx @@ -95,8 +95,10 @@ void OLEHandler::lcl_attribute(Id rName, Value & rVal) rVal.getAny() >>= m_xInputStream; break; case NS_ooxml::LN_CT_Object_dxaOrig: + m_sVisAreaWidth = sStringValue; break; case NS_ooxml::LN_CT_Object_dyaOrig: + m_sVisAreaHeight = sStringValue; break; case NS_ooxml::LN_shape: { @@ -262,6 +264,16 @@ OUString const & OLEHandler::GetDrawAspect() const return m_sDrawAspect; } +OUString const & OLEHandler::GetVisAreaWidth() const +{ + return m_sVisAreaWidth; +} + +OUString const & OLEHandler::GetVisAreaHeight() const +{ + return m_sVisAreaHeight; +} + OUString OLEHandler::copyOLEOStream( uno::Reference const& xTextDocument) { diff --git a/writerfilter/source/dmapper/OLEHandler.hxx b/writerfilter/source/dmapper/OLEHandler.hxx index 6ba2fb34ae1a..b0aae530f37a 100644 --- a/writerfilter/source/dmapper/OLEHandler.hxx +++ b/writerfilter/source/dmapper/OLEHandler.hxx @@ -52,6 +52,8 @@ class OLEHandler : public LoggedProperties OUString m_sProgId; OUString m_sShapeId; OUString m_sDrawAspect; + OUString m_sVisAreaWidth; + OUString m_sVisAreaHeight; OUString m_sObjectId; OUString m_sr_id; /// The stream URL right after the import of the raw data. @@ -90,6 +92,8 @@ public: OUString getCLSID(const css::uno::Reference& xComponentContext) const; OUString const & GetDrawAspect() const; + OUString const & GetVisAreaWidth() const; + OUString const & GetVisAreaHeight() const; OUString copyOLEOStream(css::uno::Reference const& xTextDocument); -- cgit v1.2.3