From cf45517adbb3d399f9fb2744f2c4daf3e547e608 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 9 Dec 2020 15:17:55 +0100 Subject: [PATCH] Allow passing default main views via cmdline --- nymea-app/main.cpp | 3 +++ nymea-app/ui/MainPage.qml | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/nymea-app/main.cpp b/nymea-app/main.cpp index d7df2877..e5c4e362 100644 --- a/nymea-app/main.cpp +++ b/nymea-app/main.cpp @@ -100,6 +100,8 @@ int main(int argc, char *argv[]) defaultStyleOption.setDefaultValue("light"); parser.addOption(defaultStyleOption); #endif + QCommandLineOption defaultViewsOption = QCommandLineOption({"v", "default-views"}, "The main views enabled by default if there is no configuration done by the user and the style doesn't dictate them, comma separated.", "mainviews"); + parser.addOption(defaultViewsOption); QCommandLineOption kioskOption = QCommandLineOption({"k", "kiosk"}, "Start the application in kiosk mode."); parser.addOption(kioskOption); parser.process(application); @@ -165,6 +167,7 @@ int main(int argc, char *argv[]) engine->rootContext()->setContextProperty("qtBuildVersion", QT_VERSION_STR); engine->rootContext()->setContextProperty("qtVersion", qVersion()); + engine->rootContext()->setContextProperty("defaultMainViewFilter", parser.value(defaultViewsOption)); engine->rootContext()->setContextProperty("kioskMode", parser.isSet(kioskOption)); engine->rootContext()->setContextProperty("autoConnectHost", parser.value(connectOption)); diff --git a/nymea-app/ui/MainPage.qml b/nymea-app/ui/MainPage.qml index 7980b6aa..ce2bf6b1 100644 --- a/nymea-app/ui/MainPage.qml +++ b/nymea-app/ui/MainPage.qml @@ -94,7 +94,16 @@ Page { category: engine.jsonRpcClient.currentHost.uuid property string mainMenuContent: "" property var sortOrder: [] - property var filterList: app.hasOwnProperty("mainViewsFilter") ? app.mainViewsFilter : ["things"] + // Priority for main view config: + // 1. Settings made by the user + // 2. Style mainViewsFilter as that comes with branding (for now, if a style defines main views, all of them are active by default) + // 3. Command line args + // 4. Just show "things" alone by default + property var filterList: app.hasOwnProperty("mainViewsFilter") ? + app.mainViewsFilter + : defaultMainViewFilter.length > 0 ? + defaultMainViewFilter.split(',') + : ["things"] property int currentIndex: 0 }