Gui: implement '*' operator for weak pointer classes

This commit is contained in:
wmayer
2022-06-13 13:52:34 +02:00
parent 1f606e40e1
commit cf321ef481
2 changed files with 31 additions and 4 deletions

View File

@@ -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();
}

View File

@@ -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<T>();
}
/*!
* \brief operator ->
* \return pointer to the view provider