From 93cdd851ee5917fa95e78d84734c73055b0edc4e 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. 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(-) diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 18e8c45e5204..bc0871cf9507 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -3663,6 +3664,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 c2dc342288a7..c28b45bd482a 100644 --- a/writerfilter/source/dmapper/SettingsTable.cxx +++ b/writerfilter/source/dmapper/SettingsTable.cxx @@ -68,6 +68,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 ) @@ -87,6 +88,7 @@ struct SettingsTable_Impl , m_bLinkStyles(false) , m_nZoomFactor(0) , m_bEvenAndOddHeaders(false) + , m_bUsePrinterMetrics(false) {} }; @@ -194,6 +196,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 @@ -226,6 +231,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 965636b22fcb..6c30f37cc4d1 100644 --- a/writerfilter/source/dmapper/SettingsTable.hxx +++ b/writerfilter/source/dmapper/SettingsTable.hxx @@ -63,6 +63,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 e51bd9626c7a..8e60b562d647 100644 --- a/writerfilter/source/filter/ImportFilter.cxx +++ b/writerfilter/source/filter/ImportFilter.cxx @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -179,7 +178,6 @@ void WriterFilter::setTargetDocument( const uno::Reference< lang::XComponent >& xSettings->setPropertyValue( "StylesNoDefault", uno::makeAny( sal_True ) ); xSettings->setPropertyValue("FloattableNomargins", uno::makeAny( sal_True )); - xSettings->setPropertyValue("PrinterIndependentLayout", uno::makeAny(document::PrinterIndependentLayout::DISABLED)); } void WriterFilter::setSourceDocument( const uno::Reference< lang::XComponent >& xDoc ) -- cgit