summaryrefslogtreecommitdiffstats
path: root/basicsuite/shared/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'basicsuite/shared/main.cpp')
-rw-r--r--basicsuite/shared/main.cpp109
1 files changed, 50 insertions, 59 deletions
diff --git a/basicsuite/shared/main.cpp b/basicsuite/shared/main.cpp
index 9e27596..b3e2253 100644
--- a/basicsuite/shared/main.cpp
+++ b/basicsuite/shared/main.cpp
@@ -48,24 +48,24 @@
**
****************************************************************************/
#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>
+#ifdef QT_WIDGETS_LIB
+#include <QApplication>
+#elif QT_GUI_LIB
+#include <QGuiApplication>
+#endif
#include <QtGui/QFont>
#include <QtGui/QFontDatabase>
#include <QtGui/QScreen>
#include <QtGui/QPalette>
-#include <QtCore/QRegExp>
-#include <QtCore/QFile>
#include <QtQml/QQmlApplicationEngine>
-
#include <QtQml/QQmlEngine>
#include <QtQml/QQmlContext>
#include <QtQml/QQmlComponent>
#include <QSettings>
#include <QQuickStyle>
#include <QIcon>
+#include <QDir>
#include <QQuickWindow>
#if defined(USE_QTWEBENGINE)
@@ -90,75 +90,69 @@ int main(int argc, char **argv)
QtWebEngine::initialize();
#endif
- //qputenv("QT_IM_MODULE", QByteArray("qtvkb"));
- qputenv("QT_QUICK_CONTROLS_CONF", "/data/user/qt/qtquickcontrols2/qtquickcontrols2.conf");
- QIcon::setThemeName("gallery");
- QIcon::setThemeSearchPaths(QStringList() << "/data/user/qt/qtquickcontrols2/icons");
+ QString appPath = QString::fromLocal8Bit(argv[0]);
+ QByteArray appDir = appPath.left(appPath.lastIndexOf(QDir::separator())).toLocal8Bit();
+ QByteArray appName = appPath.split(QDir::separator().toLatin1()).last().toLocal8Bit();
- QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+ // VKB is active also for desktop
+ qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
- QApplication app(argc, argv);
+#if QT_CONFIG(cross_compile)
+ qputenv("QT_QUICK_CONTROLS_CONF", "/data/user/qt/" + appName + "/qtquickcontrols2.conf");
+#endif
- QFontDatabase::addApplicationFont(":/fonts/TitilliumWeb-Regular.ttf");
- QFontDatabase::addApplicationFont(":/fonts/TitilliumWeb-SemiBold.ttf");
- QFontDatabase::addApplicationFont(":/fonts/TitilliumWeb-Bold.ttf");
- QFontDatabase::addApplicationFont(":/fonts/TitilliumWeb-Black.ttf");
-
- //For eBike demo
- QFontDatabase::addApplicationFont(":/fonts/ebike-fonts/Montserrat-Bold.ttf");
- QFontDatabase::addApplicationFont(":/fonts/ebike-fonts/Montserrat-Light.ttf");
- QFontDatabase::addApplicationFont(":/fonts/ebike-fonts/Montserrat-Medium.ttf");
- QFontDatabase::addApplicationFont(":/fonts/ebike-fonts/Montserrat-Regular.ttf");
- QFontDatabase::addApplicationFont(":/fonts/ebike-fonts/Teko-Bold.ttf");
- QFontDatabase::addApplicationFont(":/fonts/ebike-fonts/Teko-Light.ttf");
- QFontDatabase::addApplicationFont(":/fonts/ebike-fonts/Teko-Medium.ttf");
- QFontDatabase::addApplicationFont(":/fonts/ebike-fonts/Teko-Regular.ttf");
- QFontDatabase::addApplicationFont(":/fonts/ebike-fonts/fontawesome-webfont.ttf");
-
- 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();
+ if (appName.contains("qtquickcontrols2")) {
+ QIcon::setThemeName("gallery");
+ QIcon::setThemeSearchPaths(QStringList() << appDir + "/icons");
}
- QString fontName = QStringLiteral("/system/lib/fonts/DejaVuSans.ttf");
- if (QFile::exists(fontName)) {
- QFontDatabase::addApplicationFont(fontName);
- QFont font("DejaVu Sans");
- font.setPixelSize(12);
- QGuiApplication::setFont(font);
+ QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+
+#ifdef QT_WIDGETS_LIB
+ QApplication app(argc, argv);
+#elif QT_GUI_LIB
+ QGuiApplication app(argc, argv);
+#endif
+
+ bool fontsAsResource = false;
+ QStringList fonts;
+ QDir fontsResource(QStringLiteral(":/fonts"));
+ if (fontsResource.exists()) {
+ fontsAsResource = true;
+ fonts = fontsResource.entryList();
} else {
- QFont font;
- font.setStyleHint(QFont::SansSerif);
- QGuiApplication::setFont(font);
+ QDir fontsDirectory(QCoreApplication::applicationDirPath() + QStringLiteral("/fonts"));
+ fonts = fontsDirectory.entryList();
}
- // Material style can be set only for devices supporting GL
+ if (fonts.isEmpty())
+ qWarning() << "No fonts provided, using system default!";
+
+ QString path = fontsAsResource ? QStringLiteral(":/fonts/") : QCoreApplication::applicationDirPath() + QStringLiteral("/fonts/");
+ for (int i = 0; i < fonts.size(); ++i)
+ QFontDatabase::addApplicationFont(path + fonts.at(i));
+
+ // Material style can be set only for devices supporting OpenGL
QSettings styleSettings;
QString style = styleSettings.value("style").toString();
if (checkGlAvailability()) {
if (style.isEmpty() || style == "Default")
styleSettings.setValue("style", "Material");
} else {
- qDebug()<<"No GL available, skipping Material style";
+ qWarning() << "No OpenGL available, skipping Material style";
}
QQuickStyle::setStyle(styleSettings.value("style").toString());
DummyEngine engine;
QQmlApplicationEngine applicationengine;
+
+#if !QT_CONFIG(cross_compile)
+ applicationengine.addImportPath(QCoreApplication::applicationDirPath() + "/qmlplugins");
+#else
+ applicationengine.addImportPath("/data/user/qt/qmlplugins");
+#endif
+
QString appFont("TitilliumWeb");
applicationengine.rootContext()->setContextProperty("engine", &engine);
applicationengine.rootContext()->setContextProperty("appFont", appFont);
@@ -173,10 +167,7 @@ int main(int argc, char **argv)
applicationengine.rootContext()->setContextProperty("_primaryGrey", demoSettings.value("primaryGrey", "#9d9faa"));
applicationengine.rootContext()->setContextProperty("_secondaryGrey", demoSettings.value("secondaryGrey", "#3a4055"));
- applicationengine.rootContext()->setContextProperty("VideosLocation", demoSettings.value("videosLocation", "file:///data/videos"));
- applicationengine.rootContext()->setContextProperty("DefaultVideoUrl", demoSettings.value("defaultVideoUrl", "file:///data/videos/Qt+for+Designers+and+Developers.mp4"));
-
- applicationengine.load(QUrl::fromLocalFile(path + "/SharedMain.qml"));
+ applicationengine.load(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + "/SharedMain.qml"));
app.exec();
}