diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-05-31 08:15:00 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-05-31 08:36:02 +0300 |
commit | 7935b40e8ac46755b21ffe990d4ec1680418d908 (patch) | |
tree | 834ade9b90104b0fc9356363c471cd09c4e7a311 /examples | |
parent | 49e4968b880ae4d1ff414a730329002aef562058 (diff) |
Qml2 example added, no real functionality yet
Also reorganized examples a bit; moved duplicate configs to examples.pri.
Change-Id: If518447ffa45e2b800fb3da9e6a7425d86209d35
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/barchart/barchart.pro | 9 | ||||
-rw-r--r-- | examples/examples.pri | 57 | ||||
-rw-r--r-- | examples/examples.pro | 3 | ||||
-rw-r--r-- | examples/mapdata/mapdata.pro | 9 | ||||
-rw-r--r-- | examples/qmlbarchart/main.cpp | 41 | ||||
-rw-r--r-- | examples/qmlbarchart/qml/qmlbarchart/main.qml | 37 | ||||
-rw-r--r-- | examples/qmlbarchart/qmlbarchart.desktop | 11 | ||||
-rw-r--r-- | examples/qmlbarchart/qmlbarchart.pro | 26 | ||||
-rw-r--r-- | examples/qmlbarchart/qmlbarchart64.png | bin | 0 -> 3400 bytes | |||
-rw-r--r-- | examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.cpp | 81 | ||||
-rw-r--r-- | examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.h | 33 | ||||
-rw-r--r-- | examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.pri | 180 | ||||
-rw-r--r-- | examples/rainfall/rainfall.pro | 10 | ||||
-rw-r--r-- | examples/spectrum/spectrum.pro | 4 | ||||
-rw-r--r-- | examples/widget/widget.pro | 9 |
15 files changed, 488 insertions, 22 deletions
diff --git a/examples/barchart/barchart.pro b/examples/barchart/barchart.pro index 2f219a9a..381b3402 100644 --- a/examples/barchart/barchart.pro +++ b/examples/barchart/barchart.pro @@ -1,9 +1,8 @@ +!include( ../examples.pri ) { + error( "Couldn't find the examples.pri file!" ) +} + SOURCES += main.cpp QT += datavis3d -android { - target.path = /libs/$$ANDROID_TARGET_ARCH -} else { - target.path = $$[QT_INSTALL_EXAMPLES]/datavis3d/barchart -} INSTALLS += target diff --git a/examples/examples.pri b/examples/examples.pri new file mode 100644 index 00000000..b343dc50 --- /dev/null +++ b/examples/examples.pri @@ -0,0 +1,57 @@ +android { + target.path = /libs/$$ANDROID_TARGET_ARCH +} else { + target.path = $$[QT_INSTALL_EXAMPLES]/datavis3d/$$TARGET +} + +win32 { + CONFIG(debug, release|debug):DESTDIR = $$OUT_PWD/debug + CONFIG(release, release|debug):DESTDIR = $$OUT_PWD/release +} else { + DESTDIR = $$OUT_PWD +} + +contains(TARGET, qml.*) { + uri = com.digia.QtDataVis3D + lib_name = datavis3dqml2 + + uri_replaced = $$replace(uri, \\., $$QMAKE_DIR_SEP) + make_qmldir_path = $$DESTDIR/$$uri_replaced + !exists($$make_qmldir_path) { + make_qmldir_target = \"$$replace(make_qmldir_path, /, $$QMAKE_DIR_SEP)\" + system($$QMAKE_MKDIR $$make_qmldir_target) + } + copy_qmldir_examples.target = $$make_qmldir_path/qmldir + copy_qmldir_examples.depends = $$_PRO_FILE_PWD_/../../src/$$lib_name/qmldir + copy_qmldir_examples.commands = $(COPY_FILE) \"$$replace(copy_qmldir_examples.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir_examples.target, /, $$QMAKE_DIR_SEP)\" + QMAKE_EXTRA_TARGETS += copy_qmldir_examples + PRE_TARGETDEPS += $$copy_qmldir_examples.target + + win32 { + CONFIG(debug, release|debug) { + src_dir = debug + src_lib = $${lib_name}d.dll + } + CONFIG(release, release|debug){ + src_dir = release + src_lib = $${lib_name}.dll + } + } else { + src_lib = $${lib_name}.so + } + copy_lib.target = $$make_qmldir_path/$$src_lib + copy_lib.depends = $$OUT_PWD/../../src/$$lib_name/$$src_dir/$$src_lib + copy_lib.commands = $(COPY_FILE) \"$$replace(copy_lib.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_lib.target, /, $$QMAKE_DIR_SEP)\" + QMAKE_EXTRA_TARGETS += copy_lib + PRE_TARGETDEPS += $$copy_lib.target +} + +#android { +# contains(TARGET, qml.*) { +# charts_qmldir.files = $$CHART_BUILD_QML_PLUGIN_DIR/qmldir +# charts_qmldir.path = /assets/imports/QtCommercial/Chart +# charts_qmlplugin.files = $$CHART_BUILD_QML_PLUGIN_DIR/libqtcommercialchartqml.so +# charts_qmlplugin.path = /libs/$$ANDROID_TARGET_ARCH +# INSTALLS += charts_qmldir charts_qmlplugin +# } +#} diff --git a/examples/examples.pro b/examples/examples.pro index 4d5e5a5b..dd772368 100644 --- a/examples/examples.pro +++ b/examples/examples.pro @@ -2,6 +2,7 @@ TEMPLATE = subdirs SUBDIRS += barchart \ rainfall \ widget \ - mapdata + mapdata \ + qmlbarchart qtHaveModule(multimedia): SUBDIRS += spectrum diff --git a/examples/mapdata/mapdata.pro b/examples/mapdata/mapdata.pro index 09bffe58..7ed5984e 100644 --- a/examples/mapdata/mapdata.pro +++ b/examples/mapdata/mapdata.pro @@ -1,13 +1,12 @@ +!include( ../examples.pri ) { + error( "Couldn't find the examples.pri file!" ) +} + SOURCES += main.cpp mapdata.cpp HEADERS += mapdata.h QT += datavis3d widgets -android { - target.path = /libs/$$ANDROID_TARGET_ARCH -} else { - target.path = $$[QT_INSTALL_EXAMPLES]/datavis3d/mapdata -} INSTALLS += target RESOURCES += \ diff --git a/examples/qmlbarchart/main.cpp b/examples/qmlbarchart/main.cpp new file mode 100644 index 00000000..79891676 --- /dev/null +++ b/examples/qmlbarchart/main.cpp @@ -0,0 +1,41 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVis3D module. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtGui/QGuiApplication> +#include "qtquick2applicationviewer.h" + +int main(int argc, char *argv[]) +{ + QGuiApplication app(argc, argv); + + QtQuick2ApplicationViewer viewer; +#ifdef Q_OS_ANDROID + viewer.addImportPath(QString::fromLatin1("assets:/qml")); + viewer.engine()->addPluginPath(QString::fromLatin1("%1/../%2").arg(QDir::homePath(), + QString::fromLatin1("lib"))); +#else + viewer.addImportPath(QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), + QString::fromLatin1("qml"))); +#endif + viewer.setMainQmlFile(QStringLiteral("qml/qmlbarchart/main.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/examples/qmlbarchart/qml/qmlbarchart/main.qml b/examples/qmlbarchart/qml/qmlbarchart/main.qml new file mode 100644 index 00000000..406596b8 --- /dev/null +++ b/examples/qmlbarchart/qml/qmlbarchart/main.qml @@ -0,0 +1,37 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVis3D module. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 +import com.digia.QtDataVis3D 1.0 + +Rectangle { + width: 360 + height: 360 + Text { + text: qsTr("Hello World") + anchors.centerIn: parent + } + MouseArea { + anchors.fill: parent + onClicked: { + Qt.quit(); + } + } +} diff --git a/examples/qmlbarchart/qmlbarchart.desktop b/examples/qmlbarchart/qmlbarchart.desktop new file mode 100644 index 00000000..c01705df --- /dev/null +++ b/examples/qmlbarchart/qmlbarchart.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=qmlbarchart +Exec=/opt/qmlbarchart/bin/qmlbarchart +Icon=qmlbarchart64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/examples/qmlbarchart/qmlbarchart.pro b/examples/qmlbarchart/qmlbarchart.pro new file mode 100644 index 00000000..2c729f6b --- /dev/null +++ b/examples/qmlbarchart/qmlbarchart.pro @@ -0,0 +1,26 @@ +!include( ../examples.pri ) { + error( "Couldn't find the examples.pri file!" ) +} + +# Add more folders to ship with the application, here +folder_01.source = qml/qmlbarchart +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Installation path +# target.path = + +# Please do not modify the following two lines. Required for deployment. +include(qtquick2applicationviewer/qtquick2applicationviewer.pri) +qtcAddDeployment() diff --git a/examples/qmlbarchart/qmlbarchart64.png b/examples/qmlbarchart/qmlbarchart64.png Binary files differnew file mode 100644 index 00000000..707d5c4e --- /dev/null +++ b/examples/qmlbarchart/qmlbarchart64.png diff --git a/examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.cpp b/examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.cpp new file mode 100644 index 00000000..10709d7a --- /dev/null +++ b/examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.cpp @@ -0,0 +1,81 @@ +// checksum 0x4f6f version 0x90005 +/* + 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_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; +#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); +#ifdef Q_OS_ANDROID + 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 +} diff --git a/examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.h b/examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.h new file mode 100644 index 00000000..cf66f140 --- /dev/null +++ b/examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.h @@ -0,0 +1,33 @@ +// checksum 0xfde6 version 0x90005 +/* + 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. +*/ + +#ifndef QTQUICK2APPLICATIONVIEWER_H +#define QTQUICK2APPLICATIONVIEWER_H + +#include <QtQuick/QQuickView> + +class QtQuick2ApplicationViewer : public QQuickView +{ + Q_OBJECT + +public: + explicit QtQuick2ApplicationViewer(QWindow *parent = 0); + virtual ~QtQuick2ApplicationViewer(); + + void setMainQmlFile(const QString &file); + void addImportPath(const QString &path); + + void showExpanded(); + +private: + class QtQuick2ApplicationViewerPrivate *d; +}; + +#endif // QTQUICK2APPLICATIONVIEWER_H diff --git a/examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.pri b/examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.pri new file mode 100644 index 00000000..e5f7990f --- /dev/null +++ b/examples/qmlbarchart/qtquick2applicationviewer/qtquick2applicationviewer.pri @@ -0,0 +1,180 @@ +# checksum 0x7b0d version 0x90005 +# This file was generated by the Qt Quick 2 Application wizard of Qt Creator. +# The code below adds the QtQuick2ApplicationViewer to the project and handles +# the activation of QML debugging. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +QT += qml quick + +SOURCES += $$PWD/qtquick2applicationviewer.cpp +HEADERS += $$PWD/qtquick2applicationviewer.h +INCLUDEPATH += $$PWD +# This file was generated by an application wizard of Qt Creator. +# 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 = $$PWD + +android-no-sdk { + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = /data/user/qt/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + target.path = /data/user/qt + + export(target.path) + INSTALLS += target +} else:android { + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = /assets/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + x86 { + target.path = /libs/x86 + } else: armeabi-v7a { + target.path = /libs/armeabi-v7a + } else { + target.path = /libs/armeabi + } + + export(target.path) + INSTALLS += target +} else: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 { + 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) { + 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 + 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 + } + } + !isEmpty(target.path) { + installPrefix = $${target.path} + } else { + installPrefix = /opt/$${TARGET} + } + 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 + } + + isEmpty(target.path) { + target.path = $${installPrefix}/bin + export(target.path) + } + INSTALLS += target +} + +export (ICON) +export (INSTALLS) +export (DEPLOYMENT) +export (LIBS) +export (QMAKE_EXTRA_TARGETS) +} diff --git a/examples/rainfall/rainfall.pro b/examples/rainfall/rainfall.pro index da456274..381b3402 100644 --- a/examples/rainfall/rainfall.pro +++ b/examples/rainfall/rainfall.pro @@ -1,10 +1,8 @@ +!include( ../examples.pri ) { + error( "Couldn't find the examples.pri file!" ) +} + SOURCES += main.cpp QT += datavis3d - -android { - target.path = /libs/$$ANDROID_TARGET_ARCH -} else { - target.path = $$[QT_INSTALL_EXAMPLES]/datavis3d/rainfall -} INSTALLS += target diff --git a/examples/spectrum/spectrum.pro b/examples/spectrum/spectrum.pro index 9a8d45ae..eb431bd8 100644 --- a/examples/spectrum/spectrum.pro +++ b/examples/spectrum/spectrum.pro @@ -1,3 +1,7 @@ +!include( ../examples.pri ) { + error( "Couldn't find the examples.pri file!" ) +} + qtHaveModule(multimedia) { include(spectrum.pri) diff --git a/examples/widget/widget.pro b/examples/widget/widget.pro index 7a17e2a6..1d7e91be 100644 --- a/examples/widget/widget.pro +++ b/examples/widget/widget.pro @@ -1,11 +1,10 @@ +!include( ../examples.pri ) { + error( "Couldn't find the examples.pri file!" ) +} + SOURCES += main.cpp chart.cpp HEADERS += chart.h QT += datavis3d widgets -android { - target.path = /libs/$$ANDROID_TARGET_ARCH -} else { - target.path = $$[QT_INSTALL_EXAMPLES]/datavis3d/widget -} INSTALLS += target |