diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2012-08-27 14:06:12 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2012-08-27 14:09:14 +0200 |
commit | 93cdd851ee5917fa95e78d84734c73055b0edc4e (patch) | |
tree | a9e04837f6de9de69baec246e36040adb92629d0 | |
parent | c4ab4d3b2aa01f37bc38485fdee9ed59c68cb770 (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.
Change-Id: I84dccfe7ffd49fbc6878b19ff4276f8a36b827a3
-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 18e8c45e5204..bc0871cf9507 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -26,6 +26,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> @@ -3663,6 +3664,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 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 <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> @@ -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 ) |