From 47a971230b629b7e124044de0789ade7987db848 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 27 Aug 2012 14:06:12 +0200 Subject: n#775899 docx import of w:usePrinterMetrics compat option This was set unconditionally, but it turns out it's not the default for docx, it's triggered by a compat flag there as well. (cherry picked from commit 93cdd851ee5917fa95e78d84734c73055b0edc4e) Conflicts: writerfilter/source/filter/ImportFilter.cxx Change-Id: I84dccfe7ffd49fbc6878b19ff4276f8a36b827a3 --- writerfilter/source/dmapper/DomainMapper_Impl.cxx | 7 +++++++ writerfilter/source/dmapper/SettingsTable.cxx | 10 ++++++++++ writerfilter/source/dmapper/SettingsTable.hxx | 2 ++ writerfilter/source/filter/ImportFilter.cxx | 2 -- 4 files changed, 19 insertions(+), 2 deletions(-) (limited to 'writerfilter') diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index ee6e2914f8ea..7bf663e90ec3 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -3610,6 +3611,12 @@ void DomainMapper_Impl::ApplySettingsTable() uno::Reference xViewDataSupplier(m_xTextDocument, uno::UNO_QUERY); xViewDataSupplier->setViewData(xIndexAccess); } + + if (m_pSettingsTable->GetUsePrinterMetrics()) + { + uno::Reference< beans::XPropertySet > xSettings(m_xTextFactory->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY); + xSettings->setPropertyValue("PrinterIndependentLayout", uno::makeAny(document::PrinterIndependentLayout::DISABLED)); + } } catch(const uno::Exception& ) { diff --git a/writerfilter/source/dmapper/SettingsTable.cxx b/writerfilter/source/dmapper/SettingsTable.cxx index 2a69cc67ab5a..21a6b3208002 100644 --- a/writerfilter/source/dmapper/SettingsTable.cxx +++ b/writerfilter/source/dmapper/SettingsTable.cxx @@ -77,6 +77,7 @@ struct SettingsTable_Impl bool m_bLinkStyles; sal_Int16 m_nZoomFactor; bool m_bEvenAndOddHeaders; + bool m_bUsePrinterMetrics; SettingsTable_Impl( DomainMapper& rDMapper, const uno::Reference< lang::XMultiServiceFactory > xTextFactory ) : m_rDMapper( rDMapper ) @@ -96,6 +97,7 @@ struct SettingsTable_Impl , m_bLinkStyles(false) , m_nZoomFactor(0) , m_bEvenAndOddHeaders(false) + , m_bUsePrinterMetrics(false) {} }; @@ -203,6 +205,9 @@ void SettingsTable::lcl_sprm(Sprm& rSprm) resolveSprmProps(*this, rSprm); } break; + case NS_ooxml::LN_CT_Compat_usePrinterMetrics: + m_pImpl->m_bUsePrinterMetrics = nIntValue; + break; default: { #ifdef DEBUG_DMAPPER_SETTINGS_TABLE @@ -235,6 +240,11 @@ sal_Int16 SettingsTable::GetZoomFactor() const return m_pImpl->m_nZoomFactor; } +bool SettingsTable::GetUsePrinterMetrics() const +{ + return m_pImpl->m_bUsePrinterMetrics; +} + bool SettingsTable::GetEvenAndOddHeaders() const { return m_pImpl->m_bEvenAndOddHeaders; diff --git a/writerfilter/source/dmapper/SettingsTable.hxx b/writerfilter/source/dmapper/SettingsTable.hxx index 2c43ec68710e..5123a9cea2a9 100644 --- a/writerfilter/source/dmapper/SettingsTable.hxx +++ b/writerfilter/source/dmapper/SettingsTable.hxx @@ -72,6 +72,8 @@ class WRITERFILTER_DLLPRIVATE SettingsTable : public LoggedProperties, public Lo bool GetEvenAndOddHeaders() const; + bool GetUsePrinterMetrics() const; + void ApplyProperties( uno::Reference< text::XTextDocument > xDoc ); private: diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx index 2b20cf80d71b..55febf6758fd 100644 --- a/writerfilter/source/filter/ImportFilter.cxx +++ b/writerfilter/source/filter/ImportFilter.cxx @@ -32,7 +32,6 @@ #include #include #include -#include #include #include #include @@ -185,7 +184,6 @@ void WriterFilter::setTargetDocument( const uno::Reference< lang::XComponent >& xSettings->setPropertyValue( rtl::OUString::createFromAscii( "UnbreakableNumberings" ), uno::makeAny( sal_True ) ); xSettings->setPropertyValue(rtl::OUString::createFromAscii("FloattableNomargins"), uno::makeAny( sal_True )); - xSettings->setPropertyValue(rtl::OUString::createFromAscii("PrinterIndependentLayout"), uno::makeAny(document::PrinterIndependentLayout::DISABLED)); } void WriterFilter::setSourceDocument( const uno::Reference< lang::XComponent >& xDoc ) -- cgit