aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/pointer/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/pointer/main.cpp')
-rw-r--r--tests/manual/pointer/main.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/manual/pointer/main.cpp b/tests/manual/pointer/main.cpp
index a4e1060cf5..7935b4072c 100644
--- a/tests/manual/pointer/main.cpp
+++ b/tests/manual/pointer/main.cpp
@@ -39,6 +39,8 @@
****************************************************************************/
#include <QGuiApplication>
#include <QQmlApplicationEngine>
+#include <QQuickItem>
+#include <QQuickWindow>
int main(int argc, char *argv[])
{
@@ -46,6 +48,19 @@ int main(int argc, char *argv[])
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
+ if (!app.arguments().isEmpty()) {
+ QQuickWindow * win = static_cast<QQuickWindow *>(engine.rootObjects().first());
+ auto lastArg = app.arguments().last();
+ if (lastArg.endsWith(QLatin1String(".qml"))) {
+ auto root = win->findChild<QQuickItem *>("LauncherList");
+ int showExampleIdx = -1;
+ for (int i = root->metaObject()->methodCount(); showExampleIdx < 0 && i >= 0; --i)
+ if (root->metaObject()->method(i).name() == QByteArray("showExample"))
+ showExampleIdx = i;
+ QMetaMethod showExampleFn = root->metaObject()->method(showExampleIdx);
+ showExampleFn.invoke(root, Q_ARG(QVariant, QVariant(QLatin1String("../../") + lastArg)));
+ }
+ }
return app.exec();
}