From 876ef074805184059ee724572213f5c1f2f6cfe8 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 13 Jun 2022 13:52:34 +0200 Subject: [PATCH] Gui: implement '*' operator for weak pointer classes --- src/Gui/DocumentObserver.cpp | 14 ++++++++++++-- src/Gui/DocumentObserver.h | 21 +++++++++++++++++++-- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/Gui/DocumentObserver.cpp b/src/Gui/DocumentObserver.cpp index c53e22331d..e0e7acc8aa 100644 --- a/src/Gui/DocumentObserver.cpp +++ b/src/Gui/DocumentObserver.cpp @@ -278,7 +278,12 @@ bool DocumentWeakPtrT::expired() const noexcept return (d->_document == nullptr); } -Gui::Document* DocumentWeakPtrT::operator->() noexcept +Gui::Document* DocumentWeakPtrT::operator*() const noexcept +{ + return d->_document; +} + +Gui::Document* DocumentWeakPtrT::operator->() const noexcept { return d->_document; } @@ -378,7 +383,12 @@ ViewProviderWeakPtrT& ViewProviderWeakPtrT::operator= (ViewProviderDocumentObjec return *this; } -ViewProviderDocumentObject* ViewProviderWeakPtrT::operator->() noexcept +ViewProviderDocumentObject* ViewProviderWeakPtrT::operator*() const noexcept +{ + return d->get(); +} + +ViewProviderDocumentObject* ViewProviderWeakPtrT::operator->() const noexcept { return d->get(); } diff --git a/src/Gui/DocumentObserver.h b/src/Gui/DocumentObserver.h index c923185cd3..eb405f9feb 100644 --- a/src/Gui/DocumentObserver.h +++ b/src/Gui/DocumentObserver.h @@ -147,11 +147,16 @@ public: * \return true if the managed object has already been deleted, false otherwise. */ bool expired() const noexcept; + /*! + * \brief operator * + * \return pointer to the document + */ + Gui::Document* operator*() const noexcept; /*! * \brief operator -> * \return pointer to the document */ - Gui::Document* operator->() noexcept; + Gui::Document* operator->() const noexcept; private: // disable @@ -186,11 +191,16 @@ public: * Assignment operator */ ViewProviderWeakPtrT& operator= (ViewProviderDocumentObject* p); + /*! + * \brief operator * + * \return pointer to the document + */ + ViewProviderDocumentObject* operator*() const noexcept; /*! * \brief operator -> * \return pointer to the document */ - ViewProviderDocumentObject* operator->() noexcept; + ViewProviderDocumentObject* operator->() const noexcept; /*! * \brief operator == * \return true if both objects are equal, false otherwise @@ -253,6 +263,13 @@ public: ptr = p; return *this; } + /*! + * \brief operator * + * \return pointer to the view provider + */ + T* operator*() const { + return ptr.get(); + } /*! * \brief operator -> * \return pointer to the view provider