aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmltest/quicktest_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmltest/quicktest_p.h')
-rw-r--r--src/qmltest/quicktest_p.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/qmltest/quicktest_p.h b/src/qmltest/quicktest_p.h
index 50fc3be050..88f56d3038 100644
--- a/src/qmltest/quicktest_p.h
+++ b/src/qmltest/quicktest_p.h
@@ -64,16 +64,18 @@ class QTestRootObject : public QObject
Q_PROPERTY(bool windowShown READ windowShown NOTIFY windowShownChanged)
Q_PROPERTY(bool hasTestCase READ hasTestCase WRITE setHasTestCase NOTIFY hasTestCaseChanged)
Q_PROPERTY(QObject *defined READ defined)
+
QML_SINGLETON
QML_ELEMENT
+ QML_ADDED_IN_VERSION(1, 0)
public:
- QTestRootObject(QObject *parent = nullptr)
- : QObject(parent), hasQuit(false), m_windowShown(false), m_hasTestCase(false) {
- m_defined = new QQmlPropertyMap(this);
-#if defined(QT_OPENGL_ES_2_ANGLE)
- m_defined->insert(QLatin1String("QT_OPENGL_ES_2_ANGLE"), QVariant(true));
-#endif
+ static QTestRootObject *create(QQmlEngine *q, QJSEngine *)
+ {
+ QTestRootObject *result = instance();
+ QQmlEngine *engine = qmlEngine(result);
+ // You can only test on one engine at a time
+ return (engine == nullptr || engine == q) ? result : nullptr;
}
static QTestRootObject *instance() {
@@ -103,6 +105,14 @@ private Q_SLOTS:
void quit() { hasQuit = true; }
private:
+ QTestRootObject(QObject *parent = nullptr)
+ : QObject(parent), hasQuit(false), m_windowShown(false), m_hasTestCase(false) {
+ m_defined = new QQmlPropertyMap(this);
+#if defined(QT_OPENGL_ES_2_ANGLE)
+ m_defined->insert(QLatin1String("QT_OPENGL_ES_2_ANGLE"), QVariant(true));
+#endif
+ }
+
bool m_windowShown : 1;
bool m_hasTestCase :1;
QQmlPropertyMap *m_defined;