summaryrefslogtreecommitdiff
path: root/share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2applicationviewer/qtquick2applicationviewer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2applicationviewer/qtquick2applicationviewer.cpp')
-rw-r--r--share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2applicationviewer/qtquick2applicationviewer.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2applicationviewer/qtquick2applicationviewer.cpp b/share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2applicationviewer/qtquick2applicationviewer.cpp
new file mode 100644
index 0000000000..2a62ca97b6
--- /dev/null
+++ b/share/qtcreator/templates/shared/qtquickapplicationviewer/qtquick2applicationviewer/qtquick2applicationviewer.cpp
@@ -0,0 +1,86 @@
+/*
+ This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
+ QtQuick2ApplicationViewer is a convenience class containing mobile device specific
+ code such as screen orientation handling. Also QML paths and debugging are
+ handled here.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#include "qtquick2applicationviewer.h"
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDir>
+#include <QtQml/QQmlEngine>
+
+class QtQuick2ApplicationViewerPrivate
+{
+ QString mainQmlFile;
+ friend class QtQuick2ApplicationViewer;
+ static QString adjustPath(const QString &path);
+};
+
+QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path)
+{
+#if defined(Q_OS_IOS)
+ if (!QDir::isAbsolutePath(path))
+ return QString::fromLatin1("%1/%2")
+ .arg(QCoreApplication::applicationDirPath(), path);
+#elif defined(Q_OS_MAC)
+ if (!QDir::isAbsolutePath(path))
+ return QString::fromLatin1("%1/../Resources/%2")
+ .arg(QCoreApplication::applicationDirPath(), path);
+#elif defined(Q_OS_BLACKBERRY)
+ if (!QDir::isAbsolutePath(path))
+ return QString::fromLatin1("app/native/%1").arg(path);
+#elif !defined(Q_OS_ANDROID)
+ QString pathInInstallDir =
+ QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
+ if (QFileInfo(pathInInstallDir).exists())
+ return pathInInstallDir;
+ pathInInstallDir =
+ QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), path);
+ if (QFileInfo(pathInInstallDir).exists())
+ return pathInInstallDir;
+#elif defined(Q_OS_ANDROID_NO_SDK)
+ return QLatin1String("/data/user/qt/") + path;
+#endif
+ return path;
+}
+
+QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent)
+ : QQuickView(parent)
+ , d(new QtQuick2ApplicationViewerPrivate())
+{
+ connect(engine(), SIGNAL(quit()), SLOT(close()));
+ setResizeMode(QQuickView::SizeRootObjectToView);
+}
+
+QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer()
+{
+ delete d;
+}
+
+void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file)
+{
+ d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file);
+#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK)
+ setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile));
+#else
+ setSource(QUrl::fromLocalFile(d->mainQmlFile));
+#endif
+}
+
+void QtQuick2ApplicationViewer::addImportPath(const QString &path)
+{
+ engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path));
+}
+
+void QtQuick2ApplicationViewer::showExpanded()
+{
+#if defined(Q_WS_SIMULATOR) || defined(Q_OS_QNX)
+ showFullScreen();
+#else
+ show();
+#endif
+}