summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/inc/fmtfld.hxx10
-rw-r--r--sw/inc/fmtftn.hxx9
-rw-r--r--sw/inc/fmtmeta.hxx8
-rw-r--r--sw/inc/fmtrfmrk.hxx9
-rw-r--r--sw/inc/formatcontentcontrol.hxx10
-rw-r--r--sw/inc/formatlinebreak.hxx14
-rw-r--r--sw/inc/ndtxt.hxx9
-rw-r--r--sw/inc/section.hxx9
-rw-r--r--sw/inc/tox.hxx11
-rw-r--r--sw/inc/unoframe.hxx17
-rw-r--r--sw/inc/unoparagraph.hxx2
-rw-r--r--sw/inc/unotbl.hxx2
-rw-r--r--sw/inc/unotextbodyhf.hxx2
-rw-r--r--sw/inc/unotxdoc.hxx1
-rw-r--r--sw/qa/extras/layout/layout.cxx9
-rw-r--r--sw/source/core/crsr/bookmark.cxx7
-rw-r--r--sw/source/core/doc/rdfhelper.cxx8
-rw-r--r--sw/source/core/doc/textboxhelper.cxx16
-rw-r--r--sw/source/core/docnode/section.cxx12
-rw-r--r--sw/source/core/edit/edfcol.cxx24
-rw-r--r--sw/source/core/inc/bookmark.hxx9
-rw-r--r--sw/source/core/inc/unobookmark.hxx4
-rw-r--r--sw/source/core/inc/unocontentcontrol.hxx4
-rw-r--r--sw/source/core/inc/unofield.hxx4
-rw-r--r--sw/source/core/inc/unofootnote.hxx2
-rw-r--r--sw/source/core/inc/unoidx.hxx4
-rw-r--r--sw/source/core/inc/unolinebreak.hxx3
-rw-r--r--sw/source/core/inc/unometa.hxx8
-rw-r--r--sw/source/core/inc/unorefmark.hxx2
-rw-r--r--sw/source/core/inc/unosection.hxx2
-rw-r--r--sw/source/core/tox/tox.cxx6
-rw-r--r--sw/source/core/txtnode/atrfld.cxx4
-rw-r--r--sw/source/core/txtnode/atrftn.cxx6
-rw-r--r--sw/source/core/txtnode/atrref.cxx6
-rw-r--r--sw/source/core/txtnode/attrcontentcontrol.cxx8
-rw-r--r--sw/source/core/txtnode/attrlinebreak.cxx8
-rw-r--r--sw/source/core/txtnode/fmtatr2.cxx4
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx9
-rw-r--r--sw/source/core/unocore/unobkm.cxx16
-rw-r--r--sw/source/core/unocore/unocoll.cxx46
-rw-r--r--sw/source/core/unocore/unocontentcontrol.cxx30
-rw-r--r--sw/source/core/unocore/unodraw.cxx10
-rw-r--r--sw/source/core/unocore/unofield.cxx28
-rw-r--r--sw/source/core/unocore/unoframe.cxx29
-rw-r--r--sw/source/core/unocore/unoftn.cxx13
-rw-r--r--sw/source/core/unocore/unoidx.cxx38
-rw-r--r--sw/source/core/unocore/unolinebreak.cxx9
-rw-r--r--sw/source/core/unocore/unoobj2.cxx9
-rw-r--r--sw/source/core/unocore/unoparagraph.cxx12
-rw-r--r--sw/source/core/unocore/unorefmk.cxx46
-rw-r--r--sw/source/core/unocore/unosect.cxx12
-rw-r--r--sw/source/core/unocore/unotbl.cxx15
-rw-r--r--sw/source/core/unocore/unotext.cxx9
-rw-r--r--sw/source/filter/ww8/docxattributeoutput.cxx2
-rw-r--r--sw/source/filter/xml/xmltexti.cxx20
-rw-r--r--sw/source/uibase/dochdl/swdtflvr.cxx2
-rw-r--r--sw/source/uibase/docvw/UnfloatTableButton.cxx7
-rw-r--r--sw/source/uibase/uno/unotxdoc.cxx5
-rw-r--r--sw/source/uibase/uno/unotxvw.cxx12
59 files changed, 342 insertions, 310 deletions
diff --git a/sw/inc/fmtfld.hxx b/sw/inc/fmtfld.hxx
index 08b58ec0b953..5807ed8fba70 100644
--- a/sw/inc/fmtfld.hxx
+++ b/sw/inc/fmtfld.hxx
@@ -24,6 +24,7 @@
#include <svl/poolitem.hxx>
#include <svl/SfxBroadcaster.hxx>
#include <com/sun/star/text/XTextField.hpp>
+#include <unotools/weakref.hxx>
#include "swdllapi.h"
#include "calbck.hxx"
@@ -36,6 +37,7 @@ class SwView;
class SwFieldType;
class SwDDETable;
class SwFormatField;
+class SwXTextField;
class IDocumentRedlineAccess;
namespace sw {
@@ -101,7 +103,7 @@ class SW_DLLPUBLIC SwFormatField final
friend void InitCore();
SwFormatField( sal_uInt16 nWhich ); // for default-Attribute
- css::uno::WeakReference<css::text::XTextField> m_wXTextField;
+ unotools::WeakReference<SwXTextField> m_wXTextField;
std::unique_ptr<SwField> mpField;
SwTextField* mpTextField; // the TextAttribute
@@ -158,10 +160,10 @@ public:
bool IsFieldInDoc() const;
bool IsProtect() const;
- SAL_DLLPRIVATE css::uno::WeakReference<css::text::XTextField> const& GetXTextField() const
+ SAL_DLLPRIVATE unotools::WeakReference<SwXTextField> const& GetXTextField() const
{ return m_wXTextField; }
- SAL_DLLPRIVATE void SetXTextField(css::uno::Reference<css::text::XTextField> const& xTextField)
- { m_wXTextField = xTextField; }
+ SAL_DLLPRIVATE void SetXTextField(rtl::Reference<SwXTextField> const& xTextField);
+
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
void UpdateTextNode(const SfxPoolItem* pOld, const SfxPoolItem* pNew);
diff --git a/sw/inc/fmtftn.hxx b/sw/inc/fmtftn.hxx
index 4b2635f6bc90..8636b7024909 100644
--- a/sw/inc/fmtftn.hxx
+++ b/sw/inc/fmtftn.hxx
@@ -22,6 +22,7 @@
#include <rtl/ustring.hxx>
#include <cppuhelper/weakref.hxx>
#include <svl/poolitem.hxx>
+#include <unotools/weakref.hxx>
#include <com/sun/star/text/XFootnote.hpp>
#include "swdllapi.h"
@@ -34,6 +35,7 @@ namespace com::sun::star::text {
class SwDoc;
class SwTextFootnote;
class SwRootFrame;
+class SwXFootnote;
// ATT_FTN
@@ -48,7 +50,7 @@ class SW_DLLPUBLIC SwFormatFootnote final
sal_uInt16 m_nNumberRLHidden; ///< automatic sequence number (hidden redlines)
bool m_bEndNote; ///< Is it an End note?
- css::uno::WeakReference<css::text::XFootnote> m_wXFootnote;
+ unotools::WeakReference<SwXFootnote> m_wXFootnote;
SwFormatFootnote& operator=(const SwFormatFootnote& rFootnote) = delete;
SwFormatFootnote( const SwFormatFootnote& ) = delete;
@@ -91,10 +93,9 @@ public:
css::uno::Reference<css::text::XTextRange> getAnchor(SwDoc& rDoc) const;
- css::uno::WeakReference<css::text::XFootnote> const& GetXFootnote() const
+ unotools::WeakReference<SwXFootnote> const& GetXFootnote() const
{ return m_wXFootnote; }
- void SetXFootnote(css::uno::Reference<css::text::XFootnote> const& xNote)
- { m_wXFootnote = xNote; }
+ void SetXFootnote(rtl::Reference<SwXFootnote> const& xNote);
};
#endif
diff --git a/sw/inc/fmtmeta.hxx b/sw/inc/fmtmeta.hxx
index ab98b5537f3e..71031089a67b 100644
--- a/sw/inc/fmtmeta.hxx
+++ b/sw/inc/fmtmeta.hxx
@@ -131,8 +131,7 @@ class Meta
friend class ::SwFormatMeta; ///< SetFormatMeta, NotifyChangeTextNode
friend class ::SwXMeta; ///< GetTextNode, GetTextAttr, Get/SetXMeta
- css::uno::WeakReference<
- css::rdf::XMetadatable> m_wXMeta;
+ unotools::WeakReference<SwXMeta> m_wXMeta;
SwFormatMeta * m_pFormat;
SwTextNode * m_pTextNode;
@@ -147,10 +146,9 @@ protected:
void NotifyChangeTextNode(SwTextNode *const pTextNode);
- css::uno::WeakReference<css::rdf::XMetadatable> const& GetXMeta() const
+ unotools::WeakReference<SwXMeta> const& GetXMeta() const
{ return m_wXMeta; }
- void SetXMeta(css::uno::Reference<css::rdf::XMetadatable> const& xMeta)
- { m_wXMeta = xMeta; }
+ void SetXMeta(rtl::Reference<SwXMeta> const& xMeta);
virtual void SwClientNotify(const SwModify&, const SfxHint&) override;
diff --git a/sw/inc/fmtrfmrk.hxx b/sw/inc/fmtrfmrk.hxx
index 8b28494f9e20..1d7836f46187 100644
--- a/sw/inc/fmtrfmrk.hxx
+++ b/sw/inc/fmtrfmrk.hxx
@@ -22,11 +22,13 @@
#include <rtl/ustring.hxx>
#include <cppuhelper/weakref.hxx>
#include <svl/poolitem.hxx>
+#include <unotools/weakref.hxx>
#include <com/sun/star/text/XTextContent.hpp>
#include "calbck.hxx"
class SwTextRefMark;
+class SwXReferenceMark;
// ATT_REFMARK
@@ -40,7 +42,7 @@ class SAL_DLLPUBLIC_RTTI SwFormatRefMark final
SwFormatRefMark& operator=(const SwFormatRefMark& rRefMark) = delete;
OUString m_aRefName;
- css::uno::WeakReference<css::text::XTextContent> m_wXReferenceMark;
+ unotools::WeakReference<SwXReferenceMark> m_wXReferenceMark;
public:
SwFormatRefMark( const OUString& rText );
@@ -61,10 +63,9 @@ public:
OUString &GetRefName() { return m_aRefName; }
const OUString &GetRefName() const { return m_aRefName; }
- css::uno::WeakReference<css::text::XTextContent> const& GetXRefMark() const
+ unotools::WeakReference<SwXReferenceMark> const& GetXRefMark() const
{ return m_wXReferenceMark; }
- void SetXRefMark(css::uno::Reference<css::text::XTextContent> const& xMark)
- { m_wXReferenceMark = xMark; }
+ void SetXRefMark(rtl::Reference<SwXReferenceMark> const& xMark);
};
#endif
diff --git a/sw/inc/formatcontentcontrol.hxx b/sw/inc/formatcontentcontrol.hxx
index 975972573c30..d7fc62fc2ecd 100644
--- a/sw/inc/formatcontentcontrol.hxx
+++ b/sw/inc/formatcontentcontrol.hxx
@@ -25,6 +25,7 @@
#include <cppuhelper/weakref.hxx>
#include <sal/types.h>
#include <svl/poolitem.hxx>
+#include <unotools/weakref.hxx>
#include "calbck.hxx"
#include "swdllapi.h"
@@ -107,7 +108,7 @@ public:
/// Stores the properties of a content control.
class SW_DLLPUBLIC SwContentControl : public sw::BroadcastingModify
{
- css::uno::WeakReference<css::text::XTextContent> m_wXContentControl;
+ unotools::WeakReference<SwXContentControl> m_wXContentControl;
SwFormatContentControl* m_pFormat;
@@ -185,15 +186,12 @@ public:
void NotifyChangeTextNode(SwTextNode* pTextNode);
- const css::uno::WeakReference<css::text::XTextContent>& GetXContentControl() const
+ const unotools::WeakReference<SwXContentControl>& GetXContentControl() const
{
return m_wXContentControl;
}
- void SetXContentControl(const css::uno::Reference<css::text::XTextContent>& xContentCnotrol)
- {
- m_wXContentControl = xContentCnotrol;
- }
+ void SetXContentControl(const rtl::Reference<SwXContentControl>& xContentCnotrol);
virtual void SwClientNotify(const SwModify&, const SfxHint&) override;
diff --git a/sw/inc/formatlinebreak.hxx b/sw/inc/formatlinebreak.hxx
index 0aa8fcee9145..1bc05f092903 100644
--- a/sw/inc/formatlinebreak.hxx
+++ b/sw/inc/formatlinebreak.hxx
@@ -24,10 +24,12 @@
#include "calbck.hxx"
#include <cppuhelper/weakref.hxx>
+#include <unotools/weakref.hxx>
#include <com/sun/star/text/XTextContent.hpp>
class SwDoc;
class SwTextLineBreak;
+class SwXLineBreak;
/// Defines the location of a line break text wrapping restart.
enum class SwLineBreakClear
@@ -46,7 +48,7 @@ class SW_DLLPUBLIC SwFormatLineBreak final : public SfxEnumItem<SwLineBreakClear
/// The SwTextAttr that knows the position of the line break in the doc model.
SwTextLineBreak* m_pTextAttr;
- css::uno::WeakReference<css::text::XTextContent> m_wXLineBreak;
+ unotools::WeakReference<SwXLineBreak> m_wXLineBreak;
SwFormatLineBreak& operator=(const SwFormatLineBreak& rLineBreak) = delete;
@@ -71,15 +73,9 @@ public:
void SetTextLineBreak(SwTextLineBreak* pTextAttr) { m_pTextAttr = pTextAttr; }
- css::uno::WeakReference<css::text::XTextContent> const& GetXTextContent() const
- {
- return m_wXLineBreak;
- }
+ unotools::WeakReference<SwXLineBreak> const& GetXTextContent() const { return m_wXLineBreak; }
- void SetXLineBreak(css::uno::Reference<css::text::XTextContent> const& xLineBreak)
- {
- m_wXLineBreak = xLineBreak;
- }
+ void SetXLineBreak(rtl::Reference<SwXLineBreak> const& xLineBreak);
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx
index fd64aaa8158b..c80174918b71 100644
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@ -32,6 +32,7 @@
#include "paratr.hxx"
#include <sfx2/Metadatable.hxx>
+#include <unotools/weakref.hxx>
#include <o3tl/sorted_vector.hxx>
#include <memory>
#include <vector>
@@ -41,6 +42,7 @@ class SfxHint;
class SwNumRule;
class SwNodeNum;
class SvxLRSpaceItem;
+class SwXParagraph;
namespace utl {
class TransliterationWrapper;
@@ -124,7 +126,7 @@ class SW_DLLPUBLIC SwTextNode final
std::optional< OUString > m_oNumStringCache;
- css::uno::WeakReference<css::text::XTextContent> m_wXParagraph;
+ unotools::WeakReference<SwXParagraph> m_wXParagraph;
// DrawingLayer FillAttributes in a preprocessed form for primitive usage
drawinglayer::attribute::SdrAllFillAttributesHelperPtr maFillAttributes;
@@ -800,10 +802,9 @@ public:
bool IsFirstOfNumRule(SwRootFrame const& rLayout) const;
- SAL_DLLPRIVATE css::uno::WeakReference<css::text::XTextContent> const& GetXParagraph() const
+ SAL_DLLPRIVATE unotools::WeakReference<SwXParagraph> const& GetXParagraph() const
{ return m_wXParagraph; }
- SAL_DLLPRIVATE void SetXParagraph(css::uno::Reference<css::text::XTextContent> const& xParagraph)
- { m_wXParagraph = xParagraph; }
+ SAL_DLLPRIVATE void SetXParagraph(rtl::Reference<SwXParagraph> const& xParagraph);
/// sfx2::Metadatable
virtual ::sfx2::IXmlIdRegistry& GetRegistry() override;
diff --git a/sw/inc/section.hxx b/sw/inc/section.hxx
index 67609057b13c..5600ecc3dc06 100644
--- a/sw/inc/section.hxx
+++ b/sw/inc/section.hxx
@@ -28,6 +28,7 @@
#include <svl/listener.hxx>
#include <sfx2/lnkbase.hxx>
#include <sfx2/Metadatable.hxx>
+#include <unotools/weakref.hxx>
#include "frmfmt.hxx"
#include <vector>
@@ -38,6 +39,7 @@ class SwSection;
class SwSectionNode;
class SwTOXBase;
class SwServerObject;
+class SwXTextSection;
typedef std::vector<SwSection*> SwSections;
@@ -276,7 +278,7 @@ class SW_DLLPUBLIC SwSectionFormat final
in case of an index, both a SwXDocumentIndex and a SwXTextSection
register at this SwSectionFormat, so we need to have two refs.
*/
- css::uno::WeakReference<css::text::XTextSection> m_wXTextSection;
+ unotools::WeakReference<SwXTextSection> m_wXTextSection;
SAL_DLLPRIVATE void UpdateParent(); // Parent has been changed.
@@ -317,10 +319,9 @@ public:
// Is section a valid one for global document?
const SwSection* GetGlobalDocSection() const;
- SAL_DLLPRIVATE css::uno::WeakReference<css::text::XTextSection> const& GetXTextSection() const
+ SAL_DLLPRIVATE unotools::WeakReference<SwXTextSection> const& GetXTextSection() const
{ return m_wXTextSection; }
- SAL_DLLPRIVATE void SetXTextSection(css::uno::Reference<css::text::XTextSection> const& xTextSection)
- { m_wXTextSection = xTextSection; }
+ SAL_DLLPRIVATE void SetXTextSection(rtl::Reference<SwXTextSection> const& xTextSection);
// sfx2::Metadatable
virtual ::sfx2::IXmlIdRegistry& GetRegistry() override;
diff --git a/sw/inc/tox.hxx b/sw/inc/tox.hxx
index f4e47cbbf6a6..551ca829a5e5 100644
--- a/sw/inc/tox.hxx
+++ b/sw/inc/tox.hxx
@@ -29,6 +29,7 @@
#include <sal/log.hxx>
#include <svl/listener.hxx>
#include <svl/poolitem.hxx>
+#include <unotools/weakref.hxx>
#include <com/sun/star/text/XDocumentIndexMark.hpp>
#include "calbck.hxx"
@@ -42,7 +43,7 @@ class SwTextTOXMark;
class SwDoc;
class SwRootFrame;
class SwContentFrame;
-
+class SwXDocumentIndexMark;
typedef std::vector<SwTOXMark*> SwTOXMarks;
@@ -101,7 +102,7 @@ class SW_DLLPUBLIC SwTOXMark final
bool m_bAutoGenerated; // generated using a concordance file
bool m_bMainEntry; // main entry emphasized by character style
- css::uno::WeakReference<css::text::XDocumentIndexMark> m_wXDocumentIndexMark;
+ unotools::WeakReference<SwXDocumentIndexMark> m_wXDocumentIndexMark;
SwTOXMark(); // to create the default attribute in InitCore
@@ -159,10 +160,10 @@ public:
const SwTextTOXMark* GetTextTOXMark() const { return m_pTextAttr; }
SwTextTOXMark* GetTextTOXMark() { return m_pTextAttr; }
- SAL_DLLPRIVATE css::uno::WeakReference<css::text::XDocumentIndexMark> const& GetXTOXMark() const
+ SAL_DLLPRIVATE unotools::WeakReference<SwXDocumentIndexMark> const& GetXTOXMark() const
{ return m_wXDocumentIndexMark; }
- SAL_DLLPRIVATE void SetXTOXMark(css::uno::Reference<css::text::XDocumentIndexMark> const& xMark)
- { m_wXDocumentIndexMark = xMark; }
+ SAL_DLLPRIVATE void SetXTOXMark(rtl::Reference<SwXDocumentIndexMark> const& xMark);
+
void RegisterToTOXType( SwTOXType& rMark );
static constexpr OUStringLiteral S_PAGE_DELI = u", ";
diff --git a/sw/inc/unoframe.hxx b/sw/inc/unoframe.hxx
index fd976ae12260..de6f63887f02 100644
--- a/sw/inc/unoframe.hxx
+++ b/sw/inc/unoframe.hxx
@@ -90,8 +90,8 @@ protected:
SwXFrame(SwFrameFormat& rFrameFormat, FlyCntType eSet,
const SfxItemPropertySet* pPropSet);
- template<class Interface, class Impl>
- static css::uno::Reference<Interface>
+ template<class Impl>
+ static rtl::Reference<Impl>
CreateXFrame(SwDoc & rDoc, SwFrameFormat *const pFrameFormat);
public:
@@ -187,7 +187,7 @@ class SwXTextFrame final : public SwXTextFrameBaseClass,
SwXTextFrame(SwFrameFormat& rFormat);
public:
- static SW_DLLPUBLIC css::uno::Reference<css::text::XTextFrame>
+ static SW_DLLPUBLIC rtl::Reference<SwXTextFrame>
CreateXTextFrame(SwDoc & rDoc, SwFrameFormat * pFrameFormat);
// FIXME: EVIL HACK: make available for SwXFrame::attachToRange
@@ -195,14 +195,14 @@ public:
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
virtual void SAL_CALL acquire( ) noexcept override;
- virtual void SAL_CALL release( ) noexcept override;
+ virtual SW_DLLPUBLIC void SAL_CALL release( ) noexcept override;
//XTypeProvider
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) override;
//XTextFrame
- virtual css::uno::Reference< css::text::XText > SAL_CALL getText() override;
+ virtual SW_DLLPUBLIC css::uno::Reference< css::text::XText > SAL_CALL getText() override;
//XText
virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL createTextCursor() override;
@@ -236,7 +236,8 @@ public:
virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
//XPropertySet
- virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
+ virtual SW_DLLPUBLIC css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
+ using SwXFrame::setPropertyValue;
};
typedef cppu::ImplInheritanceHelper
@@ -255,7 +256,7 @@ class SwXTextGraphicObject final : public SwXTextGraphicObjectBaseClass
public:
- static css::uno::Reference<css::text::XTextContent>
+ static rtl::Reference<SwXTextGraphicObject>
CreateXTextGraphicObject(SwDoc & rDoc, SwFrameFormat * pFrameFormat);
//XServiceInfo
@@ -286,7 +287,7 @@ class SwXTextEmbeddedObject final : public SwXTextEmbeddedObjectBaseClass
public:
- static css::uno::Reference<css::text::XTextContent>
+ static rtl::Reference<SwXTextEmbeddedObject>
CreateXTextEmbeddedObject(SwDoc & rDoc, SwFrameFormat * pFrameFormat);
//XEmbeddedObjectSupplier2
diff --git a/sw/inc/unoparagraph.hxx b/sw/inc/unoparagraph.hxx
index dc4d22f896cd..82540afdc58b 100644
--- a/sw/inc/unoparagraph.hxx
+++ b/sw/inc/unoparagraph.hxx
@@ -80,7 +80,7 @@ private:
public:
- static css::uno::Reference<css::text::XTextContent>
+ static rtl::Reference<SwXParagraph>
CreateXParagraph(SwDoc & rDoc, SwTextNode * pTextNode,
css::uno::Reference< css::text::XText>
const& xParentText = nullptr,
diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx
index f4ab9ef81cb1..3522beb6b998 100644
--- a/sw/inc/unotbl.hxx
+++ b/sw/inc/unotbl.hxx
@@ -274,7 +274,7 @@ private:
virtual ~SwXTextTable() override;
public:
- static css::uno::Reference<css::text::XTextTable>
+ static rtl::Reference<SwXTextTable>
CreateXTextTable(SwFrameFormat * pFrameFormat);
SW_DLLPUBLIC static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
diff --git a/sw/inc/unotextbodyhf.hxx b/sw/inc/unotextbodyhf.hxx
index 99887c6beb5c..390adaead265 100644
--- a/sw/inc/unotextbodyhf.hxx
+++ b/sw/inc/unotextbodyhf.hxx
@@ -31,6 +31,7 @@
class SwDoc;
class SwFrameFormat;
class SwXTextCursor;
+struct SwXParagraphEnumeration;
typedef ::cppu::WeakAggImplHelper2
< css::lang::XServiceInfo
@@ -80,6 +81,7 @@ public:
// XEnumerationAccess
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
createEnumeration() override;
+ rtl::Reference< SwXParagraphEnumeration > createParagraphEnumeration();
// XSimpleText
virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL
diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx
index dc022d34ccc7..94abaac25607 100644
--- a/sw/inc/unotxdoc.hxx
+++ b/sw/inc/unotxdoc.hxx
@@ -225,6 +225,7 @@ public:
//XTextDocument
virtual css::uno::Reference< css::text::XText > SAL_CALL getText() override;
+ rtl::Reference< SwXBodyText > getBodyText();
virtual void SAL_CALL reformat() override;
//XModel
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index d6cd15a2e239..cd7e58e929ef 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -1244,16 +1244,15 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, TestTdf137025)
// Check the textbox as well:
auto xTxFrm = SwXTextFrame::CreateXTextFrame(*pFrameFormat->GetDoc(), pFrameFormat);
CPPUNIT_ASSERT(xTxFrm);
- uno::Reference<beans::XPropertySet> xFrameProps(xTxFrm, uno::UNO_QUERY);
const tools::Long nFrameLeftPaddng
- = xFrameProps->getPropertyValue("LeftBorderDistance").get<tools::Long>();
+ = xTxFrm->getPropertyValue("LeftBorderDistance").get<tools::Long>();
const tools::Long nFrameRightPaddng
- = xFrameProps->getPropertyValue("RightBorderDistance").get<tools::Long>();
+ = xTxFrm->getPropertyValue("RightBorderDistance").get<tools::Long>();
const tools::Long nFrameTopPaddng
- = xFrameProps->getPropertyValue("TopBorderDistance").get<tools::Long>();
+ = xTxFrm->getPropertyValue("TopBorderDistance").get<tools::Long>();
const tools::Long nFrameBottomPaddng
- = xFrameProps->getPropertyValue("BottomBorderDistance").get<tools::Long>();
+ = xTxFrm->getPropertyValue("BottomBorderDistance").get<tools::Long>();
// Check if the shape and frame have different setting
CPPUNIT_ASSERT_EQUAL(nLPaddng, nFrameLeftPaddng);
diff --git a/sw/source/core/crsr/bookmark.cxx b/sw/source/core/crsr/bookmark.cxx
index a33cb1c1eab0..ac7f9fe2c8a3 100644
--- a/sw/source/core/crsr/bookmark.cxx
+++ b/sw/source/core/crsr/bookmark.cxx
@@ -280,6 +280,9 @@ namespace sw::mark
}
}
+ void MarkBase::SetXBookmark(rtl::Reference<SwXBookmark> const& xBkmk)
+ { m_wXBookmark = xBkmk.get(); }
+
// For fieldmarks, the CH_TXT_ATR_FIELDSTART and CH_TXT_ATR_FIELDEND
// themselves are part of the covered range. This is guaranteed by
// TextFieldmark::InitDoc/lcl_AssureFieldMarksSet.
@@ -359,7 +362,7 @@ namespace sw::mark
auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
if(RES_REMOVE_UNO_OBJECT == pLegacy->GetWhich())
{ // invalidate cached uno object
- SetXBookmark(uno::Reference<text::XTextContent>(nullptr));
+ SetXBookmark(nullptr);
}
}
@@ -494,7 +497,7 @@ namespace sw::mark
{
SwDoc& rDoc( GetMarkPos().GetDoc() );
const uno::Reference< rdf::XMetadatable> xMeta(
- SwXBookmark::CreateXBookmark(rDoc, this), uno::UNO_QUERY);
+ SwXBookmark::CreateXBookmark(rDoc, this) );
return xMeta;
}
diff --git a/sw/source/core/doc/rdfhelper.cxx b/sw/source/core/doc/rdfhelper.cxx
index 651a899ff157..c06126830967 100644
--- a/sw/source/core/doc/rdfhelper.cxx
+++ b/sw/source/core/doc/rdfhelper.cxx
@@ -201,13 +201,13 @@ void SwRDFHelper::cloneStatements(const css::uno::Reference<css::frame::XModel>&
std::map<OUString, OUString> SwRDFHelper::getTextNodeStatements(const OUString& rType, SwTextNode& rTextNode)
{
- uno::Reference<rdf::XResource> xTextNode(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode), uno::UNO_QUERY);
+ uno::Reference<rdf::XResource> xTextNode(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode));
return getStatements(rTextNode.GetDoc().GetDocShell()->GetBaseModel(), rType, xTextNode);
}
void SwRDFHelper::addTextNodeStatement(const OUString& rType, const OUString& rPath, SwTextNode& rTextNode, const OUString& rKey, const OUString& rValue)
{
- uno::Reference<rdf::XResource> xSubject(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode), uno::UNO_QUERY);
+ uno::Reference<rdf::XResource> xSubject(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode));
addStatement(rTextNode.GetDoc().GetDocShell()->GetBaseModel(), rType, rPath, xSubject, rKey, rValue);
}
@@ -222,7 +222,7 @@ void SwRDFHelper::removeTextNodeStatement(const OUString& rType, SwTextNode& rTe
uno::Reference<rdf::XURI> xGraphName = aGraphNames[0];
uno::Reference<rdf::XNamedGraph> xGraph = xDocumentMetadataAccess->getRDFRepository()->getGraph(xGraphName);
- uno::Reference<rdf::XResource> xSubject(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode), uno::UNO_QUERY);
+ uno::Reference<rdf::XResource> xSubject(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode));
uno::Reference<rdf::XURI> xKey = rdf::URI::create(xComponentContext, rKey);
uno::Reference<rdf::XLiteral> xValue = rdf::Literal::create(xComponentContext, rValue);
xGraph->removeStatements(xSubject, xKey, xValue);
@@ -246,7 +246,7 @@ void SwRDFHelper::updateTextNodeStatement(const OUString& rType, const OUString&
}
uno::Reference<rdf::XNamedGraph> xGraph = xDocumentMetadataAccess->getRDFRepository()->getGraph(xGraphName);
- uno::Reference<rdf::XResource> xSubject(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode), uno::UNO_QUERY);
+ uno::Reference<rdf::XResource> xSubject(SwXParagraph::CreateXParagraph(rTextNode.GetDoc(), &rTextNode));
uno::Reference<rdf::XURI> xKey = rdf::URI::create(xComponentContext, rKey);
if (aGraphNames.hasElements())
diff --git a/sw/source/core/doc/textboxhelper.cxx b/sw/source/core/doc/textboxhelper.cxx
index 674b22b3f4d4..ec8a8ec21fc8 100644
--- a/sw/source/core/doc/textboxhelper.cxx
+++ b/sw/source/core/doc/textboxhelper.cxx
@@ -468,7 +468,9 @@ static void lcl_queryInterface(const SwFrameFormat* pShape, uno::Any& rAny, SdrO
= SwTextBoxHelper::getOtherTextBoxFormat(pShape, RES_DRAWFRMFMT, pObj))
{
uno::Reference<T> const xInterface(
- SwXTextFrame::CreateXTextFrame(*pFormat->GetDoc(), pFormat), uno::UNO_QUERY);
+ static_cast<cppu::OWeakObject*>(
+ SwXTextFrame::CreateXTextFrame(*pFormat->GetDoc(), pFormat).get()),
+ uno::UNO_QUERY);
rAny <<= xInterface;
}
}
@@ -707,8 +709,8 @@ css::uno::Any SwTextBoxHelper::getProperty(SwFrameFormat const* pShape, const OU
if (!pFormat)
return {};
- uno::Reference<beans::XPropertySet> const xPropertySet(
- SwXTextFrame::CreateXTextFrame(*pFormat->GetDoc(), pFormat), uno::UNO_QUERY);
+ rtl::Reference<SwXTextFrame> xPropertySet
+ = SwXTextFrame::CreateXTextFrame(*pFormat->GetDoc(), pFormat);
return xPropertySet->getPropertyValue(rPropName);
}
@@ -943,8 +945,8 @@ void SwTextBoxHelper::syncProperty(SwFrameFormat* pShape, sal_uInt16 nWID, sal_u
}
}
auto aGuard = SwTextBoxLockGuard(*pShape->GetOtherTextBoxFormats());
- uno::Reference<beans::XPropertySet> const xPropertySet(
- SwXTextFrame::CreateXTextFrame(*pFormat->GetDoc(), pFormat), uno::UNO_QUERY);
+ rtl::Reference<SwXTextFrame> const xPropertySet
+ = SwXTextFrame::CreateXTextFrame(*pFormat->GetDoc(), pFormat);
xPropertySet->setPropertyValue(aPropertyName, aValue);
}
@@ -1222,8 +1224,8 @@ bool SwTextBoxHelper::changeAnchor(SwFrameFormat* pShape, SdrObject* pObj)
{
auto aGuard = SwTextBoxLockGuard(*pShape->GetOtherTextBoxFormats());
::sw::UndoGuard const UndoGuard(pShape->GetDoc()->GetIDocumentUndoRedo());
- uno::Reference<beans::XPropertySet> const xPropertySet(
- SwXTextFrame::CreateXTextFrame(*pFormat->GetDoc(), pFormat), uno::UNO_QUERY);
+ rtl::Reference<SwXTextFrame> const xPropertySet
+ = SwXTextFrame::CreateXTextFrame(*pFormat->GetDoc(), pFormat);
if (pOldCnt && rNewAnch.GetAnchorId() == RndStdIds::FLY_AT_PAGE
&& rNewAnch.GetPageNum())
{
diff --git a/sw/source/core/docnode/section.cxx b/sw/source/core/docnode/section.cxx
index c35a614f8851..7510bd886604 100644
--- a/sw/source/core/docnode/section.cxx
+++ b/sw/source/core/docnode/section.cxx
@@ -795,10 +795,15 @@ void SwSectionFormat::SwClientNotify(const SwModify& rMod, const SfxHint& rHint)
if (pOld && (RES_REMOVE_UNO_OBJECT == pOld->Which()))
{ // invalidate cached uno object
- SetXTextSection(uno::Reference<text::XTextSection>(nullptr));
+ SetXTextSection(nullptr);
}
}
+void SwSectionFormat::SetXTextSection(rtl::Reference<SwXTextSection> const& xTextSection)
+{
+ m_wXTextSection = xTextSection.get();
+}
+
// Get info from the Format
bool SwSectionFormat::GetInfo( SfxPoolItem& rInfo ) const
{
@@ -976,9 +981,8 @@ SwSectionFormat::MakeUnoObject()
SwSection *const pSection( GetSection() );
if (pSection)
{
- xMeta.set( SwXTextSection::CreateXTextSection(this,
- SectionType::ToxHeader == pSection->GetType()),
- uno::UNO_QUERY );
+ xMeta = SwXTextSection::CreateXTextSection(this,
+ SectionType::ToxHeader == pSection->GetType());
}
return xMeta;
}
diff --git a/sw/source/core/edit/edfcol.cxx b/sw/source/core/edit/edfcol.cxx
index aade2988c94b..9ea61b6e5462 100644
--- a/sw/source/core/edit/edfcol.cxx
+++ b/sw/source/core/edit/edfcol.cxx
@@ -94,6 +94,8 @@
#include <UndoParagraphSignature.hxx>
#include <txtatr.hxx>
#include <fmtmeta.hxx>
+#include <unotxdoc.hxx>
+#include <unotextbodyhf.hxx>
#include <tools/diagnose_ex.h>
#include <IDocumentRedlineAccess.hxx>
@@ -1276,8 +1278,8 @@ void SwEditShell::ApplyParagraphClassification(std::vector<svx::ClassificationRe
});
uno::Reference<frame::XModel> xModel = pDocShell->GetBaseModel();
- uno::Reference<text::XTextContent> xParent = SwXParagraph::CreateXParagraph(pNode->GetDoc(), pNode);
- lcl_ApplyParagraphClassification(GetDoc(), xModel, xParent, css::uno::Reference<css::rdf::XResource>(xParent, uno::UNO_QUERY), std::move(aResults));
+ rtl::Reference<SwXParagraph> xParent = SwXParagraph::CreateXParagraph(pNode->GetDoc(), pNode);
+ lcl_ApplyParagraphClassification(GetDoc(), xModel, xParent, css::uno::Reference<css::rdf::XResource>(xParent), std::move(aResults));
}
static std::vector<svx::ClassificationResult> lcl_CollectParagraphClassification(const uno::Reference<frame::XModel>& xModel, const uno::Reference<text::XTextContent>& xParagraph)
@@ -1918,14 +1920,11 @@ void SwEditShell::RestoreMetadataFieldsAndValidateParagraphSignatures()
});
uno::Reference<frame::XModel> xModel = pDocShell->GetBaseModel();
- const uno::Reference<text::XTextDocument> xDoc(xModel, uno::UNO_QUERY);
- uno::Reference<text::XText> xParent = xDoc->getText();
- uno::Reference<container::XEnumerationAccess> xParagraphEnumerationAccess(xParent, uno::UNO_QUERY);
- if (!xParagraphEnumerationAccess.is())
- return;
- uno::Reference<container::XEnumeration> xParagraphs = xParagraphEnumerationAccess->createEnumeration();
- if (!xParagraphs.is())
+ const rtl::Reference<SwXTextDocument> xDoc(dynamic_cast<SwXTextDocument*>(xModel.get()));
+ rtl::Reference<SwXBodyText> xBodyText = xDoc->getBodyText();
+ if (!xBodyText.is())
return;
+ rtl::Reference<SwXParagraphEnumeration> xParagraphs = xBodyText->createParagraphEnumeration();
static constexpr OUStringLiteral sBlank(u"");
const sfx::ClassificationKeyCreator aKeyCreator(SfxClassificationHelper::getPolicyType());
@@ -2116,11 +2115,10 @@ static OUString lcl_GetHighestClassificationParagraphClass(SwPaM* pCursor)
sfx::ClassificationKeyCreator aKeyCreator(SfxClassificationHelper::getPolicyType());
uno::Reference<frame::XModel> xModel = pDocShell->GetBaseModel();
- const uno::Reference< text::XTextDocument > xDoc(xModel, uno::UNO_QUERY);
- uno::Reference<text::XText> xParent = xDoc->getText();
+ const rtl::Reference<SwXTextDocument> xDoc(dynamic_cast<SwXTextDocument*>(xModel.get()));
+ rtl::Reference<SwXBodyText> xBodyText = xDoc->getBodyText();
- uno::Reference<container::XEnumerationAccess> xParagraphEnumerationAccess(xParent, uno::UNO_QUERY);
- uno::Reference<container::XEnumeration> xParagraphs = xParagraphEnumerationAccess->createEnumeration();
+ rtl::Reference<SwXParagraphEnumeration> xParagraphs = xBodyText->createParagraphEnumeration();
while (xParagraphs->hasMoreElements())
{
uno::Reference<text::XTextContent> xParagraph(xParagraphs->nextElement(), uno::UNO_QUERY);
diff --git a/sw/source/core/inc/bookmark.hxx b/sw/source/core/inc/bookmark.hxx
index a9c807063f4f..6e20feca5262 100644
--- a/sw/source/core/inc/bookmark.hxx
+++ b/sw/source/core/inc/bookmark.hxx
@@ -22,6 +22,7 @@
#include <cppuhelper/weakref.hxx>
#include <sfx2/Metadatable.hxx>
#include <vcl/keycod.hxx>
+#include <unotools/weakref.hxx>
#include <memory>
#include <string_view>
#include <com/sun/star/text/XTextContent.hpp>
@@ -38,6 +39,7 @@ class SwEditWin;
class SwServerObject;
class SvNumberFormatter;
class SfxViewShell;
+class SwXBookmark;
namespace sw::mark {
class MarkBase
@@ -99,10 +101,9 @@ namespace sw::mark {
virtual ~MarkBase() override;
- const css::uno::WeakReference< css::text::XTextContent> & GetXBookmark() const
+ const unotools::WeakReference<SwXBookmark> & GetXBookmark() const
{ return m_wXBookmark; }
- void SetXBookmark(css::uno::Reference< css::text::XTextContent> const& xBkmk)
- { m_wXBookmark = xBkmk; }
+ void SetXBookmark(rtl::Reference<SwXBookmark> const& xBkmk);
protected:
// SwClient
@@ -114,7 +115,7 @@ namespace sw::mark {
OUString m_aName;
static OUString GenerateNewName(std::u16string_view rPrefix);
- css::uno::WeakReference< css::text::XTextContent> m_wXBookmark;
+ unotools::WeakReference<SwXBookmark> m_wXBookmark;
};
class NavigatorReminder final
diff --git a/sw/source/core/inc/unobookmark.hxx b/sw/source/core/inc/unobookmark.hxx
index 09ccb69e6da4..740e11865a2d 100644
--- a/sw/source/core/inc/unobookmark.hxx
+++ b/sw/source/core/inc/unobookmark.hxx
@@ -85,7 +85,7 @@ protected:
public:
- static css::uno::Reference< css::text::XTextContent>
+ static rtl::Reference<SwXBookmark>
CreateXBookmark(SwDoc & rDoc, ::sw::mark::IMark * pBookmark);
/// @return IMark for this, but only if it lives in pDoc
@@ -201,7 +201,7 @@ class SwXFieldmark final
SwXFieldmark(bool isReplacementObject, SwDoc* pDoc);
public:
- static css::uno::Reference<css::text::XTextContent>
+ static rtl::Reference<SwXBookmark>
CreateXFieldmark(SwDoc & rDoc, ::sw::mark::IMark * pMark,
bool isReplacementObject = false);
diff --git a/sw/source/core/inc/unocontentcontrol.hxx b/sw/source/core/inc/unocontentcontrol.hxx
index c34f57b4ead0..3ba4b8e3d2b3 100644
--- a/sw/source/core/inc/unocontentcontrol.hxx
+++ b/sw/source/core/inc/unocontentcontrol.hxx
@@ -71,13 +71,13 @@ protected:
SwXContentControl(SwDoc* pDoc);
public:
- static css::uno::Reference<css::text::XTextContent>
+ static rtl::Reference<SwXContentControl>
CreateXContentControl(SwContentControl& rContentControl,
const css::uno::Reference<css::text::XText>& xParentText = nullptr,
std::unique_ptr<const TextRangeList_t>&& pPortions
= std::unique_ptr<const TextRangeList_t>());
- static css::uno::Reference<css::text::XTextContent> CreateXContentControl(SwDoc& rDoc);
+ static rtl::Reference<SwXContentControl> CreateXContentControl(SwDoc& rDoc);
/// Initializes params with position of the attribute content (without CH_TXTATR).
bool SetContentRange(SwTextNode*& rpNode, sal_Int32& rStart, sal_Int32& rEnd) const;
diff --git a/sw/source/core/inc/unofield.hxx b/sw/source/core/inc/unofield.hxx
index b6b281cec582..7ec3d45b9ff9 100644
--- a/sw/source/core/inc/unofield.hxx
+++ b/sw/source/core/inc/unofield.hxx
@@ -60,7 +60,7 @@ private:
public:
- static css::uno::Reference<css::beans::XPropertySet>
+ static rtl::Reference<SwXFieldMaster>
CreateXFieldMaster(SwDoc * pDoc, SwFieldType * pType,
SwFieldIds nResId = SwFieldIds::Unknown);
@@ -145,7 +145,7 @@ public:
static void TransmuteLeadToInputField(SwSetExpField & rField);
/// @return an SwXTextField, either an already existing one or a new one
- static css::uno::Reference< css::text::XTextField>
+ static rtl::Reference<SwXTextField>
CreateXTextField(SwDoc * pDoc, SwFormatField const* pFormat,
SwServiceType nServiceId = SwServiceType::Invalid);
diff --git a/sw/source/core/inc/unofootnote.hxx b/sw/source/core/inc/unofootnote.hxx
index b30c89d8b542..0303ee12335b 100644
--- a/sw/source/core/inc/unofootnote.hxx
+++ b/sw/source/core/inc/unofootnote.hxx
@@ -61,7 +61,7 @@ class SwXFootnote final
public:
- static css::uno::Reference<css::text::XFootnote>
+ static rtl::Reference<SwXFootnote>
CreateXFootnote(SwDoc & rDoc, SwFormatFootnote * pFootnoteFormat,
bool isEndnote = false);
diff --git a/sw/source/core/inc/unoidx.hxx b/sw/source/core/inc/unoidx.hxx
index d7db053734f5..8b1b67fc6771 100644
--- a/sw/source/core/inc/unoidx.hxx
+++ b/sw/source/core/inc/unoidx.hxx
@@ -70,7 +70,7 @@ private:
public:
- static css::uno::Reference< css::text::XDocumentIndex>
+ static rtl::Reference<SwXDocumentIndex>
CreateXDocumentIndex(SwDoc & rDoc, SwTOXBaseSection * pSection,
TOXTypes eTypes = TOX_INDEX);
@@ -168,7 +168,7 @@ private:
public:
- static css::uno::Reference< css::text::XDocumentIndexMark>
+ static rtl::Reference<SwXDocumentIndexMark>
CreateXDocumentIndexMark(SwDoc & rDoc,
SwTOXMark * pMark, TOXTypes eType = TOX_INDEX);
diff --git a/sw/source/core/inc/unolinebreak.hxx b/sw/source/core/inc/unolinebreak.hxx
index 46968556633c..b1a26e604ad0 100644
--- a/sw/source/core/inc/unolinebreak.hxx
+++ b/sw/source/core/inc/unolinebreak.hxx
@@ -45,8 +45,7 @@ class SwXLineBreak final
~SwXLineBreak() override;
public:
- static css::uno::Reference<css::text::XTextContent>
- CreateXLineBreak(SwFormatLineBreak* pLineBreakFormat);
+ static rtl::Reference<SwXLineBreak> CreateXLineBreak(SwFormatLineBreak* pLineBreakFormat);
// XPropertySet
css::uno::Reference<css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
diff --git a/sw/source/core/inc/unometa.hxx b/sw/source/core/inc/unometa.hxx
index ca298fcd8f63..d662c1adba36 100644
--- a/sw/source/core/inc/unometa.hxx
+++ b/sw/source/core/inc/unometa.hxx
@@ -90,13 +90,13 @@ protected:
public:
- static css::uno::Reference< css::rdf::XMetadatable >
+ static rtl::Reference<SwXMeta>
CreateXMeta(
::sw::Meta & rMeta,
css::uno::Reference< css::text::XText> const& xParentText = nullptr,
std::unique_ptr<TextRangeList_t const> && pPortions = std::unique_ptr<TextRangeList_t const>());
- static css::uno::Reference<css::rdf::XMetadatable>
+ static rtl::Reference<SwXMeta>
CreateXMeta(SwDoc & rDoc, bool isField);
/// init params with position of the attribute content (w/out CH_TXTATR)
@@ -198,7 +198,7 @@ private:
virtual ~SwXMetaField() override;
- friend css::uno::Reference< css::rdf::XMetadatable >
+ friend rtl::Reference<SwXMeta>
SwXMeta::CreateXMeta(::sw::Meta &,
css::uno::Reference< css::text::XText> const&,
std::unique_ptr<TextRangeList_t const> && pPortions);
@@ -207,7 +207,7 @@ private:
css::uno::Reference< css::text::XText> const& xParentText,
std::unique_ptr<TextRangeList_t const> pPortions);
- friend css::uno::Reference<css::rdf::XMetadatable>
+ friend rtl::Reference<SwXMeta>
SwXMeta::CreateXMeta(SwDoc &, bool);
SwXMetaField(SwDoc *const pDoc);
diff --git a/sw/source/core/inc/unorefmark.hxx b/sw/source/core/inc/unorefmark.hxx
index 94d81dd28055..057de4f443da 100644
--- a/sw/source/core/inc/unorefmark.hxx
+++ b/sw/source/core/inc/unorefmark.hxx
@@ -56,7 +56,7 @@ private:
public:
- static css::uno::Reference<css::text::XTextContent>
+ static rtl::Reference<SwXReferenceMark>
CreateXReferenceMark(SwDoc & rDoc, SwFormatRefMark * pMarkFormat);
static const css::uno::Sequence< sal_Int8 >& getUnoTunnelId();
diff --git a/sw/source/core/inc/unosection.hxx b/sw/source/core/inc/unosection.hxx
index 2b12b7364235..a90732e4bd5c 100644
--- a/sw/source/core/inc/unosection.hxx
+++ b/sw/source/core/inc/unosection.hxx
@@ -64,7 +64,7 @@ public:
SwSectionFormat* GetFormat() const;
- static css::uno::Reference< css::text::XTextSection >
+ static rtl::Reference< SwXTextSection >
CreateXTextSection(SwSectionFormat *const pFormat,
const bool bIndexHeader = false);
diff --git a/sw/source/core/tox/tox.cxx b/sw/source/core/tox/tox.cxx
index f636d171238e..63d9d430d0ae 100644
--- a/sw/source/core/tox/tox.cxx
+++ b/sw/source/core/tox/tox.cxx
@@ -32,6 +32,7 @@
#include <tox.hxx>
#include <txtfrm.hxx>
#include <txttxmrk.hxx>
+#include <unoidx.hxx>
#include <optional>
#include <sal/log.hxx>
@@ -133,6 +134,9 @@ SwTOXMark::~SwTOXMark()
{
}
+void SwTOXMark::SetXTOXMark(rtl::Reference<SwXDocumentIndexMark> const& xMark)
+{ m_wXDocumentIndexMark = xMark.get(); }
+
void SwTOXMark::RegisterToTOXType(SwTOXType& rType)
{
SvtListener::EndListeningAll();
@@ -158,7 +162,7 @@ void SwTOXMark::Notify(const SfxHint& rHint)
auto pLegacyHint = static_cast<const sw::LegacyModifyHint*>(&rHint);
CallSwClientNotify(rHint);
if (pLegacyHint->m_pOld && (RES_REMOVE_UNO_OBJECT == pLegacyHint->m_pOld->Which()))
- SetXTOXMark(css::uno::Reference<css::text::XDocumentIndexMark>(nullptr));
+ SetXTOXMark(nullptr);
}
else if (rHint.GetId() == SfxHintId::SwCollectTextMarks)
{
diff --git a/sw/source/core/txtnode/atrfld.cxx b/sw/source/core/txtnode/atrfld.cxx
index 85d1eafc98c5..15de4fdcb9aa 100644
--- a/sw/source/core/txtnode/atrfld.cxx
+++ b/sw/source/core/txtnode/atrfld.cxx
@@ -27,6 +27,7 @@
#include <docfld.hxx>
#include <docufld.hxx>
#include <doc.hxx>
+#include <unofield.hxx>
#include <pam.hxx>
#include <reffld.hxx>
@@ -769,4 +770,7 @@ SwTextAnnotationField::~SwTextAnnotationField()
: nullptr;
}
+void SwFormatField::SetXTextField(rtl::Reference<SwXTextField> const& xTextField)
+{ m_wXTextField = xTextField.get(); }
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/txtnode/atrftn.cxx b/sw/source/core/txtnode/atrftn.cxx
index 82485f4c5d22..bfc961bc7d3a 100644
--- a/sw/source/core/txtnode/atrftn.cxx
+++ b/sw/source/core/txtnode/atrftn.cxx
@@ -43,6 +43,7 @@
#include <vcl/svapp.hxx>
#include <unotextrange.hxx>
#include <osl/diagnose.h>
+#include <unofootnote.hxx>
namespace {
/// Get a sorted list of the used footnote reference numbers.
@@ -134,6 +135,9 @@ SwFormatFootnote::SwFormatFootnote( bool bEndNote )
{
}
+void SwFormatFootnote::SetXFootnote(rtl::Reference<SwXFootnote> const& xNote)
+{ m_wXFootnote = xNote.get(); }
+
bool SwFormatFootnote::operator==( const SfxPoolItem& rAttr ) const
{
assert(SfxPoolItem::operator==(rAttr));
@@ -160,7 +164,7 @@ void SwFormatFootnote::SwClientNotify(const SwModify&, const SfxHint& rHint)
auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
CallSwClientNotify(rHint);
if(RES_REMOVE_UNO_OBJECT == pLegacy->GetWhich())
- SetXFootnote(css::uno::Reference<css::text::XFootnote>(nullptr));
+ SetXFootnote(nullptr);
}
void SwFormatFootnote::InvalidateFootnote()
diff --git a/sw/source/core/txtnode/atrref.cxx b/sw/source/core/txtnode/atrref.cxx
index e281803050e3..167306efb706 100644
--- a/sw/source/core/txtnode/atrref.cxx
+++ b/sw/source/core/txtnode/atrref.cxx
@@ -22,6 +22,7 @@
#include <hintids.hxx>
#include <hints.hxx>
#include <txtrfmrk.hxx>
+#include <unorefmark.hxx>
SwFormatRefMark::~SwFormatRefMark( )
{
@@ -43,6 +44,9 @@ SwFormatRefMark::SwFormatRefMark( const SwFormatRefMark& rAttr )
{
}
+void SwFormatRefMark::SetXRefMark(rtl::Reference<SwXReferenceMark> const& xMark)
+{ m_wXReferenceMark = xMark.get(); }
+
bool SwFormatRefMark::operator==( const SfxPoolItem& rAttr ) const
{
assert(SfxPoolItem::operator==(rAttr));
@@ -61,7 +65,7 @@ void SwFormatRefMark::SwClientNotify(const SwModify&, const SfxHint& rHint)
auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
CallSwClientNotify(rHint);
if(RES_REMOVE_UNO_OBJECT == pLegacy->GetWhich())
- SetXRefMark(css::uno::Reference<css::text::XTextContent>(nullptr));
+ SetXRefMark(nullptr);
}
void SwFormatRefMark::InvalidateRefMark()
diff --git a/sw/source/core/txtnode/attrcontentcontrol.cxx b/sw/source/core/txtnode/attrcontentcontrol.cxx
index 6b7dac905de4..f809b1b26cc5 100644
--- a/sw/source/core/txtnode/attrcontentcontrol.cxx
+++ b/sw/source/core/txtnode/attrcontentcontrol.cxx
@@ -30,6 +30,7 @@
#include <ndtxt.hxx>
#include <textcontentcontrol.hxx>
#include <doc.hxx>
+#include <unocontentcontrol.hxx>
using namespace com::sun::star;
@@ -175,6 +176,11 @@ SwContentControl::SwContentControl(SwFormatContentControl* pFormat)
SwContentControl::~SwContentControl() {}
+void SwContentControl::SetXContentControl(const rtl::Reference<SwXContentControl>& xContentCnotrol)
+{
+ m_wXContentControl = xContentCnotrol.get();
+}
+
SwTextContentControl* SwContentControl::GetTextAttr() const
{
return m_pFormat ? m_pFormat->GetTextAttr() : nullptr;
@@ -210,7 +216,7 @@ void SwContentControl::SwClientNotify(const SwModify&, const SfxHint& rHint)
if (pLegacy->GetWhich() == RES_REMOVE_UNO_OBJECT)
{
// Invalidate cached uno object.
- SetXContentControl(uno::Reference<text::XTextContent>());
+ SetXContentControl(nullptr);
GetNotifier().Broadcast(SfxHint(SfxHintId::Deinitializing));
}
}
diff --git a/sw/source/core/txtnode/attrlinebreak.cxx b/sw/source/core/txtnode/attrlinebreak.cxx
index 3f987f7e76cb..59d7c247e47b 100644
--- a/sw/source/core/txtnode/attrlinebreak.cxx
+++ b/sw/source/core/txtnode/attrlinebreak.cxx
@@ -28,6 +28,7 @@
#include <textlinebreak.hxx>
#include <ndtxt.hxx>
#include <unotextrange.hxx>
+#include <unolinebreak.hxx>
using namespace com::sun::star;
@@ -40,6 +41,11 @@ SwFormatLineBreak::SwFormatLineBreak(SwLineBreakClear eClear)
SwFormatLineBreak::~SwFormatLineBreak() {}
+void SwFormatLineBreak::SetXLineBreak(rtl::Reference<SwXLineBreak> const& xLineBreak)
+{
+ m_wXLineBreak = xLineBreak.get();
+}
+
bool SwFormatLineBreak::operator==(const SfxPoolItem& rAttr) const
{
assert(SfxPoolItem::operator==(rAttr));
@@ -59,7 +65,7 @@ void SwFormatLineBreak::SwClientNotify(const SwModify&, const SfxHint& rHint)
CallSwClientNotify(rHint);
if (RES_REMOVE_UNO_OBJECT == pLegacy->GetWhich())
{
- SetXLineBreak(css::uno::Reference<css::text::XTextContent>(nullptr));
+ SetXLineBreak(nullptr);
}
}
diff --git a/sw/source/core/txtnode/fmtatr2.cxx b/sw/source/core/txtnode/fmtatr2.cxx
index 67a55e28c9b5..6088866fca22 100644
--- a/sw/source/core/txtnode/fmtatr2.cxx
+++ b/sw/source/core/txtnode/fmtatr2.cxx
@@ -653,6 +653,8 @@ SwTextMeta * Meta::GetTextAttr() const
return m_pFormat ? m_pFormat->GetTextAttr() : nullptr;
}
+void Meta::SetXMeta(rtl::Reference<SwXMeta> const& xMeta)
+{ m_wXMeta = xMeta.get(); }
void Meta::NotifyChangeTextNode(SwTextNode *const pTextNode)
{
@@ -680,7 +682,7 @@ void Meta::SwClientNotify(const SwModify&, const SfxHint& rHint)
GetNotifier().Broadcast(SfxHint(SfxHintId::DataChanged));
if(RES_REMOVE_UNO_OBJECT == pLegacy->GetWhich())
{ // invalidate cached uno object
- SetXMeta(uno::Reference<rdf::XMetadatable>(nullptr));
+ SetXMeta(nullptr);
GetNotifier().Broadcast(SfxHint(SfxHintId::Deinitializing));
}
}
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 62d78bf87526..879faf170b09 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -5378,7 +5378,7 @@ void SwTextNode::TriggerNodeUpdate(const sw::LegacyModifyHint& rHint)
if (pOldValue && (RES_REMOVE_UNO_OBJECT == pOldValue->Which()))
{ // invalidate cached uno object
- SetXParagraph(css::uno::Reference<css::text::XTextContent>(nullptr));
+ SetXParagraph(nullptr);
}
}
@@ -5400,7 +5400,7 @@ uno::Reference< rdf::XMetadatable >
SwTextNode::MakeUnoObject()
{
const uno::Reference<rdf::XMetadatable> xMeta(
- SwXParagraph::CreateXParagraph(GetDoc(), this), uno::UNO_QUERY);
+ SwXParagraph::CreateXParagraph(GetDoc(), this));
return xMeta;
}
@@ -5415,4 +5415,9 @@ drawinglayer::attribute::SdrAllFillAttributesHelperPtr SwTextNode::getSdrAllFill
return maFillAttributes;
}
+void SwTextNode::SetXParagraph(rtl::Reference<SwXParagraph> const & xParagraph)
+{
+ m_wXParagraph = xParagraph.get();
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/unocore/unobkm.cxx b/sw/source/core/unocore/unobkm.cxx
index 456325d5f575..ca4c465ca551 100644
--- a/sw/source/core/unocore/unobkm.cxx
+++ b/sw/source/core/unocore/unobkm.cxx
@@ -44,7 +44,7 @@ class SwXBookmark::Impl
: public SvtListener
{
public:
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXBookmark> m_wThis;
std::mutex m_Mutex; // just for OInterfaceContainerHelper3
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
SwDoc* m_pDoc;
@@ -87,7 +87,7 @@ void SwXBookmark::Impl::Notify(const SfxHint& rHint)
void SwXBookmark::Impl::registerInMark(SwXBookmark& rThis,
::sw::mark::IMark* const pBkmk)
{
- const uno::Reference<text::XTextContent> xBookmark(&rThis);
+ const rtl::Reference<SwXBookmark> xBookmark(&rThis);
if (pBkmk)
{
EndListeningAll();
@@ -116,7 +116,7 @@ void SwXBookmark::Impl::registerInMark(SwXBookmark& rThis,
}
m_pRegisteredBookmark = pBkmk;
// need a permanent Reference to initialize m_wThis
- m_wThis = xBookmark;
+ m_wThis = xBookmark.get();
}
void SwXBookmark::registerInMark(SwXBookmark & rThis,
@@ -154,14 +154,14 @@ SwXBookmark::~SwXBookmark()
{
}
-uno::Reference<text::XTextContent> SwXBookmark::CreateXBookmark(
+rtl::Reference<SwXBookmark> SwXBookmark::CreateXBookmark(
SwDoc & rDoc,
::sw::mark::IMark *const pBookmark)
{
// #i105557#: do not iterate over the registered clients: race condition
::sw::mark::MarkBase *const pMarkBase(dynamic_cast< ::sw::mark::MarkBase * >(pBookmark));
OSL_ENSURE(!pBookmark || pMarkBase, "CreateXBookmark: no MarkBase?");
- uno::Reference<text::XTextContent> xBookmark;
+ rtl::Reference<SwXBookmark> xBookmark;
if (pMarkBase)
{
xBookmark = pMarkBase->GetXBookmark();
@@ -683,7 +683,7 @@ uno::Reference<container::XNameContainer> SwXFieldmark::getParameters()
return uno::Reference<container::XNameContainer>(new SwXFieldmarkParameters(pBkm));
}
-uno::Reference<text::XTextContent>
+rtl::Reference<SwXBookmark>
SwXFieldmark::CreateXFieldmark(SwDoc & rDoc, ::sw::mark::IMark *const pMark,
bool const isReplacementObject)
{
@@ -691,7 +691,7 @@ SwXFieldmark::CreateXFieldmark(SwDoc & rDoc, ::sw::mark::IMark *const pMark,
::sw::mark::MarkBase *const pMarkBase(
dynamic_cast< ::sw::mark::MarkBase * >(pMark));
assert(!pMark || pMarkBase);
- uno::Reference<text::XTextContent> xMark;
+ rtl::Reference<SwXBookmark> xMark;
if (pMarkBase)
{
xMark = pMarkBase->GetXBookmark();
@@ -711,7 +711,7 @@ SwXFieldmark::CreateXFieldmark(SwDoc & rDoc, ::sw::mark::IMark *const pMark,
else
pXBkmk = new SwXFieldmark(isReplacementObject, &rDoc);
- xMark.set(static_cast<::cppu::OWeakObject*>(pXBkmk.get()), uno::UNO_QUERY); // work around ambiguous base
+ xMark = pXBkmk.get();
pXBkmk->registerInMark(*pXBkmk, pMarkBase);
}
return xMark;
diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx
index fe2043e37f7c..d4e1028534e7 100644
--- a/sw/source/core/unocore/unocoll.cxx
+++ b/sw/source/core/unocore/unocoll.cxx
@@ -522,39 +522,39 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc)
{
case SwServiceType::TypeTextTable:
{
- xRet = SwXTextTable::CreateXTextTable(nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXTextTable::CreateXTextTable(nullptr).get());
}
break;
case SwServiceType::TypeTextFrame:
{
- xRet = SwXTextFrame::CreateXTextFrame(rDoc, nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXTextFrame::CreateXTextFrame(rDoc, nullptr).get());
}
break;
case SwServiceType::TypeGraphic :
case SwServiceType::TypeTextGraphic /* #i47503# */ :
{
- xRet = SwXTextGraphicObject::CreateXTextGraphicObject(rDoc, nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXTextGraphicObject::CreateXTextGraphicObject(rDoc, nullptr).get());
}
break;
case SwServiceType::TypeOLE :
{
- xRet = SwXTextEmbeddedObject::CreateXTextEmbeddedObject(rDoc, nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXTextEmbeddedObject::CreateXTextEmbeddedObject(rDoc, nullptr).get());
}
break;
case SwServiceType::TypeBookmark :
{
- xRet = SwXBookmark::CreateXBookmark(rDoc, nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXBookmark::CreateXBookmark(rDoc, nullptr).get());
}
break;
case SwServiceType::TypeFieldMark :
{
- xRet = SwXFieldmark::CreateXFieldmark(rDoc, nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXFieldmark::CreateXFieldmark(rDoc, nullptr).get());
}
break;
case SwServiceType::TypeFormFieldMark :
{
- xRet = SwXFieldmark::CreateXFieldmark(rDoc, nullptr, true);
+ xRet = static_cast<cppu::OWeakObject*>(SwXFieldmark::CreateXFieldmark(rDoc, nullptr, true).get());
}
break;
case SwServiceType::VbaObjectProvider :
@@ -605,10 +605,10 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc)
break;
case SwServiceType::TypeFootnote :
- xRet = SwXFootnote::CreateXFootnote(rDoc, nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXFootnote::CreateXFootnote(rDoc, nullptr).get());
break;
case SwServiceType::TypeEndnote :
- xRet = SwXFootnote::CreateXFootnote(rDoc, nullptr, true);
+ xRet = static_cast<cppu::OWeakObject*>(SwXFootnote::CreateXFootnote(rDoc, nullptr, true).get());
break;
case SwServiceType::ContentIndexMark :
case SwServiceType::UserIndexMark :
@@ -619,7 +619,7 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc)
eType = TOX_CONTENT;
else if(SwServiceType::UserIndexMark == nObjectType)
eType = TOX_USER;
- xRet = SwXDocumentIndexMark::CreateXDocumentIndexMark(rDoc, nullptr, eType);
+ xRet = static_cast<cppu::OWeakObject*>(SwXDocumentIndexMark::CreateXDocumentIndexMark(rDoc, nullptr, eType).get());
}
break;
case SwServiceType::ContentIndex :
@@ -651,17 +651,17 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc)
{
eType = TOX_TABLES;
}
- xRet = SwXDocumentIndex::CreateXDocumentIndex(rDoc, nullptr, eType);
+ xRet = static_cast<cppu::OWeakObject*>(SwXDocumentIndex::CreateXDocumentIndex(rDoc, nullptr, eType).get());
}
break;
case SwServiceType::IndexHeaderSection :
case SwServiceType::TextSection :
- xRet = SwXTextSection::CreateXTextSection(nullptr,
- (SwServiceType::IndexHeaderSection == nObjectType));
+ xRet = static_cast<cppu::OWeakObject*>(SwXTextSection::CreateXTextSection(nullptr,
+ (SwServiceType::IndexHeaderSection == nObjectType)).get());
break;
case SwServiceType::ReferenceMark :
- xRet = SwXReferenceMark::CreateXReferenceMark(rDoc, nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXReferenceMark::CreateXReferenceMark(rDoc, nullptr).get());
break;
case SwServiceType::StyleCharacter:
case SwServiceType::StyleParagraph:
@@ -756,10 +756,10 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc)
case SwServiceType::FieldTypeDropdown:
case SwServiceType::FieldTypeTableFormula:
// NOTE: the sw.SwXAutoTextEntry unoapi test depends on pDoc = 0
- xRet = SwXTextField::CreateXTextField(nullptr, nullptr, nObjectType);
+ xRet = static_cast<cppu::OWeakObject*>(SwXTextField::CreateXTextField(nullptr, nullptr, nObjectType).get());
break;
case SwServiceType::FieldTypeAnnotation:
- xRet = SwXTextField::CreateXTextField(&rDoc, nullptr, nObjectType);
+ xRet = static_cast<cppu::OWeakObject*>(SwXTextField::CreateXTextField(&rDoc, nullptr, nObjectType).get());
break;
case SwServiceType::FieldMasterUser:
case SwServiceType::FieldMasterDDE:
@@ -775,7 +775,7 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc)
case SwServiceType::FieldMasterDatabase: nResId = SwFieldIds::Database; break;
default: break;
}
- xRet = SwXFieldMaster::CreateXFieldMaster(&rDoc, nullptr, nResId);
+ xRet = static_cast<cppu::OWeakObject*>(SwXFieldMaster::CreateXFieldMaster(&rDoc, nullptr, nResId).get());
}
break;
case SwServiceType::FieldMasterBibliography:
@@ -786,11 +786,11 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc)
SwAuthorityFieldType aType(&rDoc);
pType = rDoc.getIDocumentFieldsAccess().InsertFieldType(aType);
}
- xRet = SwXFieldMaster::CreateXFieldMaster(&rDoc, pType);
+ xRet = static_cast<cppu::OWeakObject*>(SwXFieldMaster::CreateXFieldMaster(&rDoc, pType).get());
}
break;
case SwServiceType::Paragraph:
- xRet = SwXParagraph::CreateXParagraph(rDoc, nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXParagraph::CreateXParagraph(rDoc, nullptr).get());
break;
case SwServiceType::NumberingRules:
xRet = static_cast<cppu::OWeakObject*>(new SwXNumberingRules(rDoc));
@@ -823,16 +823,16 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc)
break;
case SwServiceType::TypeMeta:
- xRet = SwXMeta::CreateXMeta(rDoc, false);
+ xRet = static_cast<cppu::OWeakObject*>(SwXMeta::CreateXMeta(rDoc, false).get());
break;
case SwServiceType::FieldTypeMetafield:
- xRet = SwXMeta::CreateXMeta(rDoc, true);
+ xRet = static_cast<cppu::OWeakObject*>(SwXMeta::CreateXMeta(rDoc, true).get());
break;
case SwServiceType::LineBreak:
- xRet = SwXLineBreak::CreateXLineBreak(nullptr);
+ xRet = static_cast<cppu::OWeakObject*>(SwXLineBreak::CreateXLineBreak(nullptr).get());
break;
case SwServiceType::ContentControl:
- xRet = SwXContentControl::CreateXContentControl(rDoc);
+ xRet = static_cast<cppu::OWeakObject*>(SwXContentControl::CreateXContentControl(rDoc).get());
break;
default:
throw uno::RuntimeException();
diff --git a/sw/source/core/unocore/unocontentcontrol.cxx b/sw/source/core/unocore/unocontentcontrol.cxx
index 6a8fda8c81cb..4bbc3e242e98 100644
--- a/sw/source/core/unocore/unocontentcontrol.cxx
+++ b/sw/source/core/unocore/unocontentcontrol.cxx
@@ -144,7 +144,7 @@ uno::Reference<text::XTextCursor> SAL_CALL SwXContentControlText::createTextCurs
class SwXContentControl::Impl : public SvtListener
{
public:
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXContentControl> m_wThis;
// Just for OInterfaceContainerHelper4.
std::mutex m_Mutex;
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
@@ -249,37 +249,32 @@ SwXContentControl::SwXContentControl(SwDoc* pDoc)
SwXContentControl::~SwXContentControl() {}
-uno::Reference<text::XTextContent> SwXContentControl::CreateXContentControl(SwDoc& rDoc)
+rtl::Reference<SwXContentControl> SwXContentControl::CreateXContentControl(SwDoc& rDoc)
{
rtl::Reference<SwXContentControl> xContentControl(new SwXContentControl(&rDoc));
- uno::Reference<text::XTextContent> xTextContent(xContentControl);
- xContentControl->m_pImpl->m_wThis = xTextContent;
+ xContentControl->m_pImpl->m_wThis = xContentControl.get();
return xContentControl;
}
-uno::Reference<text::XTextContent>
+rtl::Reference<SwXContentControl>
SwXContentControl::CreateXContentControl(SwContentControl& rContentControl,
const uno::Reference<text::XText>& xParent,
std::unique_ptr<const TextRangeList_t>&& pPortions)
{
// re-use existing SwXContentControl
- uno::Reference<text::XTextContent> xContentControl(rContentControl.GetXContentControl());
+ rtl::Reference<SwXContentControl> xContentControl(rContentControl.GetXContentControl());
if (xContentControl.is())
{
if (pPortions)
{
- // Set the cache in the XContentControl to the given portions.
- auto pXContentControl
- = comphelper::getFromUnoTunnel<SwXContentControl>(xContentControl);
- assert(pXContentControl);
// The content control must always be created with the complete content. If
// SwXTextPortionEnumeration is created for a selection, it must be checked that the
// content control is contained in the selection.
- pXContentControl->m_pImpl->m_pTextPortions = std::move(pPortions);
- if (pXContentControl->m_pImpl->m_xParentText.get() != xParent.get())
+ xContentControl->m_pImpl->m_pTextPortions = std::move(pPortions);
+ if (xContentControl->m_pImpl->m_xParentText.get() != xParent.get())
{
SAL_WARN("sw.uno", "SwXContentControl with different parent");
- pXContentControl->m_pImpl->m_xParentText.set(xParent);
+ xContentControl->m_pImpl->m_xParentText.set(xParent);
}
}
return xContentControl;
@@ -308,11 +303,10 @@ SwXContentControl::CreateXContentControl(SwContentControl& rContentControl,
{
return nullptr;
}
- rtl::Reference<SwXContentControl> pXContentControl = new SwXContentControl(
- &pTextNode->GetDoc(), &rContentControl, xParentText, std::move(pPortions));
- xContentControl.set(pXContentControl);
+ xContentControl = new SwXContentControl(&pTextNode->GetDoc(), &rContentControl, xParentText,
+ std::move(pPortions));
rContentControl.SetXContentControl(xContentControl);
- pXContentControl->m_pImpl->m_wThis = xContentControl;
+ xContentControl->m_pImpl->m_wThis = xContentControl.get();
return xContentControl;
}
@@ -507,7 +501,7 @@ void SwXContentControl::AttachImpl(const uno::Reference<text::XTextRange>& xText
m_pImpl->EndListeningAll();
m_pImpl->m_pContentControl = pContentControl.get();
m_pImpl->StartListening(pContentControl->GetNotifier());
- pContentControl->SetXContentControl(uno::Reference<text::XTextContent>(this));
+ pContentControl->SetXContentControl(this);
m_pImpl->m_xParentText = sw::CreateParentXText(*pDoc, *aPam.GetPoint());
diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx
index a3d5888e684b..9177075a5f83 100644
--- a/sw/source/core/unocore/unodraw.cxx
+++ b/sw/source/core/unocore/unodraw.cxx
@@ -331,18 +331,18 @@ uno::Reference< drawing::XShape > SwFmDrawPage::CreateShape( SdrObject *pObj ) c
const SwNode* pNd = pDoc->GetNodes()[ pIdx->GetIndex() + 1 ];
if(!pNd->IsNoTextNode())
{
- xRet.set(SwXTextFrame::CreateXTextFrame(*pDoc, pFlyFormat),
+ xRet.set(static_cast<cppu::OWeakObject*>(SwXTextFrame::CreateXTextFrame(*pDoc, pFlyFormat).get()),
uno::UNO_QUERY);
}
else if( pNd->IsGrfNode() )
{
- xRet.set(SwXTextGraphicObject::CreateXTextGraphicObject(
- *pDoc, pFlyFormat), uno::UNO_QUERY);
+ xRet.set(static_cast<cppu::OWeakObject*>(SwXTextGraphicObject::CreateXTextGraphicObject(
+ *pDoc, pFlyFormat).get()), uno::UNO_QUERY);
}
else if( pNd->IsOLENode() )
{
- xRet.set(SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
- *pDoc, pFlyFormat), uno::UNO_QUERY);
+ xRet.set(static_cast<cppu::OWeakObject*>(SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
+ *pDoc, pFlyFormat).get()), uno::UNO_QUERY);
}
}
else
diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx
index 53eb083e8156..800eda41d5b6 100644
--- a/sw/source/core/unocore/unofield.cxx
+++ b/sw/source/core/unocore/unofield.cxx
@@ -407,7 +407,7 @@ class SwXFieldMaster::Impl
public:
std::mutex m_Mutex; // just for OInterfaceContainerHelper4
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXFieldMaster> m_wThis;
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
SwDoc* m_pDoc;
@@ -532,15 +532,15 @@ SwXFieldMaster::~SwXFieldMaster()
{
}
-uno::Reference<beans::XPropertySet>
+rtl::Reference<SwXFieldMaster>
SwXFieldMaster::CreateXFieldMaster(SwDoc * pDoc, SwFieldType *const pType,
SwFieldIds nResId)
{
// re-use existing SwXFieldMaster
- uno::Reference<beans::XPropertySet> xFM;
+ rtl::Reference<SwXFieldMaster> xFM;
if (pType)
{
- xFM = pType->GetXObject();
+ xFM = dynamic_cast<SwXFieldMaster*>(pType->GetXObject().get().get());
}
if (!xFM.is())
{
@@ -553,7 +553,7 @@ SwXFieldMaster::CreateXFieldMaster(SwDoc * pDoc, SwFieldType *const pType,
pType->SetXObject(xFM);
}
// need a permanent Reference to initialize m_wThis
- pFM->m_pImpl->m_wThis = xFM;
+ pFM->m_pImpl->m_wThis = xFM.get();
}
return xFM;
}
@@ -824,7 +824,7 @@ SwXFieldMaster::getPropertyValue(const OUString& rPropertyName)
pType->GatherFields(vpFields);
uno::Sequence<uno::Reference <text::XDependentTextField> > aSeq(vpFields.size());
std::transform(vpFields.begin(), vpFields.end(), aSeq.getArray(),
- [this](SwFormatField* pF) { return uno::Reference<text::XDependentTextField>(SwXTextField::CreateXTextField(m_pImpl->m_pDoc, pF), uno::UNO_QUERY); });
+ [this](SwFormatField* pF) { return uno::Reference<text::XDependentTextField>(SwXTextField::CreateXTextField(m_pImpl->m_pDoc, pF)); });
aRet <<= aSeq;
}
else
@@ -1087,7 +1087,7 @@ public:
SwFieldType* m_pFieldType;
SwFormatField* m_pFormatField;
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXTextField> m_wThis;
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
SwDoc* m_pDoc;
@@ -1212,14 +1212,14 @@ SwXTextField::~SwXTextField()
{
}
-uno::Reference<text::XTextField>
+rtl::Reference<SwXTextField>
SwXTextField::CreateXTextField(SwDoc *const pDoc, SwFormatField const* pFormat,
SwServiceType nServiceId)
{
assert(!pFormat || pDoc);
assert(pFormat || nServiceId != SwServiceType::Invalid);
// re-use existing SwXTextField
- uno::Reference<text::XTextField> xField;
+ rtl::Reference<SwXTextField> xField;
if (pFormat)
{
xField = pFormat->GetXTextField();
@@ -1235,7 +1235,7 @@ SwXTextField::CreateXTextField(SwDoc *const pDoc, SwFormatField const* pFormat,
const_cast<SwFormatField *>(pFormat)->SetXTextField(xField);
}
// need a permanent Reference to initialize m_wThis
- pField->m_pImpl->m_wThis = xField;
+ pField->m_pImpl->m_wThis = xField.get();
}
return xField;
}
@@ -1260,10 +1260,10 @@ SwServiceType SwXTextField::GetServiceId() const
void SwXTextField::TransmuteLeadToInputField(SwSetExpField & rField)
{
assert(rField.GetFormatField()->Which() == (rField.GetInputFlag() ? RES_TXTATR_INPUTFIELD : RES_TXTATR_FIELD));
- uno::Reference<text::XTextField> const xField(
+ rtl::Reference<SwXTextField> const xField(
rField.GetFormatField()->GetXTextField());
SwXTextField *const pXField = xField.is()
- ? comphelper::getFromUnoTunnel<SwXTextField>(uno::Reference<lang::XUnoTunnel>(xField, uno::UNO_QUERY_THROW))
+ ? comphelper::getFromUnoTunnel<SwXTextField>(uno::Reference<lang::XUnoTunnel>(xField))
: nullptr;
if (pXField)
pXField->m_pImpl->SetFormatField(nullptr, nullptr);
@@ -1988,7 +1988,7 @@ void SAL_CALL SwXTextField::attach(
assert(m_pImpl->GetFormatField());
m_pImpl->m_pDoc = pDoc;
m_pImpl->GetFormatField()->SetXTextField(this);
- m_pImpl->m_wThis = *this;
+ m_pImpl->m_wThis = this;
m_pImpl->m_bIsDescriptor = false;
m_pImpl->ClearFieldType();
m_pImpl->m_pProps.reset();
@@ -2981,7 +2981,7 @@ SwXFieldEnumeration::SwXFieldEnumeration(SwDoc & rDoc)
IDocumentMarkAccess& rMarksAccess(*rDoc.getIDocumentMarkAccess());
for (auto iter = rMarksAccess.getFieldmarksBegin(); iter != rMarksAccess.getFieldmarksEnd(); ++iter)
{
- m_pImpl->m_Items.emplace_back(SwXFieldmark::CreateXFieldmark(rDoc, *iter), uno::UNO_QUERY);
+ m_pImpl->m_Items.emplace_back(static_cast<cppu::OWeakObject*>(SwXFieldmark::CreateXFieldmark(rDoc, *iter).get()), uno::UNO_QUERY);
}
}
diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx
index 8e30322644c6..66598af084dd 100644
--- a/sw/source/core/unocore/unoframe.cxx
+++ b/sw/source/core/unocore/unoframe.cxx
@@ -1260,28 +1260,27 @@ SwXFrame::~SwXFrame()
EndListeningAll();
}
-template<class Interface, class NameLookupIsHard>
-uno::Reference<Interface>
+template<class NameLookupIsHard>
+rtl::Reference<NameLookupIsHard>
SwXFrame::CreateXFrame(SwDoc & rDoc, SwFrameFormat *const pFrameFormat)
{
assert(!pFrameFormat || &rDoc == pFrameFormat->GetDoc());
- uno::Reference<Interface> xFrame;
+ rtl::Reference<NameLookupIsHard> xFrame;
if (pFrameFormat)
{
- xFrame.set(pFrameFormat->GetXObject(), uno::UNO_QUERY); // cached?
+ xFrame = dynamic_cast<NameLookupIsHard*>(pFrameFormat->GetXObject().get().get()); // cached?
}
if (!xFrame.is())
{
- NameLookupIsHard *const pNew(pFrameFormat
+ xFrame = pFrameFormat
? new NameLookupIsHard(*pFrameFormat)
- : new NameLookupIsHard(&rDoc));
- xFrame.set(pNew);
+ : new NameLookupIsHard(&rDoc);
if (pFrameFormat)
{
- pFrameFormat->SetXObject(xFrame);
+ pFrameFormat->SetXObject(static_cast<cppu::OWeakObject*>(xFrame.get()));
}
// need a permanent Reference to initialize m_wThis
- pNew->SwXFrame::m_pImpl->m_wThis = xFrame;
+ xFrame->SwXFrame::m_pImpl->m_wThis = uno::Reference<XWeak>(xFrame.get());
}
return xFrame;
}
@@ -3214,10 +3213,10 @@ SwXTextFrame::~SwXTextFrame()
{
}
-uno::Reference<text::XTextFrame>
+rtl::Reference<SwXTextFrame>
SwXTextFrame::CreateXTextFrame(SwDoc & rDoc, SwFrameFormat *const pFrameFormat)
{
- return CreateXFrame<text::XTextFrame, SwXTextFrame>(rDoc, pFrameFormat);
+ return CreateXFrame<SwXTextFrame>(rDoc, pFrameFormat);
}
void SAL_CALL SwXTextFrame::acquire( )noexcept
@@ -3455,10 +3454,10 @@ SwXTextGraphicObject::~SwXTextGraphicObject()
{
}
-uno::Reference<text::XTextContent>
+rtl::Reference<SwXTextGraphicObject>
SwXTextGraphicObject::CreateXTextGraphicObject(SwDoc & rDoc, SwFrameFormat *const pFrameFormat)
{
- return CreateXFrame<text::XTextContent, SwXTextGraphicObject>(rDoc, pFrameFormat);
+ return CreateXFrame<SwXTextGraphicObject>(rDoc, pFrameFormat);
}
OUString SwXTextGraphicObject::getImplementationName()
@@ -3502,10 +3501,10 @@ SwXTextEmbeddedObject::~SwXTextEmbeddedObject()
{
}
-uno::Reference<text::XTextContent>
+rtl::Reference<SwXTextEmbeddedObject>
SwXTextEmbeddedObject::CreateXTextEmbeddedObject(SwDoc & rDoc, SwFrameFormat *const pFrameFormat)
{
- return CreateXFrame<text::XTextContent, SwXTextEmbeddedObject>(rDoc, pFrameFormat);
+ return CreateXFrame<SwXTextEmbeddedObject>(rDoc, pFrameFormat);
}
uno::Reference< lang::XComponent > SwXTextEmbeddedObject::getEmbeddedObject()
diff --git a/sw/source/core/unocore/unoftn.cxx b/sw/source/core/unocore/unoftn.cxx
index ca012bbb03e5..8ed3775b9e2b 100644
--- a/sw/source/core/unocore/unoftn.cxx
+++ b/sw/source/core/unocore/unoftn.cxx
@@ -64,7 +64,7 @@ class SwXFootnote::Impl
public:
SwXFootnote& m_rThis;
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXFootnote> m_wThis;
const bool m_bIsEndnote;
std::mutex m_Mutex; // just for OInterfaceContainerHelper4
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
@@ -138,28 +138,27 @@ SwXFootnote::~SwXFootnote()
{
}
-uno::Reference<text::XFootnote>
+rtl::Reference<SwXFootnote>
SwXFootnote::CreateXFootnote(SwDoc & rDoc, SwFormatFootnote *const pFootnoteFormat,
bool const isEndnote)
{
// i#105557: do not iterate over the registered clients: race condition
- uno::Reference<text::XFootnote> xNote;
+ rtl::Reference<SwXFootnote> xNote;
if (pFootnoteFormat)
{
xNote = pFootnoteFormat->GetXFootnote();
}
if (!xNote.is())
{
- SwXFootnote *const pNote(pFootnoteFormat
+ xNote = pFootnoteFormat
? new SwXFootnote(rDoc, *pFootnoteFormat)
- : new SwXFootnote(isEndnote));
- xNote.set(pNote);
+ : new SwXFootnote(isEndnote);
if (pFootnoteFormat)
{
pFootnoteFormat->SetXFootnote(xNote);
}
// need a permanent Reference to initialize m_wThis
- pNote->m_pImpl->m_wThis = xNote;
+ xNote->m_pImpl->m_wThis = xNote.get();
}
return xNote;
}
diff --git a/sw/source/core/unocore/unoidx.cxx b/sw/source/core/unocore/unoidx.cxx
index b2d521c6d44e..0d1fb2ff7f1e 100644
--- a/sw/source/core/unocore/unoidx.cxx
+++ b/sw/source/core/unocore/unoidx.cxx
@@ -295,7 +295,7 @@ private:
SwSectionFormat* m_pFormat;
public:
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXDocumentIndex> m_wThis;
::comphelper::OMultiTypeInterfaceContainerHelper2 m_Listeners;
SfxItemPropertySet const& m_rPropSet;
const TOXTypes m_eTOXType;
@@ -371,12 +371,12 @@ void SwXDocumentIndex::Impl::Notify(const SfxHint& rHint)
if(!m_pFormat)
{
EndListeningAll();
- uno::Reference<uno::XInterface> const xThis(m_wThis);
+ rtl::Reference<SwXDocumentIndex> const xThis(m_wThis);
if (!xThis.is())
{ // fdo#72695: if UNO object is already dead, don't revive it with event
return;
}
- lang::EventObject const ev(xThis);
+ lang::EventObject const ev(static_cast<cppu::OWeakObject*>(xThis.get()));
m_Listeners.disposeAndClear(ev);
}
}
@@ -397,30 +397,29 @@ SwXDocumentIndex::~SwXDocumentIndex()
{
}
-uno::Reference<text::XDocumentIndex>
+rtl::Reference<SwXDocumentIndex>
SwXDocumentIndex::CreateXDocumentIndex(
SwDoc & rDoc, SwTOXBaseSection * pSection, TOXTypes const eTypes)
{
// re-use existing SwXDocumentIndex
// #i105557#: do not iterate over the registered clients: race condition
- uno::Reference<text::XDocumentIndex> xIndex;
+ rtl::Reference<SwXDocumentIndex> xIndex;
if (pSection)
{
SwSectionFormat const *const pFormat = pSection->GetFormat();
- xIndex.set(pFormat->GetXObject(), uno::UNO_QUERY);
+ xIndex = dynamic_cast<SwXDocumentIndex*>(pFormat->GetXObject().get().get());
}
if (!xIndex.is())
{
- SwXDocumentIndex *const pIndex(pSection
+ xIndex = pSection
? new SwXDocumentIndex(*pSection, rDoc)
- : new SwXDocumentIndex(eTypes, rDoc));
- xIndex.set(pIndex);
+ : new SwXDocumentIndex(eTypes, rDoc);
if (pSection)
{
- pSection->GetFormat()->SetXObject(xIndex);
+ pSection->GetFormat()->SetXObject(static_cast<cppu::OWeakObject*>(xIndex.get()));
}
// need a permanent Reference to initialize m_wThis
- pIndex->m_pImpl->m_wThis = xIndex;
+ xIndex->m_pImpl->m_wThis = xIndex.get();
}
return xIndex;
}
@@ -1483,7 +1482,7 @@ private:
public:
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXDocumentIndexMark> m_wThis;
SfxItemPropertySet const& m_rPropSet;
const TOXTypes m_eTOXType;
std::mutex m_Mutex; // just for OInterfaceContainerHelper4
@@ -1568,11 +1567,11 @@ void SwXDocumentIndexMark::Impl::Invalidate()
{
if (!m_bInReplaceMark) // #i109983# only dispose on delete, not on replace!
{
- uno::Reference<uno::XInterface> const xThis(m_wThis);
+ rtl::Reference<SwXDocumentIndexMark> const xThis(m_wThis);
// fdo#72695: if UNO object is already dead, don't revive it with event
if (xThis.is())
{
- lang::EventObject const ev(xThis);
+ lang::EventObject const ev(static_cast<cppu::OWeakObject*>(xThis.get()));
std::unique_lock aGuard(m_Mutex);
m_EventListeners.disposeAndClear(aGuard, ev);
}
@@ -1611,31 +1610,30 @@ SwXDocumentIndexMark::~SwXDocumentIndexMark()
{
}
-uno::Reference<text::XDocumentIndexMark>
+rtl::Reference<SwXDocumentIndexMark>
SwXDocumentIndexMark::CreateXDocumentIndexMark(
SwDoc & rDoc, SwTOXMark *const pMark, TOXTypes const eType)
{
// re-use existing SwXDocumentIndexMark
// NB: xmloff depends on this caching to generate ID from the address!
// #i105557#: do not iterate over the registered clients: race condition
- uno::Reference<text::XDocumentIndexMark> xTOXMark;
+ rtl::Reference<SwXDocumentIndexMark> xTOXMark;
if (pMark)
{
xTOXMark = pMark->GetXTOXMark();
}
if (!xTOXMark.is())
{
- SwXDocumentIndexMark *const pNew(pMark
+ xTOXMark = pMark
? new SwXDocumentIndexMark(rDoc,
*const_cast<SwTOXType*>(pMark->GetTOXType()), *pMark)
- : new SwXDocumentIndexMark(eType));
- xTOXMark.set(pNew);
+ : new SwXDocumentIndexMark(eType);
if (pMark)
{
pMark->SetXTOXMark(xTOXMark);
}
// need a permanent Reference to initialize m_wThis
- pNew->m_pImpl->m_wThis = xTOXMark;
+ xTOXMark->m_pImpl->m_wThis = xTOXMark.get();
}
return xTOXMark;
}
diff --git a/sw/source/core/unocore/unolinebreak.cxx b/sw/source/core/unocore/unolinebreak.cxx
index b7f8a174ad17..4b8bfa08ff74 100644
--- a/sw/source/core/unocore/unolinebreak.cxx
+++ b/sw/source/core/unocore/unolinebreak.cxx
@@ -108,19 +108,16 @@ SwXLineBreak::SwXLineBreak()
SwXLineBreak::~SwXLineBreak() {}
-uno::Reference<text::XTextContent>
-SwXLineBreak::CreateXLineBreak(SwFormatLineBreak* pLineBreakFormat)
+rtl::Reference<SwXLineBreak> SwXLineBreak::CreateXLineBreak(SwFormatLineBreak* pLineBreakFormat)
{
- uno::Reference<text::XTextContent> xLineBreak;
+ rtl::Reference<SwXLineBreak> xLineBreak;
if (pLineBreakFormat)
{
xLineBreak = pLineBreakFormat->GetXTextContent();
}
if (!xLineBreak.is())
{
- SwXLineBreak* const pLineBreak(pLineBreakFormat ? new SwXLineBreak(*pLineBreakFormat)
- : new SwXLineBreak);
- xLineBreak.set(pLineBreak);
+ xLineBreak = pLineBreakFormat ? new SwXLineBreak(*pLineBreakFormat) : new SwXLineBreak;
if (pLineBreakFormat)
{
pLineBreakFormat->SetXLineBreak(xLineBreak);
diff --git a/sw/source/core/unocore/unoobj2.cxx b/sw/source/core/unocore/unoobj2.cxx
index 1bfe4fae6ae3..d0dc4d34f8e9 100644
--- a/sw/source/core/unocore/unoobj2.cxx
+++ b/sw/source/core/unocore/unoobj2.cxx
@@ -1260,8 +1260,7 @@ CreateParentXText(SwDoc & rDoc, const SwPosition& rPos)
SwFrameFormat *const pFormat = pSttNode->GetFlyFormat();
if (nullptr != pFormat)
{
- xParentText.set(SwXTextFrame::CreateXTextFrame(rDoc, pFormat),
- uno::UNO_QUERY);
+ xParentText = SwXTextFrame::CreateXTextFrame(rDoc, pFormat);
}
}
break;
@@ -1315,7 +1314,7 @@ CreateParentXText(SwDoc & rDoc, const SwPosition& rPos)
FindSttNodeByType(SwFootnoteStartNode))
{
xParentText.set(SwXFootnote::CreateXFootnote(rDoc,
- &const_cast<SwFormatFootnote&>(rFootnote)), uno::UNO_QUERY);
+ &const_cast<SwFormatFootnote&>(rFootnote)));
break;
}
}
@@ -1807,8 +1806,8 @@ bool SwXParaFrameEnumerationImpl::CreateNextObject()
if (!pNd->IsNoTextNode())
{
- m_xNextObject.set(SwXTextFrame::CreateXTextFrame(
- *pFormat->GetDoc(), pFormat));
+ m_xNextObject = static_cast<SwXFrame*>(SwXTextFrame::CreateXTextFrame(
+ *pFormat->GetDoc(), pFormat).get());
}
else if (pNd->IsGrfNode())
{
diff --git a/sw/source/core/unocore/unoparagraph.cxx b/sw/source/core/unocore/unoparagraph.cxx
index 7485b98b1580..1bd8949d58b5 100644
--- a/sw/source/core/unocore/unoparagraph.cxx
+++ b/sw/source/core/unocore/unoparagraph.cxx
@@ -113,7 +113,7 @@ class SwXParagraph::Impl
{
public:
SwXParagraph& m_rThis;
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXParagraph> m_wThis;
std::mutex m_Mutex; // just for OInterfaceContainerHelper4
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
SfxItemPropertySet const& m_rPropSet;
@@ -227,17 +227,17 @@ bool SwXParagraph::IsDescriptor() const
return m_pImpl->IsDescriptor();
}
-uno::Reference<text::XTextContent>
+rtl::Reference<SwXParagraph>
SwXParagraph::CreateXParagraph(SwDoc & rDoc, SwTextNode *const pTextNode,
uno::Reference< text::XText> const& i_xParent,
const sal_Int32 nSelStart, const sal_Int32 nSelEnd)
{
// re-use existing SwXParagraph
// #i105557#: do not iterate over the registered clients: race condition
- uno::Reference<text::XTextContent> xParagraph;
+ rtl::Reference<SwXParagraph> xParagraph;
if (pTextNode && (-1 == nSelStart) && (-1 == nSelEnd))
{ // only use cache if no selection!
- xParagraph.set(pTextNode->GetXParagraph());
+ xParagraph = pTextNode->GetXParagraph();
}
if (xParagraph.is())
{
@@ -262,7 +262,7 @@ SwXParagraph::CreateXParagraph(SwDoc & rDoc, SwTextNode *const pTextNode,
pTextNode->SetXParagraph(xParagraph);
}
// need a permanent Reference to initialize m_wThis
- pXPara->m_pImpl->m_wThis = xParagraph;
+ pXPara->m_pImpl->m_wThis = xParagraph.get();
return xParagraph;
}
@@ -331,7 +331,7 @@ SwXParagraph::attachToText(SwXText & rParent, SwTextNode & rTextNode)
m_pImpl->m_bIsDescriptor = false;
m_pImpl->EndListeningAll();
m_pImpl->StartListening(rTextNode.GetNotifier());
- rTextNode.SetXParagraph(uno::Reference<text::XTextContent>(this));
+ rTextNode.SetXParagraph(this);
m_pImpl->m_xParentText = &rParent;
if (!m_pImpl->m_sText.isEmpty())
{
diff --git a/sw/source/core/unocore/unorefmk.cxx b/sw/source/core/unocore/unorefmk.cxx
index 1b1b8bdb0e09..e11df03dc7f9 100644
--- a/sw/source/core/unocore/unorefmk.cxx
+++ b/sw/source/core/unocore/unorefmk.cxx
@@ -63,7 +63,7 @@ class SwXReferenceMark::Impl
: public SvtListener
{
public:
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXReferenceMark> m_wThis;
std::mutex m_Mutex; // just for OInterfaceContainerHelper4
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
bool m_bIsDescriptor;
@@ -122,26 +122,25 @@ SwXReferenceMark::~SwXReferenceMark()
{
}
-uno::Reference<text::XTextContent>
+rtl::Reference<SwXReferenceMark>
SwXReferenceMark::CreateXReferenceMark(
SwDoc & rDoc, SwFormatRefMark *const pMarkFormat)
{
// i#105557: do not iterate over the registered clients: race condition
- uno::Reference<text::XTextContent> xMark;
+ rtl::Reference<SwXReferenceMark> xMark;
if (pMarkFormat)
{
xMark = pMarkFormat->GetXRefMark();
}
if (!xMark.is())
{
- rtl::Reference<SwXReferenceMark> pMark(new SwXReferenceMark(&rDoc, pMarkFormat));
- xMark = pMark;
+ xMark = new SwXReferenceMark(&rDoc, pMarkFormat);
if (pMarkFormat)
{
pMarkFormat->SetXRefMark(xMark);
}
// need a permanent Reference to initialize m_wThis
- pMark->m_pImpl->m_wThis = xMark;
+ xMark->m_pImpl->m_wThis = xMark.get();
}
return xMark;
}
@@ -606,7 +605,7 @@ SwXMetaText::createTextCursorByRange(
class SwXMeta::Impl : public SvtListener
{
public:
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXMeta> m_wThis;
std::mutex m_Mutex; // just for OInterfaceContainerHelper4
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
std::unique_ptr<const TextRangeList_t> m_pTextPortions;
@@ -685,42 +684,38 @@ SwXMeta::~SwXMeta()
{
}
-uno::Reference<rdf::XMetadatable>
+rtl::Reference<SwXMeta>
SwXMeta::CreateXMeta(SwDoc & rDoc, bool const isField)
{
- SwXMeta *const pXMeta(isField
- ? new SwXMetaField(& rDoc) : new SwXMeta(& rDoc));
// this is why the constructor is private: need to acquire pXMeta here
- uno::Reference<rdf::XMetadatable> const xMeta(pXMeta);
+ rtl::Reference<SwXMeta> xMeta(isField
+ ? new SwXMetaField(& rDoc) : new SwXMeta(& rDoc));
// need a permanent Reference to initialize m_wThis
- pXMeta->m_pImpl->m_wThis = xMeta;
+ xMeta->m_pImpl->m_wThis = xMeta.get();
return xMeta;
}
-uno::Reference<rdf::XMetadatable>
+rtl::Reference<SwXMeta>
SwXMeta::CreateXMeta(::sw::Meta & rMeta,
uno::Reference<text::XText> const& i_xParent,
std::unique_ptr<TextRangeList_t const> && pPortions)
{
// re-use existing SwXMeta
// #i105557#: do not iterate over the registered clients: race condition
- uno::Reference<rdf::XMetadatable> xMeta(rMeta.GetXMeta());
+ rtl::Reference<SwXMeta> xMeta(rMeta.GetXMeta());
if (xMeta.is())
{
if (pPortions) // set cache in the XMeta to the given portions
{
- SwXMeta *const pXMeta(
- comphelper::getFromUnoTunnel<SwXMeta>(xMeta));
- assert(pXMeta);
// NB: the meta must always be created with the complete content
// if SwXTextPortionEnumeration is created for a selection,
// it must be checked that the Meta is contained in the selection!
- pXMeta->m_pImpl->m_pTextPortions = std::move(pPortions);
+ xMeta->m_pImpl->m_pTextPortions = std::move(pPortions);
// ??? is this necessary?
- if (pXMeta->m_pImpl->m_xParentText.get() != i_xParent.get())
+ if (xMeta->m_pImpl->m_xParentText.get() != i_xParent.get())
{
SAL_WARN("sw.uno", "SwXMeta with different parent?");
- pXMeta->m_pImpl->m_xParentText.set(i_xParent);
+ xMeta->m_pImpl->m_xParentText.set(i_xParent);
}
}
return xMeta;
@@ -740,17 +735,16 @@ SwXMeta::CreateXMeta(::sw::Meta & rMeta,
xParentText.set( ::sw::CreateParentXText(pTextNode->GetDoc(), aPos) );
}
if (!xParentText.is()) { return nullptr; }
- SwXMeta *const pXMeta( (RES_TXTATR_META == rMeta.GetFormatMeta()->Which())
+ // this is why the constructor is private: need to acquire pXMeta here
+ xMeta = (RES_TXTATR_META == rMeta.GetFormatMeta()->Which())
? new SwXMeta (&pTextNode->GetDoc(), &rMeta, xParentText,
std::move(pPortions))
: new SwXMetaField(&pTextNode->GetDoc(), &rMeta, xParentText,
- std::move(pPortions)));
- // this is why the constructor is private: need to acquire pXMeta here
- xMeta.set(pXMeta);
+ std::move(pPortions));
// in order to initialize the weak pointer cache in the core object
rMeta.SetXMeta(xMeta);
// need a permanent Reference to initialize m_wThis
- pXMeta->m_pImpl->m_wThis = xMeta;
+ xMeta->m_pImpl->m_wThis = xMeta.get();
return xMeta;
}
@@ -1006,7 +1000,7 @@ SwXMeta::AttachImpl(const uno::Reference< text::XTextRange > & i_xTextRange,
m_pImpl->EndListeningAll();
m_pImpl->m_pMeta = pMeta.get();
m_pImpl->StartListening(pMeta->GetNotifier());
- pMeta->SetXMeta(uno::Reference<rdf::XMetadatable>(this));
+ pMeta->SetXMeta(this);
m_pImpl->m_xParentText = ::sw::CreateParentXText(*pDoc, *aPam.GetPoint());
diff --git a/sw/source/core/unocore/unosect.cxx b/sw/source/core/unocore/unosect.cxx
index 292cfdb8ea89..29672c7f178d 100644
--- a/sw/source/core/unocore/unosect.cxx
+++ b/sw/source/core/unocore/unosect.cxx
@@ -111,7 +111,7 @@ class SwXTextSection::Impl
{
public:
SwXTextSection & m_rThis;
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXTextSection> m_wThis;
const SfxItemPropertySet & m_rPropSet;
std::mutex m_Mutex; // just for OInterfaceContainerHelper4
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
@@ -190,27 +190,27 @@ SwSectionFormat * SwXTextSection::GetFormat() const
return m_pImpl->GetSectionFormat();
}
-uno::Reference< text::XTextSection >
+rtl::Reference< SwXTextSection >
SwXTextSection::CreateXTextSection(
SwSectionFormat *const pFormat, const bool bIndexHeader)
{
// re-use existing SwXTextSection
// #i105557#: do not iterate over the registered clients: race condition
- uno::Reference< text::XTextSection > xSection;
+ rtl::Reference< SwXTextSection > xSection;
if (pFormat)
{
- xSection.set(pFormat->GetXTextSection());
+ xSection = pFormat->GetXTextSection();
}
if ( !xSection.is() )
{
rtl::Reference<SwXTextSection> pNew = new SwXTextSection(pFormat, bIndexHeader);
- xSection.set(pNew);
+ xSection = pNew;
if (pFormat)
{
pFormat->SetXTextSection(xSection);
}
// need a permanent Reference to initialize m_wThis
- pNew->m_pImpl->m_wThis = xSection;
+ pNew->m_pImpl->m_wThis = xSection.get();
}
return xSection;
}
diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index 90df0f543428..4fbe405521cb 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -1896,7 +1896,7 @@ private:
SwFrameFormat* m_pFrameFormat;
public:
- uno::WeakReference<uno::XInterface> m_wThis;
+ unotools::WeakReference<SwXTextTable> m_wThis;
std::mutex m_Mutex; // just for OInterfaceContainerHelper4
::comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_EventListeners;
::comphelper::OInterfaceContainerHelper4<chart::XChartDataChangeEventListener> m_ChartListeners;
@@ -1984,19 +1984,18 @@ SwXTextTable::~SwXTextTable()
{
}
-uno::Reference<text::XTextTable> SwXTextTable::CreateXTextTable(SwFrameFormat* const pFrameFormat)
+rtl::Reference<SwXTextTable> SwXTextTable::CreateXTextTable(SwFrameFormat* const pFrameFormat)
{
- uno::Reference<text::XTextTable> xTable;
+ rtl::Reference<SwXTextTable> xTable;
if(pFrameFormat)
- xTable.set(pFrameFormat->GetXObject(), uno::UNO_QUERY); // cached?
+ xTable = dynamic_cast<SwXTextTable*>(pFrameFormat->GetXObject().get().get()); // cached?
if(xTable.is())
return xTable;
- SwXTextTable* const pNew( pFrameFormat ? new SwXTextTable(*pFrameFormat) : new SwXTextTable());
- xTable.set(pNew);
+ xTable = pFrameFormat ? new SwXTextTable(*pFrameFormat) : new SwXTextTable();
if(pFrameFormat)
- pFrameFormat->SetXObject(xTable);
+ pFrameFormat->SetXObject(static_cast<cppu::OWeakObject*>(xTable.get()));
// need a permanent Reference to initialize m_wThis
- pNew->m_pImpl->m_wThis = xTable;
+ xTable->m_pImpl->m_wThis = xTable.get();
return xTable;
}
diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
index f49e076005b7..ae0faed8c1be 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -1339,8 +1339,7 @@ SwXText::Impl::finishOrAppendParagraph(
OSL_ENSURE(pTextNode, "no SwTextNode?");
if (pTextNode)
{
- xRet.set(SwXParagraph::CreateXParagraph(*m_pDoc, pTextNode, &m_rThis),
- uno::UNO_QUERY);
+ xRet = SwXParagraph::CreateXParagraph(*m_pDoc, pTextNode, &m_rThis);
}
return xRet;
@@ -2561,6 +2560,12 @@ SwXBodyText::createTextCursorByRange(
uno::Reference< container::XEnumeration > SAL_CALL
SwXBodyText::createEnumeration()
{
+ return createParagraphEnumeration();
+}
+
+rtl::Reference< SwXParagraphEnumeration >
+SwXBodyText::createParagraphEnumeration()
+{
SolarMutexGuard aGuard;
if (!IsValid())
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index b834f59e9eea..28097d40c411 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -9867,7 +9867,7 @@ void DocxAttributeOutput::FormatFillGradient( const XFillGradientItem& rFillGrad
SwFrameFormat & rFormat(
const_cast<SwFrameFormat&>(m_rExport.m_pParentFrame->GetFrameFormat()));
uno::Reference<beans::XPropertySet> const xPropertySet(
- SwXTextFrame::CreateXTextFrame(*rFormat.GetDoc(), &rFormat),
+ static_cast<cppu::OWeakObject*>(SwXTextFrame::CreateXTextFrame(*rFormat.GetDoc(), &rFormat).get()),
uno::UNO_QUERY);
m_rDrawingML.SetFS(m_pSerializer);
m_rDrawingML.WriteGradientFill(xPropertySet);
diff --git a/sw/source/filter/xml/xmltexti.cxx b/sw/source/filter/xml/xmltexti.cxx
index 43f1a98abe56..64be72d6146c 100644
--- a/sw/source/filter/xml/xmltexti.cxx
+++ b/sw/source/filter/xml/xmltexti.cxx
@@ -337,8 +337,8 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertOLEObject(
pOLENd->SetOLESizeInvalid( true );
}
- xPropSet.set(SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
- *pDoc, pFrameFormat), uno::UNO_QUERY);
+ xPropSet = SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
+ *pDoc, pFrameFormat);
if( pDoc->getIDocumentDrawModelAccess().GetDrawModel() )
{
// req for z-order
@@ -580,8 +580,8 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertOOoLink(
// TODO/LATER: in future may need a way to set replacement image url to the link ( may be even to the object ), needs oasis cws???
- xPropSet.set(SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
- *pDoc, pFrameFormat), uno::UNO_QUERY);
+ xPropSet = SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
+ *pDoc, pFrameFormat);
if( pDoc->getIDocumentDrawModelAccess().GetDrawModel() )
{
SwXFrame::GetOrCreateSdrObject(*
@@ -636,8 +636,8 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertApplet(
pDoc->getIDocumentContentOperations().InsertEmbObject( *pTextCursor->GetPaM(),
::svt::EmbeddedObjectRef(aAppletImpl.GetApplet(), embed::Aspects::MSOLE_CONTENT),
&aAppletImpl.GetItemSet());
- xPropSet.set(SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
- *pDoc, pFrameFormat), uno::UNO_QUERY);
+ xPropSet = SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
+ *pDoc, pFrameFormat);
if( pDoc->getIDocumentDrawModelAccess().GetDrawModel() )
{
// req for z-order
@@ -707,8 +707,8 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertPlugin(
*pTextCursor->GetPaM(),
::svt::EmbeddedObjectRef(xObj, embed::Aspects::MSOLE_CONTENT),
&aItemSet);
- xPropSet.set(SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
- *pDoc, pFrameFormat), uno::UNO_QUERY);
+ xPropSet = SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
+ *pDoc, pFrameFormat);
if( pDoc->getIDocumentDrawModelAccess().GetDrawModel() )
{
SwXFrame::GetOrCreateSdrObject(*
@@ -856,8 +856,8 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertFloatingFra
*pTextCursor->GetPaM(),
::svt::EmbeddedObjectRef(xObj, embed::Aspects::MSOLE_CONTENT),
&aItemSet);
- xPropSet.set(SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
- *pDoc, pFrameFormat), uno::UNO_QUERY);
+ xPropSet = SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
+ *pDoc, pFrameFormat);
if( pDoc->getIDocumentDrawModelAccess().GetDrawModel() )
{
// req for z-order
diff --git a/sw/source/uibase/dochdl/swdtflvr.cxx b/sw/source/uibase/dochdl/swdtflvr.cxx
index dd9fc88fbe57..5ef544a941fd 100644
--- a/sw/source/uibase/dochdl/swdtflvr.cxx
+++ b/sw/source/uibase/dochdl/swdtflvr.cxx
@@ -1319,7 +1319,7 @@ SwPasteContext::~SwPasteContext()
aPropertyValue.Name = "TextGraphicObject";
aPropertyValue.Value
- <<= SwXTextGraphicObject::CreateXTextGraphicObject(*pFormat->GetDoc(), pFormat);
+ <<= uno::Reference<text::XTextContent>(SwXTextGraphicObject::CreateXTextGraphicObject(*pFormat->GetDoc(), pFormat));
break;
}
diff --git a/sw/source/uibase/docvw/UnfloatTableButton.cxx b/sw/source/uibase/docvw/UnfloatTableButton.cxx
index 96d3c2f61460..82320732c707 100644
--- a/sw/source/uibase/docvw/UnfloatTableButton.cxx
+++ b/sw/source/uibase/docvw/UnfloatTableButton.cxx
@@ -140,10 +140,9 @@ void UnfloatTableButton::MouseButtonDown(const MouseEvent& /*rMEvt*/)
{
css::uno::Any aVal;
aGrabBagItem.QueryValue(aVal);
- const auto xTable = SwXTextTable::CreateXTextTable(pTableFormat);
- const css::uno::Reference<css::beans::XPropertySet> xSet(xTable, css::uno::UNO_QUERY);
- assert(xSet);
- xSet->setPropertyValue(UNO_NAME_TABLE_INTEROP_GRAB_BAG, aVal);
+ const rtl::Reference<SwXTextTable> xTable
+ = SwXTextTable::CreateXTextTable(pTableFormat);
+ xTable->setPropertyValue(UNO_NAME_TABLE_INTEROP_GRAB_BAG, aVal);
}
}
diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx
index b59795d3c2a4..9cd713820290 100644
--- a/sw/source/uibase/uno/unotxdoc.cxx
+++ b/sw/source/uibase/uno/unotxdoc.cxx
@@ -439,6 +439,11 @@ void SwXTextDocument::GetNumberFormatter()
Reference< XText > SwXTextDocument::getText()
{
+ return getBodyText();
+}
+
+rtl::Reference< SwXBodyText > SwXTextDocument::getBodyText()
+{
SolarMutexGuard aGuard;
if(!IsValid())
throw DisposedException("", static_cast< XTextDocument* >(this));
diff --git a/sw/source/uibase/uno/unotxvw.cxx b/sw/source/uibase/uno/unotxvw.cxx
index 7a4751b9d202..987235f0f7c4 100644
--- a/sw/source/uibase/uno/unotxvw.cxx
+++ b/sw/source/uibase/uno/unotxvw.cxx
@@ -383,8 +383,8 @@ uno::Any SwXTextView::getSelection()
SwFrameFormat *const pFormat = rSh.GetFlyFrameFormat();
if (pFormat)
{
- aRef = SwXTextFrame::CreateXTextFrame(
- *pFormat->GetDoc(), pFormat);
+ aRef = static_cast<cppu::OWeakObject*>(SwXTextFrame::CreateXTextFrame(
+ *pFormat->GetDoc(), pFormat).get());
}
}
break;
@@ -393,8 +393,8 @@ uno::Any SwXTextView::getSelection()
SwFrameFormat *const pFormat = rSh.GetFlyFrameFormat();
if (pFormat)
{
- aRef = SwXTextGraphicObject::CreateXTextGraphicObject(
- *pFormat->GetDoc(), pFormat);
+ aRef = static_cast<cppu::OWeakObject*>(SwXTextGraphicObject::CreateXTextGraphicObject(
+ *pFormat->GetDoc(), pFormat).get());
}
}
break;
@@ -403,8 +403,8 @@ uno::Any SwXTextView::getSelection()
SwFrameFormat *const pFormat = rSh.GetFlyFrameFormat();
if (pFormat)
{
- aRef = SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
- *pFormat->GetDoc(), pFormat);
+ aRef = static_cast<cppu::OWeakObject*>(SwXTextEmbeddedObject::CreateXTextEmbeddedObject(
+ *pFormat->GetDoc(), pFormat).get());
}
}
break;