aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml')
-rw-r--r--src/qml/qml/qqmlapplicationengine.cpp7
-rw-r--r--src/qml/qml/qqmlapplicationengine_p.h1
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);