diff options
-rw-r--r-- | Main.qml | 49 | ||||
-rw-r--r-- | MainWithCluster.qml | 65 | ||||
-rw-r--r-- | am-config.yaml | 1 | ||||
-rw-r--r-- | plugins/screenManager/screenmanager.cpp | 5 |
4 files changed, 55 insertions, 65 deletions
@@ -31,6 +31,9 @@ import QtQuick 2.5 import QtQuick.Window 2.2 +import QtApplicationManager 1.0 +import com.pelagicore.ScreenManager 1.0 +import "sysui/Cluster" import "sysui" import controls 1.0 import utils 1.0 @@ -38,6 +41,9 @@ import utils 1.0 Rectangle { id: root + property bool showClusterIfPossible: ApplicationManager.additionalConfiguration.showCluster + property var cluster + color: "black" width: Style.screenWidth height: Style.screenHeight @@ -71,4 +77,47 @@ Rectangle { anchors.fill: display } } + + Component { + id: clusterComponent + Window { + id: cluster + title: "Neptune Cluster Display" + height: 720 + width: 1920 + visible: false + + color: "black" + + Cluster {} + + Component.onCompleted: { + WindowManager.registerCompositorView(cluster) + Style.withCluster = true + ScreenManager.setScreen(cluster, 1) + cluster.show() + } + } + } + + Window.onActiveChanged: { + if (Window.active && !WindowManager.runningOnDesktop) + cluster.requestActivate() + } + + Component.onCompleted: { + var canDisplayCluster = Screen.desktopAvailableWidth > Screen.width || WindowManager.runningOnDesktop || ScreenManager.screenCount() > 1 + + if (!showClusterIfPossible) { + console.log("Showing Instrument Cluster was disabled"); + return + } + + if (canDisplayCluster) { + console.log("Showing Instrument Cluster"); + cluster = clusterComponent.createObject(root); + } else { + console.log("Showing the Instrument Cluster is not possible on this platform"); + } + } } diff --git a/MainWithCluster.qml b/MainWithCluster.qml deleted file mode 100644 index 057141d..0000000 --- a/MainWithCluster.qml +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Pelagicore AG -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Neptune IVI UI. -** -** $QT_BEGIN_LICENSE:GPL-QTAS$ -** Commercial License Usage -** Licensees holding valid commercial Qt Automotive Suite licenses may use -** this file in accordance with the commercial license agreement provided -** with the Software or, alternatively, in accordance with the terms -** contained in a written agreement between you and The Qt Company. For -** licensing terms and conditions see https://www.qt.io/terms-conditions. -** For further information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) any later version -** approved by the KDE Free Qt Foundation. The licenses are as published by -** the Free Software Foundation and appearing in the file LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -** SPDX-License-Identifier: GPL-3.0 -** -****************************************************************************/ - -import QtQuick 2.1 -import QtQuick.Window 2.1 -import QtApplicationManager 1.0 -import com.pelagicore.ScreenManager 1.0 -import utils 1.0 -import "sysui/Cluster" - -Main { - id: root - - Window { - id: cluster - title: "Neptune Cluster Display" - height: 720 - width: 1920 - visible: false - - color: "black" - - Cluster {} - - Component.onCompleted: { - WindowManager.registerCompositorView(cluster) - Style.withCluster = true - ScreenManager.setScreen(cluster, 1) - cluster.show() - } - } - - Window.onActiveChanged: { - if (Window.active && !WindowManager.runningOnDesktop) - cluster.requestActivate() - } -} diff --git a/am-config.yaml b/am-config.yaml index 6b64e9d..ae7c07b 100644 --- a/am-config.yaml +++ b/am-config.yaml @@ -21,6 +21,7 @@ ui: additionalConfiguration: appStoreServerUrl: 'http://chaos.pelagicore.net:8080' styleConfig: "auto" + showCluster: yes windowIcon: "imports/shared/assets/icons/active/apps@96.png" # development setup: no security diff --git a/plugins/screenManager/screenmanager.cpp b/plugins/screenManager/screenmanager.cpp index 42b04e3..72a6bba 100644 --- a/plugins/screenManager/screenmanager.cpp +++ b/plugins/screenManager/screenmanager.cpp @@ -41,6 +41,11 @@ ScreenManager::ScreenManager(QObject *parent) connect(qApp, &QGuiApplication::screenAdded, this, &ScreenManager::availableScreensChanged); } +int ScreenManager::screenCount() const +{ + return QGuiApplication::screens().count(); +} + void ScreenManager::setScreen(QWindow *window, int screen) { if (screen >= 0 && screen < QGuiApplication::screens().count()) { |