diff options
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmlapplicationengine.cpp | 7 | ||||
-rw-r--r-- | src/qml/qml/qqmlapplicationengine_p.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlapplicationengine.cpp b/src/qml/qml/qqmlapplicationengine.cpp index 9181dad519..85aeaf5786 100644 --- a/src/qml/qml/qqmlapplicationengine.cpp +++ b/src/qml/qml/qqmlapplicationengine.cpp @@ -54,6 +54,10 @@ QQmlApplicationEnginePrivate::QQmlApplicationEnginePrivate(QQmlEngine *e) QQmlApplicationEnginePrivate::~QQmlApplicationEnginePrivate() { +} + +void QQmlApplicationEnginePrivate::cleanUp() +{ qDeleteAll(objects); #ifndef QT_NO_TRANSLATIONS qDeleteAll(translators); @@ -229,7 +233,8 @@ QQmlApplicationEngine::QQmlApplicationEngine(const QString &filePath, QObject *p */ QQmlApplicationEngine::~QQmlApplicationEngine() { - //Instantiated root objects cleaned up in private class + Q_D(QQmlApplicationEngine); + d->cleanUp();//Instantiated root objects must be deleted before the engine } /*! diff --git a/src/qml/qml/qqmlapplicationengine_p.h b/src/qml/qml/qqmlapplicationengine_p.h index db144af504..cc38c62c02 100644 --- a/src/qml/qml/qqmlapplicationengine_p.h +++ b/src/qml/qml/qqmlapplicationengine_p.h @@ -70,6 +70,7 @@ public: QQmlApplicationEnginePrivate(QQmlEngine *e); ~QQmlApplicationEnginePrivate(); void init(); + void cleanUp(); void startLoad(const QUrl &url, const QByteArray &data = QByteArray(), bool dataFlag = false); void loadTranslations(const QUrl &rootFile); |