summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2012-08-27 14:06:12 +0200
committerMiklos Vajna <vmiklos@suse.cz>2012-08-27 14:09:14 +0200
commit93cdd851ee5917fa95e78d84734c73055b0edc4e (patch)
treea9e04837f6de9de69baec246e36040adb92629d0
parentc4ab4d3b2aa01f37bc38485fdee9ed59c68cb770 (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.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 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 )