aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Main.qml49
-rw-r--r--MainWithCluster.qml65
-rw-r--r--am-config.yaml1
-rw-r--r--plugins/screenManager/screenmanager.cpp5
4 files changed, 55 insertions, 65 deletions
diff --git a/Main.qml b/Main.qml
index 713856e..1428b7d 100644
--- a/Main.qml
+++ b/Main.qml
@@ -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()) {