diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2012-08-27 14:06:12 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2012-09-28 14:46:16 +0200 |
commit | 47a971230b629b7e124044de0789ade7987db848 (patch) | |
tree | c194fc75582043ef33f75c1bf08ccef300eceb06 /writerfilter | |
parent | 681fbb8eb275db4fd2bf7357819e8a991b734109 (diff) |
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
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 7 | ||||
-rw-r--r-- | writerfilter/source/dmapper/SettingsTable.cxx | 10 | ||||
-rw-r--r-- | writerfilter/source/dmapper/SettingsTable.hxx | 2 | ||||
-rw-r--r-- | 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 ee6e2914f8ea..7bf663e90ec3 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -35,6 +35,7 @@ #include <com/sun/star/beans/XPropertyState.hpp> #include <com/sun/star/container/XIndexReplace.hpp> #include <com/sun/star/container/XNamed.hpp> +#include <com/sun/star/document/PrinterIndependentLayout.hpp> #include <com/sun/star/drawing/XDrawPageSupplier.hpp> #include <com/sun/star/drawing/XShapes.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> @@ -3610,6 +3611,12 @@ void DomainMapper_Impl::ApplySettingsTable() uno::Reference<document::XViewDataSupplier> 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 <com/sun/star/drawing/XDrawPageSupplier.hpp> #include <com/sun/star/io/XInputStream.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/document/PrinterIndependentLayout.hpp> #include <comphelper/mediadescriptor.hxx> #include <oox/core/filterdetect.hxx> #include <dmapper/DomainMapper.hxx> @@ -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 ) |