[Development] Suggestion: how to know when object is scheduled for deletion

Filippo Cucchetto filippocucchetto at gmail.com
Thu May 5 22:21:08 CEST 2016


It depends on your use case but maybe you can simply create a QObject that
has the responsability of deleting your QObjects and  emit a signal just
after calling deleteLater.

class MyDeleter : public QObject
{
...
signals:
    void aboutToBeDelete(QObject*);
...
void invokeDeleteLater(QObject* other) {
    other->deleteLater();
    emit aboutToBeDeleted(other)
}
...
}

Depending on your architecture you can make it a singleton, global or
context variable.
After that you can replace everywhere:
objectManagedByCache->deleteLater()
with
myDeleter->invokeDeleteLater(objectManagedByCache).

You can also add this "invokeDeleteLater" directly to the class that
manages your cache.



2016-05-05 21:09 GMT+02:00 Sean Donnelly <Sean.Donnelly at autodesk.com>:

> In our application we maintain a UI Inventory via a named object cache.
> When an object is destroyed we remove it from our cache and when the name
> is changed we also update our cache.
>
>
>
> However when an object is scheduled for deletion via
> QObject::deleteLater() the object remains in our cache until it’s actually
> deleted.
>
>
>
> I have two proposals:
>
>
>
> 1.       Could deleteLater() send a signal so that we can update our
> cache immediately and not find that UI object which is about to be deleted.
>
> 2.       Could deleteLater() set a property to know the object is in an
> “about to be deleted state”. That way our UI Inventory could be updated to
> ignore these objects.
>
>
>
> Thanks,
>
> Sean
>
>
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
>


-- 
Filippo Cucchetto
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20160505/d19929c9/attachment.html>


More information about the Development mailing list