aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/shared/shared.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/shared/shared.h')
-rw-r--r--tests/manual/shared/shared.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/manual/shared/shared.h b/tests/manual/shared/shared.h
new file mode 100644
index 0000000000..b033ed5e66
--- /dev/null
+++ b/tests/manual/shared/shared.h
@@ -0,0 +1,43 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+#include <QDir>
+#include <QGuiApplication>
+#include <QQmlEngine>
+#include <QQmlFileSelector>
+#include <QQuickView> //Not using QQmlApplicationEngine because many examples don't have a Window{}
+
+#ifdef Q_OS_MACOS
+#define ADD_MACOS_BUNDLE_IMPORT_PATH \
+ view.engine()->addImportPath(app.applicationDirPath() + QStringLiteral("/../PlugIns"));
+#else
+#define ADD_MACOS_BUNDLE_IMPORT_PATH
+#endif
+
+#define DECLARATIVE_EXAMPLE_MAIN(NAME) int main(int argc, char* argv[]) \
+{\
+ QGuiApplication app(argc,argv);\
+ app.setOrganizationName("QtProject");\
+ app.setOrganizationDomain("qt-project.org");\
+ app.setApplicationName(QFileInfo(app.applicationFilePath()).baseName());\
+ QQuickView view;\
+ ADD_MACOS_BUNDLE_IMPORT_PATH\
+ if (qEnvironmentVariableIntValue("QT_QUICK_CORE_PROFILE")) {\
+ QSurfaceFormat f = view.format();\
+ f.setProfile(QSurfaceFormat::CoreProfile);\
+ f.setVersion(4, 4);\
+ view.setFormat(f);\
+ }\
+ if (qEnvironmentVariableIntValue("QT_QUICK_MULTISAMPLE")) {\
+ QSurfaceFormat f = view.format();\
+ f.setSamples(4);\
+ view.setFormat(f);\
+ }\
+ view.connect(view.engine(), &QQmlEngine::quit, &app, &QCoreApplication::quit);\
+ new QQmlFileSelector(view.engine(), &view);\
+ view.setSource(QUrl("qrc:/qt/qml/" #NAME ".qml")); \
+ if (view.status() == QQuickView::Error)\
+ return -1;\
+ view.setResizeMode(QQuickView::SizeRootObjectToView);\
+ view.show();\
+ return app.exec();\
+}