From ca01d5f9f5e960337a044be6e00de58fd4fbdb05 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Fri, 24 Jan 2014 13:22:02 +0100 Subject: Make basicsuite demos run stand-alone This change will make the demos run standalone when built in Qt Creator. - Rename example directories to lowercase/non-whitespace to avoid build & deployment problems - Add title.txt files so titles remain displayed correctly in the launcher - Add a common shared source files used for the standalone apps, and .pro-files for each example - Remove .qmlproject files (not needed) - Adjust documentation to match the new directory structure Change-Id: Ib24e461952da3b2c88aab0363249115ea44ee0f2 Reviewed-by: Eirik Aavitsland --- basicsuite/shared/engine.cpp | 35 +++++++++++++++++++ basicsuite/shared/engine.h | 49 +++++++++++++++++++++++++++ basicsuite/shared/main.cpp | 80 ++++++++++++++++++++++++++++++++++++++++++++ basicsuite/shared/shared.pri | 13 +++++++ 4 files changed, 177 insertions(+) create mode 100644 basicsuite/shared/engine.cpp create mode 100644 basicsuite/shared/engine.h create mode 100644 basicsuite/shared/main.cpp create mode 100644 basicsuite/shared/shared.pri (limited to 'basicsuite/shared') diff --git a/basicsuite/shared/engine.cpp b/basicsuite/shared/engine.cpp new file mode 100644 index 0000000..669bbf4 --- /dev/null +++ b/basicsuite/shared/engine.cpp @@ -0,0 +1,35 @@ +/**************************************************************************** +** +** 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 Qt Enterprise Embedded. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 +** +****************************************************************************/ +#include "engine.h" +#include +#include + +DummyEngine::DummyEngine(QObject *parent) + : QObject(parent) +{ + QScreen *screen = QGuiApplication::primaryScreen(); + m_screenSize = screen->size(); + m_dpcm = screen->physicalDotsPerInchY() / 2.54f; + + // Make the buttons smaller for smaller screens to compensate for that + // one typically holds it nearer to the eyes. + float low = 5; + float high = 20; + float screenSizeCM = qMax(qMin(m_screenSize.width(), m_screenSize.height()) / m_dpcm, low); + m_dpcm *= (screenSizeCM - low) / (high - low) * 0.5 + 0.5; +} diff --git a/basicsuite/shared/engine.h b/basicsuite/shared/engine.h new file mode 100644 index 0000000..78479db --- /dev/null +++ b/basicsuite/shared/engine.h @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** 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 Qt Enterprise Embedded. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 +** +****************************************************************************/ +#ifndef ENGINE_H +#define ENGINE_H + +#include +#include + +class QQmlEngine; +class QQuickItem; +class FpsCounter; +class QQuickWindow; + +/*! + A simplified version of the one used by b2qt-launcher +*/ +class DummyEngine : public QObject +{ + Q_OBJECT + +public: + explicit DummyEngine(QObject *parent = 0); + + Q_INVOKABLE int smallFontSize() const { return qMax(m_dpcm * 0.4, 10); } + Q_INVOKABLE int fontSize() const { return qMax(m_dpcm * 0.6, 14); } + Q_INVOKABLE int titleFontSize() const { return qMax(m_dpcm * 0.9, 20); } + Q_INVOKABLE int centimeter() const { return m_dpcm; } + +private: + QSize m_screenSize; + qreal m_dpcm; +}; + +#endif // ENGINE_H diff --git a/basicsuite/shared/main.cpp b/basicsuite/shared/main.cpp new file mode 100644 index 0000000..748b22a --- /dev/null +++ b/basicsuite/shared/main.cpp @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** 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 Qt Enterprise Embedded. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 +** +****************************************************************************/ +#include + +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include "engine.h" + + +int main(int argc, char **argv) +{ + qputenv("QT_IM_MODULE", QByteArray("b2qtinputcontext")); + + QGuiApplication app(argc, argv); + QString path = app.applicationDirPath(); + + QPalette pal; + pal.setColor(QPalette::Text, Qt::black); + pal.setColor(QPalette::WindowText, Qt::black); + pal.setColor(QPalette::ButtonText, Qt::black); + pal.setColor(QPalette::Base, Qt::white); + QGuiApplication::setPalette(pal); + + QString target = qgetenv("B2QT_BASE") + "-" + qgetenv("B2QT_PLATFORM"); + QFile excludeFile(path + QStringLiteral("/exclude.txt")); + if (excludeFile.open(QFile::ReadOnly)) { + const QStringList excludeList = QString::fromUtf8(excludeFile.readAll()).split(":"); + if (excludeList.contains(target)) + qDebug("Warning: This example may not be fully functional on this platform"); + excludeFile.close(); + } + + QString fontName = QStringLiteral("/system/lib/fonts/OpenSans-Regular.ttf"); + if (QFile::exists(fontName)) { + QFontDatabase::addApplicationFont(fontName); + QFont font("Open Sans"); + font.setPixelSize(12); + QGuiApplication::setFont(font); + } else { + QFont font; + font.setStyleHint(QFont::SansSerif); + QGuiApplication::setFont(font); + } + + QQuickView view; + + DummyEngine engine; + view.rootContext()->setContextProperty("engine", &engine); + view.setColor(Qt::black); + view.setResizeMode(QQuickView::SizeRootObjectToView); + view.setSource(QUrl::fromLocalFile(path + QStringLiteral("/main.qml"))); + view.show(); + + app.exec(); +} diff --git a/basicsuite/shared/shared.pri b/basicsuite/shared/shared.pri new file mode 100644 index 0000000..2ae3d3d --- /dev/null +++ b/basicsuite/shared/shared.pri @@ -0,0 +1,13 @@ +QT += quick + +DESTPATH = /data/user/$$TARGET +target.path = $$DESTPATH + +excludeFile.files = exclude.txt +excludeFile.path = $$DESTPATH +INSTALLS += excludeFile + +SOURCES += $$PWD/main.cpp \ + $$PWD/engine.cpp + +HEADERS += $$PWD/engine.h -- cgit v1.2.3 From b2957ef0efbf55872d36762705b62822cc828cf3 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Wed, 29 Jan 2014 11:20:03 +0100 Subject: Enable virtual keyboard when building demos stand-alone Add a shared QML file that defines an InputPanel and loads the main QML for each demo. Also, - Do not define QT_IM_MODULE (set already in the system) - Improved exclude file parsing to match b2qt-launcher Change-Id: Ibdd0371a57878ef7bc585aa67fcd148377f54bc6 Reviewed-by: Eirik Aavitsland --- basicsuite/shared/loader.qml | 62 ++++++++++++++++++++++++++++++++++++++++++++ basicsuite/shared/main.cpp | 7 ++--- basicsuite/shared/shared.pri | 15 ++++++++--- 3 files changed, 77 insertions(+), 7 deletions(-) create mode 100644 basicsuite/shared/loader.qml (limited to 'basicsuite/shared') diff --git a/basicsuite/shared/loader.qml b/basicsuite/shared/loader.qml new file mode 100644 index 0000000..42232d2 --- /dev/null +++ b/basicsuite/shared/loader.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of Qt Enterprise Embedded. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 +** +****************************************************************************/ +import QtQuick 2.0 +import QtVkb 1.0 + +Item { + id: root + + Loader { + anchors.left: parent.left + anchors.top: parent.top + anchors.right: parent.right + anchors.bottom: inputPanel.top + + source: "main.qml" + } + + InputPanel { + id: inputPanel + z: 99 + y: root.height + anchors.left: root.left + anchors.right: root.right + + states: State { + name: "visible" + when: Qt.inputMethod.visible + PropertyChanges { + target: inputPanel + y: root.height - inputPanel.height + } + } + transitions: Transition { + from: "" + to: "visible" + reversible: true + ParallelAnimation { + NumberAnimation { + properties: "y" + duration: 250 + easing.type: Easing.InOutQuad + } + } + } + } +} + diff --git a/basicsuite/shared/main.cpp b/basicsuite/shared/main.cpp index 748b22a..ac2fba4 100644 --- a/basicsuite/shared/main.cpp +++ b/basicsuite/shared/main.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -34,7 +35,7 @@ int main(int argc, char **argv) { - qputenv("QT_IM_MODULE", QByteArray("b2qtinputcontext")); + //qputenv("QT_IM_MODULE", QByteArray("qtvkb")); QGuiApplication app(argc, argv); QString path = app.applicationDirPath(); @@ -49,7 +50,7 @@ int main(int argc, char **argv) QString target = qgetenv("B2QT_BASE") + "-" + qgetenv("B2QT_PLATFORM"); QFile excludeFile(path + QStringLiteral("/exclude.txt")); if (excludeFile.open(QFile::ReadOnly)) { - const QStringList excludeList = QString::fromUtf8(excludeFile.readAll()).split(":"); + const QStringList excludeList = QString::fromUtf8(excludeFile.readAll()).split(QRegExp(":|\\s+")); if (excludeList.contains(target)) qDebug("Warning: This example may not be fully functional on this platform"); excludeFile.close(); @@ -73,7 +74,7 @@ int main(int argc, char **argv) view.rootContext()->setContextProperty("engine", &engine); view.setColor(Qt::black); view.setResizeMode(QQuickView::SizeRootObjectToView); - view.setSource(QUrl::fromLocalFile(path + QStringLiteral("/main.qml"))); + view.setSource(QUrl::fromLocalFile(path + QStringLiteral("/loader.qml"))); view.show(); app.exec(); diff --git a/basicsuite/shared/shared.pri b/basicsuite/shared/shared.pri index 2ae3d3d..b785913 100644 --- a/basicsuite/shared/shared.pri +++ b/basicsuite/shared/shared.pri @@ -3,11 +3,18 @@ QT += quick DESTPATH = /data/user/$$TARGET target.path = $$DESTPATH -excludeFile.files = exclude.txt -excludeFile.path = $$DESTPATH -INSTALLS += excludeFile - SOURCES += $$PWD/main.cpp \ $$PWD/engine.cpp HEADERS += $$PWD/engine.h + +defineTest(b2qtdemo_deploy_defaults) { + commonFiles.files = \ + exclude.txt \ + ../shared/loader.qml + commonFiles.path = $$DESTPATH + OTHER_FILES += $${commonFiles.files} + INSTALLS += commonFiles + export(OTHER_FILES) + export(INSTALLS) +} -- cgit v1.2.3 From 7e7fefd2a1b1a5d40534da6792af6c9a2a18aa97 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Thu, 6 Feb 2014 15:02:27 +0100 Subject: Ensure common files are deployed when building demos stand-alone In addition to exporting the INSTALLS variable, we also need to export the files and their path to have correct deployment targets generated. Change-Id: I1e84cd5673f9a2e9f7d32ec237ca31f090e50e5f Reviewed-by: Eirik Aavitsland --- basicsuite/shared/shared.pri | 2 ++ 1 file changed, 2 insertions(+) (limited to 'basicsuite/shared') diff --git a/basicsuite/shared/shared.pri b/basicsuite/shared/shared.pri index b785913..08f749e 100644 --- a/basicsuite/shared/shared.pri +++ b/basicsuite/shared/shared.pri @@ -15,6 +15,8 @@ defineTest(b2qtdemo_deploy_defaults) { commonFiles.path = $$DESTPATH OTHER_FILES += $${commonFiles.files} INSTALLS += commonFiles + export(commonFiles.files) + export(commonFiles.path) export(OTHER_FILES) export(INSTALLS) } -- cgit v1.2.3 From 9fc7566c002dfd378f3dd0b94b349319e27959c0 Mon Sep 17 00:00:00 2001 From: aavit Date: Wed, 12 Feb 2014 13:44:10 +0100 Subject: Update copyright year MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I55381dedffc4d86bc25b0c3f6ef18230d70272ee Reviewed-by: Topi Reiniƶ --- basicsuite/shared/engine.cpp | 2 +- basicsuite/shared/engine.h | 2 +- basicsuite/shared/main.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'basicsuite/shared') diff --git a/basicsuite/shared/engine.cpp b/basicsuite/shared/engine.cpp index 669bbf4..da021e5 100644 --- a/basicsuite/shared/engine.cpp +++ b/basicsuite/shared/engine.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/basicsuite/shared/engine.h b/basicsuite/shared/engine.h index 78479db..1600fc6 100644 --- a/basicsuite/shared/engine.h +++ b/basicsuite/shared/engine.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/basicsuite/shared/main.cpp b/basicsuite/shared/main.cpp index ac2fba4..198b228 100644 --- a/basicsuite/shared/main.cpp +++ b/basicsuite/shared/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** -- cgit v1.2.3 From b9e5b195465f1f07524fe0b0bc88aed7ff452dee Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Tue, 18 Feb 2014 15:22:57 +0100 Subject: Fix vkb import path Task-number: QTEE-391 Change-Id: I14b1d6ad883bb62bcfd0ec44d083e95b7c4932cd Reviewed-by: Rainer Keller --- basicsuite/shared/loader.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'basicsuite/shared') diff --git a/basicsuite/shared/loader.qml b/basicsuite/shared/loader.qml index 42232d2..733fded 100644 --- a/basicsuite/shared/loader.qml +++ b/basicsuite/shared/loader.qml @@ -16,7 +16,8 @@ ** ****************************************************************************/ import QtQuick 2.0 -import QtVkb 1.0 +import QtQuick.Enterprise.VirtualKeyboard 1.0 + Item { id: root -- cgit v1.2.3 From f261c03c73970a14f361bb9d00864f3357403c1d Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Thu, 20 Feb 2014 13:12:47 +0100 Subject: Add QtWidgets dependecy to shared.pri MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTEE-417 Change-Id: I927a6ac2bfe4fbce4819bd740f4a7d1df19466ac Reviewed-by: Kalle Viironen Reviewed-by: Eirik Aavitsland Reviewed-by: Topi Reiniƶ --- basicsuite/shared/main.cpp | 7 ++++--- basicsuite/shared/shared.pri | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'basicsuite/shared') diff --git a/basicsuite/shared/main.cpp b/basicsuite/shared/main.cpp index 198b228..74781e9 100644 --- a/basicsuite/shared/main.cpp +++ b/basicsuite/shared/main.cpp @@ -16,8 +16,9 @@ ** ****************************************************************************/ #include - -#include +// QtWidget (QApplication) dependecy is required by QtCharts demo, +// when QtWidget dependecy is not required use QGuiApplication from QtGui module +#include #include #include #include @@ -37,7 +38,7 @@ int main(int argc, char **argv) { //qputenv("QT_IM_MODULE", QByteArray("qtvkb")); - QGuiApplication app(argc, argv); + QApplication app(argc, argv); QString path = app.applicationDirPath(); QPalette pal; diff --git a/basicsuite/shared/shared.pri b/basicsuite/shared/shared.pri index 08f749e..dbfd513 100644 --- a/basicsuite/shared/shared.pri +++ b/basicsuite/shared/shared.pri @@ -1,4 +1,5 @@ -QT += quick +# widget dependecy is required by QtCharts demo +QT += quick widgets DESTPATH = /data/user/$$TARGET target.path = $$DESTPATH -- cgit v1.2.3