From 692829414a1eaf9c5c2431ba66c494cb0736556d Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Tue, 16 Apr 2019 00:59:55 +0200 Subject: [PATCH] Add a kiosk mode command line option --- nymea-app/main.cpp | 10 ++++++++++ nymea-app/ui/Nymea.qml | 4 ++-- nymea-app/ui/appsettings/LookAndFeelSettingsPage.qml | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/nymea-app/main.cpp b/nymea-app/main.cpp index ab5cc1ee..d92eaeb9 100644 --- a/nymea-app/main.cpp +++ b/nymea-app/main.cpp @@ -24,6 +24,8 @@ #include #include #include +#include +#include #ifdef Q_OS_ANDROID #include @@ -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"); diff --git a/nymea-app/ui/Nymea.qml b/nymea-app/ui/Nymea.qml index e79deeaa..96a9211c 100644 --- a/nymea-app/ui/Nymea.qml +++ b/nymea-app/ui/Nymea.qml @@ -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 diff --git a/nymea-app/ui/appsettings/LookAndFeelSettingsPage.qml b/nymea-app/ui/appsettings/LookAndFeelSettingsPage.qml index 0ed3101f..f4d1d824 100644 --- a/nymea-app/ui/appsettings/LookAndFeelSettingsPage.qml +++ b/nymea-app/ui/appsettings/LookAndFeelSettingsPage.qml @@ -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")