mirror-chatterino2/src/util/AbandonObject.hpp
nerix fa5648fd9a
refactor: NetworkPrivate (#5063)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-09 00:37:15 +01:00

33 lines
607 B
C++

#pragma once
#include <QObject>
namespace chatterino {
/// Guard to call `deleteLater` on a QObject when destroyed.
class AbandonObject
{
public:
AbandonObject(QObject *obj)
: obj_(obj)
{
}
~AbandonObject()
{
if (this->obj_)
{
this->obj_->deleteLater();
}
}
AbandonObject(const AbandonObject &) = delete;
AbandonObject(AbandonObject &&) = delete;
AbandonObject &operator=(const AbandonObject &) = delete;
AbandonObject &operator=(AbandonObject &&) = delete;
private:
QObject *obj_;
};
} // namespace chatterino