From bb4c83e294f109497f504c0dd8e23143c07883d6 Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Tue, 1 Nov 2022 13:29:43 +0200 Subject: homescreen: Add support for defining an activation area This is an example on how to use it, and it enables a new variable HOMESCREEN_EMBEDDED_PANELS to test it out. It gives out the same rectangle are we have in the homescreen demo, but the panels are this time embedded into the background surface, rather than being a separate surface. This introduces a new Qml file, background_with_panels which integrates both the top and the bottom panel into a single qml, which main.cpp loads. While at it, this corrects up the indentation we have in shell.cpp file and sets up the default output in homeScreenHandler constructor. Due to this way integrates and works, it should *not* be visual change between the two (the normal, two panel surfaces) and this version. It can used as a example how to integrate this better, when managing multiple surfaces is not easy to be done by the toolkit or runtime. Bug-AGL: SPEC-4594 Signed-off-by: Marius Vlad Change-Id: Ibe274b336b15e9713d0cdded5424cc8e92257d7f --- homescreen/qml/background_with_panels.qml | 159 ++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 homescreen/qml/background_with_panels.qml (limited to 'homescreen/qml/background_with_panels.qml') diff --git a/homescreen/qml/background_with_panels.qml b/homescreen/qml/background_with_panels.qml new file mode 100644 index 0000000..f0cb958 --- /dev/null +++ b/homescreen/qml/background_with_panels.qml @@ -0,0 +1,159 @@ +import QtQuick 2.13 +import QtQuick.Window 2.13 +import QtQuick.Layouts 1.15 + +Window { + id: background + width: Screen.width + height: Screen.height + flags: Qt.FramelessWindowHint + visible: true + + Grid { + rows: 3 + spacing: 0 + + Rectangle { + width: Screen.width + height: 216 + color: "#33363a" + + Timer { + id:notificationTimer + interval: 3000 + running: false + repeat: true + onTriggered: notificationItem.visible = false + } + + Item { + id: notificationItem + x: 0 + y: 0 + z: 1 + width: 1280 + height: 100 + opacity: 0.8 + visible: false + + Rectangle { + width: parent.width + height: parent.height + anchors.fill: parent + color: "gray" + Image { + id: notificationIcon + width: 70 + height: 70 + anchors.left: parent.left + anchors.leftMargin: 20 + anchors.verticalCenter: parent.verticalCenter + source: "" + } + + Text { + id: notificationtext + font.pixelSize: 25 + anchors.left: notificationIcon.right + anchors.leftMargin: 5 + anchors.verticalCenter: parent.verticalCenter + color: "white" + text: qsTr("") + } + } + } + + Connections { + target: homescreenHandler + onShowNotification: { + notificationIcon.source = icon_path + notificationtext.text = text + notificationItem.visible = true + notificationTimer.restart() + } + } + + Image { + anchors.fill: parent + source: './images/TopSection_NoText_NoIcons-01.svg' + //fillMode: Image.PreserveAspectCrop + fillMode: Image.Stretch + + RowLayout { + anchors.fill: parent + spacing: 0 + ShortcutArea { + id: shortcutArea + Layout.fillWidth: true + Layout.fillHeight: true + Layout.preferredWidth: 775 + } + StatusArea { + id: statusArea + Layout.fillWidth: true + Layout.fillHeight: true + Layout.preferredWidth: 291 + } + } + } + + } + + Rectangle { + width: Screen.width + height: Screen.height - (2 * 216) + Image { + anchors.fill: parent + source: './images/AGL_HMI_Blue_Background_NoCar-01.png' + } + + } + + Rectangle { + width: Screen.width + height: 216 + color: "#33363a" + + MediaArea { + } + + Timer { + id:informationTimer + interval: 3000 + running: false + repeat: true + onTriggered: { + bottomInformation.visible = false + } + } + + Item { + id: bottomInformation + width: parent.width + height: 216 + anchors.bottom: parent.bottom + visible: false + Text { + id: bottomText + anchors.centerIn: parent + font.pixelSize: 25 + font.letterSpacing: 5 + horizontalAlignment: Text.AlignHCenter + color: "white" + text: "" + z:1 + } + } + + Connections { + target: homescreenHandler + onShowInformation: { + bottomText.text = info + bottomInformation.visible = true + informationTimer.restart() + } + } + + } + } +} -- cgit 1.2.3-korg