diff options
Diffstat (limited to 'tests/manual/pointer/main.cpp')
-rw-r--r-- | tests/manual/pointer/main.cpp | 15 |
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(); } |