Merge PR #184: Add a kiosk mode command line option

This commit is contained in:
Jenkins 2019-04-16 01:33:09 +02:00
commit eea7dc3f01
3 changed files with 13 additions and 2 deletions

View File

@ -24,6 +24,8 @@
#include <QQmlApplicationEngine>
#include <QtQuickControls2>
#include <QSysInfo>
#include <QCommandLineParser>
#include <QCommandLineOption>
#ifdef Q_OS_ANDROID
#include <QtAndroidExtras/QtAndroid>
@ -69,6 +71,12 @@ int main(int argc, char *argv[])
application.setApplicationName("nymea-app");
application.setOrganizationName("nymea");
QCommandLineParser parser;
parser.addHelpOption();
QCommandLineOption kioskOption = QCommandLineOption({"k", "kiosk"}, "Start the application in kiosk mode.");
parser.addOption(kioskOption);
parser.process(application);
// Initialize app log controller as early as possible, but after setting app name etc
AppLogController::instance();
@ -116,6 +124,8 @@ int main(int argc, char *argv[])
StyleController styleController;
engine->rootContext()->setContextProperty("styleController", &styleController);
engine->rootContext()->setContextProperty("kioskMode", parser.isSet(kioskOption));
engine->rootContext()->setContextProperty("systemProductType", QSysInfo::productType());
engine->rootContext()->setContextProperty("useVirtualKeyboard", qgetenv("QT_IM_MODULE") == "qtvirtualkeyboard");

View File

@ -13,7 +13,7 @@ ApplicationWindow {
height: 580
minimumWidth: 360
minimumHeight: 480
visibility: ApplicationWindow.AutomaticVisibility
visibility: kioskMode ? ApplicationWindow.FullScreen : settings.viewMode
// Those variables must be present in the Style
title: appName
@ -33,7 +33,7 @@ ApplicationWindow {
readonly property bool landscape: app.width > app.height
readonly property var settings: Settings {
property alias viewMode: app.visibility
property int viewMode: ApplicationWindow.AutomaticVisibility
property alias windowWidth: app.width
property alias windowHeight: app.height
property bool returnToHome: false

View File

@ -19,6 +19,7 @@ Page {
RowLayout {
Layout.fillWidth: true; Layout.leftMargin: app.margins; Layout.rightMargin: app.margins; Layout.topMargin: app.margins
visible: !kioskMode
Label {
Layout.fillWidth: true
text: qsTr("View mode")