summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@digia.com>2012-10-18 12:53:27 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-05 14:39:35 +0100
commit0f3a10e37839afab8ae759e74369b992df8bc318 (patch)
treee60dd93e466d0ddb3ab85e8eda54c110517872ea /examples
parentecf3d60cbd0227bfebdb4fcaeec59e2a029dea54 (diff)
Updated QmlApplicationViewer for QtQuick1 examples
- Copy the latest QmlApplicationViewer from qt-creator (4eedda04) - Include deployment.pri in qmlapplicationviewer.pri - Reorganize deployment.pri so that INSTALLS is generated for all plaforms (No INSTALLS was generated for non-unix platforms) - Remove Symbian-specific remnants (CAPABILITY, EPOCHEAPSIZE) Task-number: QTBUG-26197 Change-Id: I329342ac8f49c52331f9558111cb192e08bd89d4 Reviewed-by: Leonard Lee <leonard.lee@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/helper/deployment.pri133
-rw-r--r--examples/helper/helper.pro3
-rw-r--r--examples/helper/qmlapplicationviewer/qmlapplicationviewer.cpp68
-rw-r--r--examples/helper/qmlapplicationviewer/qmlapplicationviewer.h3
-rw-r--r--examples/helper/qmlapplicationviewer/qmlapplicationviewer.pri133
5 files changed, 164 insertions, 176 deletions
diff --git a/examples/helper/deployment.pri b/examples/helper/deployment.pri
new file mode 100644
index 00000000..df438975
--- /dev/null
+++ b/examples/helper/deployment.pri
@@ -0,0 +1,133 @@
+# The code below handles deployment to Android and Maemo, aswell as copying
+# of the application data to shadow build directories on desktop.
+# It is recommended not to modify this file, since newer versions of Qt Creator
+# may offer an updated version of it.
+
+defineTest(qtcAddDeployment) {
+for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ greaterThan(QT_MAJOR_VERSION, 4) {
+ itemsources = $${item}.files
+ } else {
+ itemsources = $${item}.sources
+ }
+ $$itemsources = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath= $$eval($${deploymentfolder}.target)
+ export($$itemsources)
+ export($$itempath)
+ DEPLOYMENT += $$item
+}
+
+MAINPROFILEPWD = $$_PRO_FILE_PWD_
+
+android {
+ installPrefix = /assets
+ x86 {
+ target.path = /libs/x86
+ } else: armeabi-v7a {
+ target.path = /libs/armeabi-v7a
+ } else {
+ target.path = /libs/armeabi
+ }
+} else:maemo5 {
+ installPrefix = /opt/$${TARGET}
+ target.path = $${installPrefix}/bin
+ desktopfile.files = $${TARGET}.desktop
+ desktopfile.path = /usr/share/applications/hildon
+ icon.files = $${TARGET}64.png
+ icon.path = /usr/share/icons/hicolor/64x64/apps
+} else:!isEmpty(MEEGO_VERSION_MAJOR) {
+ installPrefix = /opt/$${TARGET}
+ target.path = $${installPrefix}/bin
+ desktopfile.files = $${TARGET}_harmattan.desktop
+ desktopfile.path = /usr/share/applications
+ icon.files = $${TARGET}80.png
+ icon.path = /usr/share/icons/hicolor/80x80/apps
+} else { # Assumed to be a Desktop Unix, Windows, or Mac
+ installPrefix = $$desktopInstallPrefix
+ target.path = $${installPrefix}
+ sources.files = *.cpp *.h *.desktop *.png *.pro *.qml *.qmlproject *.svg
+ sources.path = $$desktopInstallPrefix
+ export(sources.files)
+ export(sources.path)
+ INSTALLS += sources
+ copyCommand =
+ win32 {
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+ source = $$replace(source, /, \\)
+ sourcePathSegments = $$split(source, \\)
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
+ target = $$replace(target, /, \\)
+ target ~= s,\\\\\\.?\\\\,\\,
+ !isEqual(source,$$target) {
+ !isEmpty(copyCommand):copyCommand += &&
+ isEqual(QMAKE_DIR_SEP, \\) {
+ copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
+ } else {
+ source = $$replace(source, \\\\, /)
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
+ target = $$replace(target, \\\\, /)
+ copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\"
+ }
+ }
+ }
+ } else {
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+ source = $$replace(source, \\\\, /)
+ macx {
+ target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
+ } else {
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
+ }
+ target = $$replace(target, \\\\, /)
+ sourcePathSegments = $$split(source, /)
+ targetFullPath = $$target/$$last(sourcePathSegments)
+ targetFullPath ~= s,/\\.?/,/,
+ !isEqual(source,$$targetFullPath) {
+ !isEmpty(copyCommand):copyCommand += &&
+ copyCommand += $(MKDIR) \"$$target\"
+ copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
+ }
+ }
+ }
+ !isEmpty(copyCommand) {
+ copyCommand = @echo Copying application data... && $$copyCommand
+ copydeploymentfolders.commands = $$copyCommand
+ first.depends = $(first) copydeploymentfolders
+ export(first.depends)
+ export(copydeploymentfolders.commands)
+ QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+ }
+}
+
+for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ itemfiles = $${item}.files
+ $$itemfiles = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
+ export($$itemfiles)
+ export($$itempath)
+ INSTALLS += $$item
+}
+
+!isEmpty(desktopfile.path) {
+ export(icon.files)
+ export(icon.path)
+ export(desktopfile.files)
+ export(desktopfile.path)
+ INSTALLS += icon desktopfile
+}
+
+export(target.path)
+INSTALLS += target
+
+export (ICON)
+export (INSTALLS)
+export (DEPLOYMENT)
+export (LIBS)
+export (QMAKE_EXTRA_TARGETS)
+}
diff --git a/examples/helper/helper.pro b/examples/helper/helper.pro
index 0a111c50..52593b9a 100644
--- a/examples/helper/helper.pro
+++ b/examples/helper/helper.pro
@@ -2,6 +2,7 @@ TEMPLATE = subdirs
# the helpers simply need a make install target, but require no compilation
sources.files = \
- qmlapplicationviewer
+ qmlapplicationviewer \
+ deployment.pri
sources.path = $$[QT_INSTALL_EXAMPLES]/qtdeclarative/helper
INSTALLS += sources
diff --git a/examples/helper/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/helper/qmlapplicationviewer/qmlapplicationviewer.cpp
index 6a9a1fd5..05d481be 100644
--- a/examples/helper/qmlapplicationviewer/qmlapplicationviewer.cpp
+++ b/examples/helper/qmlapplicationviewer/qmlapplicationviewer.cpp
@@ -40,12 +40,12 @@
#include "qmlapplicationviewer.h"
-#include <QtCore/QDir>
-#include <QtCore/QFileInfo>
-#include <QtDeclarative/QDeclarativeComponent>
-#include <QtDeclarative/QDeclarativeEngine>
-#include <QtDeclarative/QDeclarativeContext>
-#include <QtWidgets/QApplication>
+#include <QDir>
+#include <QFileInfo>
+#include <QApplication>
+#include <QDeclarativeComponent>
+#include <QDeclarativeEngine>
+#include <QDeclarativeContext>
#include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN
@@ -80,12 +80,9 @@ static QmlJsDebuggingEnabler enableDebuggingHelper;
class QmlApplicationViewerPrivate
{
- QmlApplicationViewerPrivate(QDeclarativeView *view_) : view(view_) {}
-
QString mainQmlFile;
- QDeclarativeView *view;
friend class QmlApplicationViewer;
- QString adjustPath(const QString &path);
+ static QString adjustPath(const QString &path);
};
QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
@@ -94,7 +91,10 @@ QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
if (!QDir::isAbsolutePath(path))
return QString::fromLatin1("%1/../Resources/%2")
.arg(QCoreApplication::applicationDirPath(), path);
-#else
+#elif defined(Q_OS_QNX)
+ 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())
@@ -109,34 +109,18 @@ QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
QmlApplicationViewer::QmlApplicationViewer(QWidget *parent)
: QDeclarativeView(parent)
- , d(new QmlApplicationViewerPrivate(this))
+ , d(new QmlApplicationViewerPrivate())
{
connect(engine(), SIGNAL(quit()), SLOT(close()));
setResizeMode(QDeclarativeView::SizeRootObjectToView);
- // Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
-#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
-#if !defined(NO_JSDEBUGGER)
- new QmlJSDebugger::JSDebuggerAgent(d->view->engine());
-#endif
-#if !defined(NO_QMLOBSERVER)
- new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view);
-#endif
-#endif
-}
-QmlApplicationViewer::QmlApplicationViewer(QDeclarativeView *view, QWidget *parent)
- : QDeclarativeView(parent)
- , d(new QmlApplicationViewerPrivate(view))
-{
- connect(view->engine(), SIGNAL(quit()), view, SLOT(close()));
- view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
// Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
#if !defined(NO_JSDEBUGGER)
- new QmlJSDebugger::JSDebuggerAgent(d->view->engine());
+ new QmlJSDebugger::JSDebuggerAgent(engine());
#endif
#if !defined(NO_QMLOBSERVER)
- new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view);
+ new QmlJSDebugger::QDeclarativeViewObserver(this, this);
#endif
#endif
}
@@ -148,38 +132,38 @@ QmlApplicationViewer::~QmlApplicationViewer()
QmlApplicationViewer *QmlApplicationViewer::create()
{
-#ifdef HARMATTAN_BOOSTER
- return new QmlApplicationViewer(MDeclarativeCache::qDeclarativeView(), 0);
-#else
return new QmlApplicationViewer();
-#endif
}
void QmlApplicationViewer::setMainQmlFile(const QString &file)
{
- d->mainQmlFile = d->adjustPath(file);
- d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile));
+ d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
+#ifdef Q_OS_ANDROID
+ setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile));
+#else
+ setSource(QUrl::fromLocalFile(d->mainQmlFile));
+#endif
}
void QmlApplicationViewer::addImportPath(const QString &path)
{
- d->view->engine()->addImportPath(d->adjustPath(path));
+ engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
}
void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
{
- // TODO: Needs a Qt5 implmentation
+ // TODO: Needs a Qt5 implementation
Q_UNUSED(orientation)
}
void QmlApplicationViewer::showExpanded()
{
#if defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
- d->view->showFullScreen();
-#elif defined(Q_WS_MAEMO_5)
- d->view->showMaximized();
+ showFullScreen();
+#elif defined(Q_WS_MAEMO_5) || defined(Q_OS_QNX)
+ showMaximized();
#else
- d->view->show();
+ show();
#endif
}
diff --git a/examples/helper/qmlapplicationviewer/qmlapplicationviewer.h b/examples/helper/qmlapplicationviewer/qmlapplicationviewer.h
index b6b96bca..be12f6a8 100644
--- a/examples/helper/qmlapplicationviewer/qmlapplicationviewer.h
+++ b/examples/helper/qmlapplicationviewer/qmlapplicationviewer.h
@@ -41,7 +41,7 @@
#ifndef QMLAPPLICATIONVIEWER_H
#define QMLAPPLICATIONVIEWER_H
-#include <QtDeclarative/QDeclarativeView>
+#include <QDeclarativeView>
class QmlApplicationViewer : public QDeclarativeView
{
@@ -68,7 +68,6 @@ public:
void showExpanded();
private:
- explicit QmlApplicationViewer(QDeclarativeView *view, QWidget *parent);
class QmlApplicationViewerPrivate *d;
};
diff --git a/examples/helper/qmlapplicationviewer/qmlapplicationviewer.pri b/examples/helper/qmlapplicationviewer/qmlapplicationviewer.pri
index b83bd9b5..3218a12d 100644
--- a/examples/helper/qmlapplicationviewer/qmlapplicationviewer.pri
+++ b/examples/helper/qmlapplicationviewer/qmlapplicationviewer.pri
@@ -4,7 +4,7 @@
# It is recommended not to modify this file, since newer versions of Qt Creator
# may offer an updated version of it.
-QT += declarative widgets
+QT += declarative
SOURCES += $$PWD/qmlapplicationviewer.cpp
HEADERS += $$PWD/qmlapplicationviewer.h
@@ -20,134 +20,5 @@ INCLUDEPATH += $$PWD
contains(CONFIG,qdeclarative-boostable):contains(MEEGO_EDITION,harmattan) {
DEFINES += HARMATTAN_BOOSTER
}
-# This file was generated by an application wizard of Qt Creator.
-# The code below handles deployment to Maemo, aswell as copying
-# of the application data to shadow build directories on desktop.
-# It is recommended not to modify this file, since newer versions of Qt Creator
-# may offer an updated version of it.
-
-defineTest(qtcAddDeployment) {
-for(deploymentfolder, DEPLOYMENTFOLDERS) {
- item = item$${deploymentfolder}
- itemsources = $${item}.sources
- $$itemsources = $$eval($${deploymentfolder}.source)
- itempath = $${item}.path
- $$itempath= $$eval($${deploymentfolder}.target)
- export($$itemsources)
- export($$itempath)
- DEPLOYMENT += $$item
-}
-
-MAINPROFILEPWD = $$_PRO_FILE_PWD_
-win32 {
- copyCommand =
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
- source = $$replace(source, /, \\)
- sourcePathSegments = $$split(source, \\)
- target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
- target = $$replace(target, /, \\)
- target ~= s,\\\\\\.?\\\\,\\,
- !isEqual(source,$$target) {
- !isEmpty(copyCommand):copyCommand += &&
- isEqual(QMAKE_DIR_SEP, \\) {
- copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
- } else {
- source = $$replace(source, \\\\, /)
- target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
- target = $$replace(target, \\\\, /)
- copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\"
- }
- }
- }
- !isEmpty(copyCommand) {
- copyCommand = @echo Copying application data... && $$copyCommand
- copydeploymentfolders.commands = $$copyCommand
- first.depends = $(first) copydeploymentfolders
- export(first.depends)
- export(copydeploymentfolders.commands)
- QMAKE_EXTRA_TARGETS += first copydeploymentfolders
- }
-} else:unix {
- maemo5 {
- installPrefix = /opt/$${TARGET}
- target.path = $${installPrefix}/bin
- desktopfile.files = $${TARGET}.desktop
- desktopfile.path = /usr/share/applications/hildon
- icon.files = $${TARGET}64.png
- icon.path = /usr/share/icons/hicolor/64x64/apps
- } else:!isEmpty(MEEGO_VERSION_MAJOR) {
- installPrefix = /opt/$${TARGET}
- target.path = $${installPrefix}/bin
- desktopfile.files = $${TARGET}_harmattan.desktop
- desktopfile.path = /usr/share/applications
- icon.files = $${TARGET}80.png
- icon.path = /usr/share/icons/hicolor/80x80/apps
- } else { # Assumed to be a Desktop Unix
- installPrefix = $$desktopInstallPrefix
- target.path = $${installPrefix}
- sources.files = *.cpp *.h *.desktop *.png *.pro *.qml *.qmlproject *.svg
- sources.path = $$desktopInstallPrefix
- export(sources.files)
- export(sources.path)
- INSTALLS += sources
- copyCommand =
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
- source = $$replace(source, \\\\, /)
- macx {
- target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
- } else {
- target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
- }
- target = $$replace(target, \\\\, /)
- sourcePathSegments = $$split(source, /)
- targetFullPath = $$target/$$last(sourcePathSegments)
- targetFullPath ~= s,/\\.?/,/,
- !isEqual(source,$$targetFullPath) {
- !isEmpty(copyCommand):copyCommand += &&
- copyCommand += $(MKDIR) \"$$target\"
- copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
- }
- }
- !isEmpty(copyCommand) {
- copyCommand = @echo Copying application data... && $$copyCommand
- copydeploymentfolders.commands = $$copyCommand
- first.depends = $(first) copydeploymentfolders
- export(first.depends)
- export(copydeploymentfolders.commands)
- QMAKE_EXTRA_TARGETS += first copydeploymentfolders
- }
- }
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- item = item$${deploymentfolder}
- itemfiles = $${item}.files
- $$itemfiles = $$eval($${deploymentfolder}.source)
- itempath = $${item}.path
- $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
- export($$itemfiles)
- export($$itempath)
- INSTALLS += $$item
- }
-
- !isEmpty(desktopfile.path) {
- export(icon.files)
- export(icon.path)
- export(desktopfile.files)
- export(desktopfile.path)
- INSTALLS += icon desktopfile
- }
-
- export(target.path)
- INSTALLS += target
-}
-
-export (ICON)
-export (INSTALLS)
-export (DEPLOYMENT)
-export (TARGET.EPOCHEAPSIZE)
-export (TARGET.CAPABILITY)
-export (LIBS)
-export (QMAKE_EXTRA_TARGETS)
-}
+include(../deployment.pri)