From ff449c705c5502a777a2cdd2a70304bf79ad9b21 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Fri, 9 Apr 2021 01:47:13 +0200 Subject: [PATCH] Fix crash on exit --- src/timeline/TimelineViewManager.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp index 45abff98..f15b0b14 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp @@ -145,19 +145,27 @@ TimelineViewManager::TimelineViewManager(CallManager *callManager, ChatPage *par static auto self = this; qmlRegisterSingletonType( "im.nheko", 1, 0, "MainWindow", [](QQmlEngine *, QJSEngine *) -> QObject * { - return MainWindow::instance(); + auto ptr = MainWindow::instance(); + QQmlEngine::setObjectOwnership(ptr, QQmlEngine::CppOwnership); + return ptr; }); qmlRegisterSingletonType( "im.nheko", 1, 0, "TimelineManager", [](QQmlEngine *, QJSEngine *) -> QObject * { - return self; + auto ptr = self; + QQmlEngine::setObjectOwnership(ptr, QQmlEngine::CppOwnership); + return ptr; }); qmlRegisterSingletonType( "im.nheko", 1, 0, "Settings", [](QQmlEngine *, QJSEngine *) -> QObject * { - return ChatPage::instance()->userSettings().data(); + auto ptr = ChatPage::instance()->userSettings().data(); + QQmlEngine::setObjectOwnership(ptr, QQmlEngine::CppOwnership); + return ptr; }); qmlRegisterSingletonType( "im.nheko", 1, 0, "CallManager", [](QQmlEngine *, QJSEngine *) -> QObject * { - return ChatPage::instance()->callManager(); + auto ptr = ChatPage::instance()->callManager(); + QQmlEngine::setObjectOwnership(ptr, QQmlEngine::CppOwnership); + return ptr; }); qRegisterMetaType();