aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBocklage, Jens <Jens_Bocklage@mentor.com>2016-11-04 17:23:50 +0100
committerBocklage, Jens <Jens_Bocklage@mentor.com>2016-11-04 17:23:50 +0100
commit1876ff11a182afb1cf0180f188a2e13ad7b8095c (patch)
treebca3471c1588a93ed6e6d13e8f835da6fc72a60c
parentbf0f33bec5ad705666dff6c821334524c1b81583 (diff)
Add two sample apps just to have some Qt based applications that can be launched.
Nav is Qt widget based. Media is QML based. Signed-off-by: Bocklage, Jens <Jens_Bocklage@mentor.com>
-rw-r--r--HomeScreen.pro4
-rw-r--r--SampleMediaApp/SampleMediaApp.pro17
-rw-r--r--SampleMediaApp/SampleMediaApp64.pngbin0 -> 2843 bytes
-rw-r--r--SampleMediaApp/SampleMediaApp80.pngbin0 -> 4185 bytes
-rw-r--r--SampleMediaApp/main.cpp14
-rw-r--r--SampleMediaApp/qml/SampleMediaApp/main.qml30
-rw-r--r--SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.cpp87
-rw-r--r--SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.h33
-rw-r--r--SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.pri202
-rw-r--r--SampleNavigationApp/SampleNavigationApp.pro20
-rw-r--r--SampleNavigationApp/main.cpp11
-rw-r--r--SampleNavigationApp/mainwindow.cpp17
-rw-r--r--SampleNavigationApp/mainwindow.h22
-rw-r--r--SampleNavigationApp/mainwindow.ui91
14 files changed, 547 insertions, 1 deletions
diff --git a/HomeScreen.pro b/HomeScreen.pro
index c85f759..3a16a99 100644
--- a/HomeScreen.pro
+++ b/HomeScreen.pro
@@ -22,7 +22,9 @@ SUBDIRS = interfaces \
InputEventManager \
SampleAppTimeDate \
WindowManager \
- SampleHomeScreenInterfaceApp
+ SampleHomeScreenInterfaceApp \
+ SampleNavigationApp \
+ SampleMediaApp
HomeScreen.depends = interfaces
HomeScreenSimulator.depends = interfaces
diff --git a/SampleMediaApp/SampleMediaApp.pro b/SampleMediaApp/SampleMediaApp.pro
new file mode 100644
index 0000000..5ea066f
--- /dev/null
+++ b/SampleMediaApp/SampleMediaApp.pro
@@ -0,0 +1,17 @@
+# Add more folders to ship with the application, here
+folder_01.source = qml/SampleMediaApp
+folder_01.target = qml
+DEPLOYMENTFOLDERS = folder_01
+
+# Additional import path used to resolve QML modules in Creator's code model
+QML_IMPORT_PATH =
+
+# 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/SampleMediaApp/SampleMediaApp64.png b/SampleMediaApp/SampleMediaApp64.png
new file mode 100644
index 0000000..207f059
--- /dev/null
+++ b/SampleMediaApp/SampleMediaApp64.png
Binary files differ
diff --git a/SampleMediaApp/SampleMediaApp80.png b/SampleMediaApp/SampleMediaApp80.png
new file mode 100644
index 0000000..ebc444e
--- /dev/null
+++ b/SampleMediaApp/SampleMediaApp80.png
Binary files differ
diff --git a/SampleMediaApp/main.cpp b/SampleMediaApp/main.cpp
new file mode 100644
index 0000000..a1ea908
--- /dev/null
+++ b/SampleMediaApp/main.cpp
@@ -0,0 +1,14 @@
+#include <QtGui/QGuiApplication>
+#include "qtquick2applicationviewer.h"
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication app(argc, argv);
+
+ QtQuick2ApplicationViewer viewer;
+ viewer.setMainQmlFile(QStringLiteral("qml/SampleMediaApp/main.qml"));
+ viewer.setFlags(Qt::FramelessWindowHint);
+ viewer.showExpanded();
+
+ return app.exec();
+}
diff --git a/SampleMediaApp/qml/SampleMediaApp/main.qml b/SampleMediaApp/qml/SampleMediaApp/main.qml
new file mode 100644
index 0000000..7d63362
--- /dev/null
+++ b/SampleMediaApp/qml/SampleMediaApp/main.qml
@@ -0,0 +1,30 @@
+import QtQuick 2.0
+
+Rectangle {
+ width: 400
+ height: 300
+
+
+ Rectangle {
+ width: parent.width / 2
+ height: parent.height
+ color: "yellow"
+
+ Text {
+ text: qsTr("SampleMediaApp")
+ anchors.centerIn: parent
+ }
+ }
+
+ Rectangle {
+ width: parent.width / 2
+ height: parent.height
+ x: parent.width / 2
+ color: "yellow"
+
+ Text {
+ text: qsTr("default size: 400x300px")
+ anchors.centerIn: parent
+ }
+ }
+}
diff --git a/SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.cpp b/SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.cpp
new file mode 100644
index 0000000..b58190f
--- /dev/null
+++ b/SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.cpp
@@ -0,0 +1,87 @@
+// checksum 0xc01f 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_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
+}
diff --git a/SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.h b/SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.h
new file mode 100644
index 0000000..cf66f14
--- /dev/null
+++ b/SampleMediaApp/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/SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.pri b/SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.pri
new file mode 100644
index 0000000..ce35a9b
--- /dev/null
+++ b/SampleMediaApp/qtquick2applicationviewer/qtquick2applicationviewer.pri
@@ -0,0 +1,202 @@
+# checksum 0x21c9 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:ios {
+ copyCommand =
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+ source = $$replace(source, \\\\, /)
+ target = $CODESIGNING_FOLDER_PATH/$$eval($${deploymentfolder}.target)
+ target = $$replace(target, \\\\, /)
+ sourcePathSegments = $$split(source, /)
+ targetFullPath = $$target/$$last(sourcePathSegments)
+ targetFullPath ~= s,/\\.?/,/,
+ !isEqual(source,$$targetFullPath) {
+ !isEmpty(copyCommand):copyCommand += &&
+ copyCommand += mkdir -p \"$$target\"
+ copyCommand += && cp -r \"$$source\" \"$$target\"
+ }
+ }
+ !isEmpty(copyCommand) {
+ copyCommand = echo Copying application data... && $$copyCommand
+ !isEmpty(QMAKE_POST_LINK): QMAKE_POST_LINK += ";"
+ QMAKE_POST_LINK += "$$copyCommand"
+ export(QMAKE_POST_LINK)
+ }
+} 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/SampleNavigationApp/SampleNavigationApp.pro b/SampleNavigationApp/SampleNavigationApp.pro
new file mode 100644
index 0000000..ab57a0c
--- /dev/null
+++ b/SampleNavigationApp/SampleNavigationApp.pro
@@ -0,0 +1,20 @@
+#-------------------------------------------------
+#
+# Project created by QtCreator 2016-11-04T17:03:47
+#
+#-------------------------------------------------
+
+QT += core gui
+
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+TARGET = SampleNavigationApp
+TEMPLATE = app
+
+
+SOURCES += main.cpp\
+ mainwindow.cpp
+
+HEADERS += mainwindow.h
+
+FORMS += mainwindow.ui
diff --git a/SampleNavigationApp/main.cpp b/SampleNavigationApp/main.cpp
new file mode 100644
index 0000000..b48f94e
--- /dev/null
+++ b/SampleNavigationApp/main.cpp
@@ -0,0 +1,11 @@
+#include "mainwindow.h"
+#include <QApplication>
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ MainWindow w;
+ w.show();
+
+ return a.exec();
+}
diff --git a/SampleNavigationApp/mainwindow.cpp b/SampleNavigationApp/mainwindow.cpp
new file mode 100644
index 0000000..e79aeb8
--- /dev/null
+++ b/SampleNavigationApp/mainwindow.cpp
@@ -0,0 +1,17 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ // no window decoration
+ setWindowFlags(Qt::FramelessWindowHint);
+
+ ui->setupUi(this);
+}
+
+MainWindow::~MainWindow()
+{
+ delete ui;
+}
diff --git a/SampleNavigationApp/mainwindow.h b/SampleNavigationApp/mainwindow.h
new file mode 100644
index 0000000..a3948a9
--- /dev/null
+++ b/SampleNavigationApp/mainwindow.h
@@ -0,0 +1,22 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+
+namespace Ui {
+class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ explicit MainWindow(QWidget *parent = 0);
+ ~MainWindow();
+
+private:
+ Ui::MainWindow *ui;
+};
+
+#endif // MAINWINDOW_H
diff --git a/SampleNavigationApp/mainwindow.ui b/SampleNavigationApp/mainwindow.ui
new file mode 100644
index 0000000..07ea34d
--- /dev/null
+++ b/SampleNavigationApp/mainwindow.ui
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>MainWindow</string>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <widget class="QLabel" name="label">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>171</width>
+ <height>17</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Sample Navigation App</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="pushButton">
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>60</y>
+ <width>100</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>100x100px</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_2">
+ <property name="geometry">
+ <rect>
+ <x>110</x>
+ <y>220</y>
+ <width>161</width>
+ <height>17</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>400x300px default size</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuSampleMenu">
+ <property name="title">
+ <string>SampleMenu</string>
+ </property>
+ </widget>
+ <widget class="QMenu" name="menuYet_Another_Sample">
+ <property name="title">
+ <string>Yet Another Sample</string>
+ </property>
+ </widget>
+ <addaction name="menuSampleMenu"/>
+ <addaction name="menuYet_Another_Sample"/>
+ </widget>
+ <widget class="QToolBar" name="mainToolBar">
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ </widget>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections/>
+</ui>