sw/Library_sw_writerfilter.mk | 1 + sw/inc/unotxdoc.hxx | 2 ++ sw/source/core/inc/SwXTextDefaults.hxx | 3 ++- sw/source/uibase/uno/unotxdoc.cxx | 8 ++++++++ sw/source/writerfilter/dmapper/DomainMapper.cxx | 4 ++-- sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx | 3 ++- sw/source/writerfilter/dmapper/StyleSheetTable.cxx | 7 +++---- 7 files changed, 20 insertions(+), 8 deletions(-)
New commits: commit a77caf28bac50fe8e3592416d5dedf894a02cbbb Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Apr 24 12:26:00 2024 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sat Apr 27 15:56:28 2024 +0200 use more concrete UNO classes in writerfilter (SwXTextDefaults) Change-Id: I44eb8d4561798980ff7008d843bf076fc29582c6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166769 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sw/Library_sw_writerfilter.mk b/sw/Library_sw_writerfilter.mk index 3be1a2d937c6..c48e727a5b85 100644 --- a/sw/Library_sw_writerfilter.mk +++ b/sw/Library_sw_writerfilter.mk @@ -20,6 +20,7 @@ $(eval $(call gb_Library_set_precompiled_header,sw_writerfilter,sw/inc/pch/preco $(eval $(call gb_Library_set_include,sw_writerfilter,\ $$(INCLUDE) \ -I$(SRCDIR)/sw/inc \ + -I$(SRCDIR)/sw/source/core/inc \ -I$(SRCDIR)/sw/source/uibase/uno/ \ -I$(SRCDIR)/sw/source/writerfilter/inc \ -I$(SRCDIR)/sw/source/writerfilter \ diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx index ab655c6019c4..30edc2fb7c84 100644 --- a/sw/inc/unotxdoc.hxx +++ b/sw/inc/unotxdoc.hxx @@ -106,6 +106,7 @@ class SwXReferenceMarks; class SwXLinkTargetSupplier; class SwXRedlines; class SwXDocumentSettings; +class SwXTextDefaults; namespace com::sun::star::container { class XNameContainer; } namespace com::sun::star::frame { class XController; } namespace com::sun::star::lang { struct Locale; } @@ -509,6 +510,7 @@ public: SwDocShell* GetDocShell() {return m_pDocShell;} SW_DLLPUBLIC rtl::Reference<SwXDocumentSettings> createDocumentSettings(); + SW_DLLPUBLIC rtl::Reference<SwXTextDefaults> createTextDefaults(); }; class SwXLinkTargetSupplier final : public cppu::WeakImplHelper diff --git a/sw/source/core/inc/SwXTextDefaults.hxx b/sw/source/core/inc/SwXTextDefaults.hxx index 0acab2a7d257..87743eb0cee7 100644 --- a/sw/source/core/inc/SwXTextDefaults.hxx +++ b/sw/source/core/inc/SwXTextDefaults.hxx @@ -19,6 +19,7 @@ #pragma once +#include <swdllapi.h> #include <cppuhelper/implbase.hxx> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/beans/XPropertyState.hpp> @@ -27,7 +28,7 @@ class SwDoc; class SfxItemPropertySet; -class SwXTextDefaults final : public cppu::WeakImplHelper +class SW_DLLPUBLIC SwXTextDefaults final : public cppu::WeakImplHelper < css::beans::XPropertyState, css::beans::XPropertySet, diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index f93d7438f363..3bbaa1014aff 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -175,6 +175,7 @@ #include <textcontentcontrol.hxx> #include <unocontentcontrol.hxx> #include <unoport.hxx> +#include <SwXTextDefaults.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::text; @@ -1659,6 +1660,13 @@ rtl::Reference< SwXDocumentSettings > SwXTextDocument::createDocumentSettings() return new SwXDocumentSettings(this); } +rtl::Reference< SwXTextDefaults > SwXTextDocument::createTextDefaults() +{ + SolarMutexGuard aGuard; + ThrowIfInvalid(); + return new SwXTextDefaults(&GetDocOrThrow()); +} + Reference< XInterface > SwXTextDocument::createInstance(const OUString& rServiceName) { return create(rServiceName, nullptr); diff --git a/sw/source/writerfilter/dmapper/DomainMapper.cxx b/sw/source/writerfilter/dmapper/DomainMapper.cxx index 5a9f84aa3b0d..7d48b265f079 100644 --- a/sw/source/writerfilter/dmapper/DomainMapper.cxx +++ b/sw/source/writerfilter/dmapper/DomainMapper.cxx @@ -92,6 +92,7 @@ #include <sal/log.hxx> #include <tools/UnitConversion.hxx> #include <unotxdoc.hxx> +#include <SwXTextDefaults.hxx> using namespace ::com::sun::star; using namespace oox; @@ -172,8 +173,7 @@ DomainMapper::DomainMapper( const uno::Reference< uno::XComponentContext >& xCon // the intended font to provide best layout match. try { - uno::Reference< beans::XPropertySet > xDefProps(GetTextDocument()->createInstance("com.sun.star.text.Defaults"), - uno::UNO_QUERY_THROW); + rtl::Reference<SwXTextDefaults> xDefProps(GetTextDocument()->createTextDefaults()); xDefProps->setPropertyValue(getPropertyName(PROP_CHAR_FONT_NAME), css::uno::Any(OUString("Calibri"))); xDefProps->setPropertyValue(getPropertyName(PROP_CHAR_HEIGHT), css::uno::Any(double(11))); } diff --git a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx index c9f8e4d2b077..db22d7f25fe6 100644 --- a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx +++ b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx @@ -133,6 +133,7 @@ #include <unicode/regex.h> #include <unotxdoc.hxx> #include <SwXDocumentSettings.hxx> +#include <SwXTextDefaults.hxx> #define REFFLDFLAG_STYLE_FROM_BOTTOM 0xc100 #define REFFLDFLAG_STYLE_HIDE_NON_NUMERICAL 0xc200 @@ -9564,7 +9565,7 @@ void DomainMapper_Impl::ApplySettingsTable() try { - uno::Reference< beans::XPropertySet > xTextDefaults(m_xTextDocument->createInstance("com.sun.star.text.Defaults"), uno::UNO_QUERY_THROW ); + rtl::Reference< SwXTextDefaults > xTextDefaults(m_xTextDocument->createTextDefaults()); sal_Int32 nDefTab = m_pSettingsTable->GetDefaultTabStop(); xTextDefaults->setPropertyValue( getPropertyName( PROP_TAB_STOP_DISTANCE ), uno::Any(nDefTab) ); if (m_pSettingsTable->GetLinkStyles()) diff --git a/sw/source/writerfilter/dmapper/StyleSheetTable.cxx b/sw/source/writerfilter/dmapper/StyleSheetTable.cxx index ff121c5bf227..6fb1b60c6d91 100644 --- a/sw/source/writerfilter/dmapper/StyleSheetTable.cxx +++ b/sw/source/writerfilter/dmapper/StyleSheetTable.cxx @@ -53,6 +53,7 @@ #include <comphelper/diagnose_ex.hxx> #include <o3tl/sorted_vector.hxx> #include <unotxdoc.hxx> +#include <SwXTextDefaults.hxx> using namespace ::com::sun::star; @@ -273,7 +274,7 @@ struct StyleSheetTable_Impl { DomainMapper& m_rDMapper; rtl::Reference<SwXTextDocument> m_xTextDocument; - uno::Reference< beans::XPropertySet> m_xTextDefaults; + rtl::Reference<SwXTextDefaults> m_xTextDefaults; std::vector< StyleSheetEntryPtr > m_aStyleSheetEntries; std::map< OUString, StyleSheetEntryPtr > m_aStyleSheetEntriesMap; std::map<OUString, OUString> m_ClonedTOCStylesMap; @@ -1720,9 +1721,7 @@ void StyleSheetTable::applyDefaults(bool bParaProperties) if(!m_pImpl->m_xTextDefaults.is()) { - m_pImpl->m_xTextDefaults.set( - m_pImpl->m_rDMapper.GetTextDocument()->createInstance("com.sun.star.text.Defaults"), - uno::UNO_QUERY_THROW ); + m_pImpl->m_xTextDefaults = m_pImpl->m_rDMapper.GetTextDocument()->createTextDefaults(); } // WARNING: these defaults only take effect IF there is a DocDefaults style section. Normally there is, but not always.