mirror of
https://github.com/lubosz/overte.git
synced 2025-04-24 00:13:53 +02:00
Merge pull request #7097 from jherico/menuCleanup
Don't leave user data pointers around in objects after deletion
This commit is contained in:
commit
8317914070
1 changed files with 10 additions and 0 deletions
|
@ -28,6 +28,11 @@ public:
|
|||
init(menu, qmlObject);
|
||||
}
|
||||
|
||||
~MenuUserData() {
|
||||
_widget->setUserData(USER_DATA_ID, nullptr);
|
||||
_qml->setUserData(USER_DATA_ID, nullptr);
|
||||
}
|
||||
|
||||
const QUuid uuid{ QUuid::createUuid() };
|
||||
|
||||
static MenuUserData* forObject(QObject* object) {
|
||||
|
@ -37,12 +42,17 @@ public:
|
|||
private:
|
||||
MenuUserData(const MenuUserData&);
|
||||
void init(QObject* widgetObject, QObject* qmlObject) {
|
||||
_widget = widgetObject;
|
||||
_qml = qmlObject;
|
||||
widgetObject->setUserData(USER_DATA_ID, this);
|
||||
qmlObject->setUserData(USER_DATA_ID, this);
|
||||
qmlObject->setObjectName(uuid.toString());
|
||||
// Make sure we can find it again in the future
|
||||
Q_ASSERT(VrMenu::_instance->findMenuObject(uuid.toString()));
|
||||
}
|
||||
|
||||
QObject* _widget { nullptr };
|
||||
QObject* _qml { nullptr };
|
||||
};
|
||||
|
||||
const int MenuUserData::USER_DATA_ID = QObject::registerUserData();
|
||||
|
|
Loading…
Reference in a new issue