summaryrefslogtreecommitdiffstats
path: root/basicsuite/shared
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@digia.com>2014-01-24 13:22:02 +0100
committerTopi Reiniƶ <topi.reinio@digia.com>2014-01-27 11:29:55 +0200
commitca01d5f9f5e960337a044be6e00de58fd4fbdb05 (patch)
tree3f2e25c5f05d5e5ba9bc44f2e5a09b86741c3fb5 /basicsuite/shared
parent5a362f80d9da6d2d36efc127588f3c427211f98c (diff)
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 <eirik.aavitsland@digia.com>
Diffstat (limited to 'basicsuite/shared')
-rw-r--r--basicsuite/shared/engine.cpp35
-rw-r--r--basicsuite/shared/engine.h49
-rw-r--r--basicsuite/shared/main.cpp80
-rw-r--r--basicsuite/shared/shared.pri13
4 files changed, 177 insertions, 0 deletions
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 <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..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 <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/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 <QtCore/QDebug>
+
+#include <QtGui/QGuiApplication>
+#include <QtGui/QFont>
+#include <QtGui/QFontDatabase>
+#include <QtGui/QScreen>
+#include <QtGui/QPalette>
+
+#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("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