summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2012-08-27 14:06:12 +0200
committerMiklos Vajna <vmiklos@suse.cz>2012-09-28 14:46:16 +0200
commit47a971230b629b7e124044de0789ade7987db848 (patch)
treec194fc75582043ef33f75c1bf08ccef300eceb06 /writerfilter
parent681fbb8eb275db4fd2bf7357819e8a991b734109 (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.cxx7
-rw-r--r--writerfilter/source/dmapper/SettingsTable.cxx10
-rw-r--r--writerfilter/source/dmapper/SettingsTable.hxx2
-rw-r--r--writerfilter/source/filter/ImportFilter.cxx2
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 )