summaryrefslogtreecommitdiffstats
path: root/basicsuite/shared
diff options
context:
space:
mode:
Diffstat (limited to 'basicsuite/shared')
-rw-r--r--basicsuite/shared/engine.cpp35
-rw-r--r--basicsuite/shared/engine.h49
-rw-r--r--basicsuite/shared/loader.qml63
-rw-r--r--basicsuite/shared/main.cpp82
-rw-r--r--basicsuite/shared/shared.pri23
5 files changed, 252 insertions, 0 deletions
diff --git a/basicsuite/shared/engine.cpp b/basicsuite/shared/engine.cpp
new file mode 100644
index 0000000..da021e5
--- /dev/null
+++ b/basicsuite/shared/engine.cpp
@@ -0,0 +1,35 @@
+/****************************************************************************
+**
+** 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
+**
+****************************************************************************/
+#include "engine.h"
+#include <QGuiApplication>
+#include <QScreen>
+
+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<float>(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..1600fc6
--- /dev/null
+++ b/basicsuite/shared/engine.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** 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
+**
+****************************************************************************/
+#ifndef ENGINE_H
+#define ENGINE_H
+
+#include <QObject>
+#include <QSize>
+
+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<int>(m_dpcm * 0.4, 10); }
+ Q_INVOKABLE int fontSize() const { return qMax<int>(m_dpcm * 0.6, 14); }
+ Q_INVOKABLE int titleFontSize() const { return qMax<int>(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/loader.qml b/basicsuite/shared/loader.qml
new file mode 100644
index 0000000..733fded
--- /dev/null
+++ b/basicsuite/shared/loader.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** 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 QtQuick.Enterprise.VirtualKeyboard 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
new file mode 100644
index 0000000..74781e9
--- /dev/null
+++ b/basicsuite/shared/main.cpp
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** 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
+**
+****************************************************************************/
+#include <QtCore/QDebug>
+// QtWidget (QApplication) dependecy is required by QtCharts demo,
+// when QtWidget dependecy is not required use QGuiApplication from QtGui module
+#include <QtWidgets/QApplication>
+#include <QtGui/QFont>
+#include <QtGui/QFontDatabase>
+#include <QtGui/QScreen>
+#include <QtGui/QPalette>
+#include <QtCore/QRegExp>
+
+#include <QtQuick/QQuickView>
+
+#include <QtQml/QQmlEngine>
+#include <QtQml/QQmlContext>
+#include <QtQml/QQmlComponent>
+
+#include "engine.h"
+
+
+int main(int argc, char **argv)
+{
+ //qputenv("QT_IM_MODULE", QByteArray("qtvkb"));
+
+ QApplication 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(QRegExp(":|\\s+"));
+ 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("/loader.qml")));
+ view.show();
+
+ app.exec();
+}
diff --git a/basicsuite/shared/shared.pri b/basicsuite/shared/shared.pri
new file mode 100644
index 0000000..dbfd513
--- /dev/null
+++ b/basicsuite/shared/shared.pri
@@ -0,0 +1,23 @@
+# widget dependecy is required by QtCharts demo
+QT += quick widgets
+
+DESTPATH = /data/user/$$TARGET
+target.path = $$DESTPATH
+
+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(commonFiles.files)
+ export(commonFiles.path)
+ export(OTHER_FILES)
+ export(INSTALLS)
+}