WIP: add Qt Quick HomeScreen UI 85/7385/1
authorTasuku Suzuki <tasuku.suzuki@qt.io>
Fri, 2 Dec 2016 02:19:51 +0000 (11:19 +0900)
committerTasuku Suzuki <tasuku.suzuki@qt.io>
Fri, 2 Dec 2016 04:14:55 +0000 (13:14 +0900)
Change-Id: I2be964f6d9e76df616169d7b2654d17ae9446687
Signed-off-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
100 files changed:
HomeScreen.pro
HomeScreenNG/HomeScreenNG.pro [new file with mode: 0644]
HomeScreenNG/applicationlauncher.cpp [new file with mode: 0644]
HomeScreenNG/applicationlauncher.h [new file with mode: 0644]
HomeScreenNG/main.cpp [new file with mode: 0644]
HomeScreenNG/qml/MediaArea.qml [new file with mode: 0644]
HomeScreenNG/qml/MediaAreaBlank.qml [new file with mode: 0644]
HomeScreenNG/qml/MediaAreaMusic.qml [new file with mode: 0644]
HomeScreenNG/qml/MediaAreaRadio.qml [new file with mode: 0644]
HomeScreenNG/qml/ShortcutArea.qml [new file with mode: 0644]
HomeScreenNG/qml/ShortcutIcon.qml [new file with mode: 0644]
HomeScreenNG/qml/StatusArea.qml [new file with mode: 0644]
HomeScreenNG/qml/TopArea.qml [new file with mode: 0644]
HomeScreenNG/qml/images/AGL_HMI_Background_NoCar-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaMusic/BackArrow.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaMusic/Volume_Off.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_AlbumArtwork.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/DividingLine.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/GreenLine.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Music_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/X.png [new file with mode: 0644]
HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc [new file with mode: 0644]
HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Shortcut/shortcut.qrc [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_Inactive-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Status/status.qrc [new file with mode: 0644]
HomeScreenNG/qml/images/TopSection_NoText_NoIcons-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Utility_Logo_Background-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Utility_Logo_Colour-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Utility_Music_Background-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Utility_Radio_Background-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png [new file with mode: 0644]
HomeScreenNG/qml/images/Weather/weather.qrc [new file with mode: 0644]
HomeScreenNG/qml/images/images.qrc [new file with mode: 0644]
HomeScreenNG/qml/main.qml [new file with mode: 0644]
HomeScreenNG/qml/qml.qrc [new file with mode: 0644]
HomeScreenNG/statusbarmodel.cpp [new file with mode: 0644]
HomeScreenNG/statusbarmodel.h [new file with mode: 0644]
HomeScreenNG/statusbarserver.cpp [new file with mode: 0644]
HomeScreenNG/statusbarserver.h [new file with mode: 0644]

index ec20600..c8e96b0 100644 (file)
@@ -29,6 +29,7 @@ SUBDIRS = interfaces \
     SampleNavigationApp \
     SampleMediaApp \
     sample-qml \
+    HomeScreenNG
 
 HomeScreen.depends = interfaces
 HomeScreenSimulator.depends = interfaces
diff --git a/HomeScreenNG/HomeScreenNG.pro b/HomeScreenNG/HomeScreenNG.pro
new file mode 100644 (file)
index 0000000..450395c
--- /dev/null
@@ -0,0 +1,33 @@
+TEMPLATE = app
+QT = quick dbus
+
+include(../interfaces/interfaces.pri)
+
+HEADERS += \
+    statusbarmodel.h \
+    statusbarserver.h \
+    applicationlauncher.h
+
+SOURCES += main.cpp \
+    statusbarmodel.cpp \
+    statusbarserver.cpp \
+    applicationlauncher.cpp
+
+RESOURCES += \
+    qml/images/MediaPlayer/mediaplayer.qrc \
+    qml/images/MediaMusic/mediamusic.qrc \
+    qml/images/Weather/weather.qrc \
+    qml/images/Shortcut/shortcut.qrc \
+    qml/images/Status/status.qrc \
+    qml/images/images.qrc \
+    qml/qml.qrc
+
+# The following define makes your compiler emit warnings if you use
+# any feature of Qt which as been marked deprecated (the exact warnings
+# depend on your compiler). Please consult the documentation of the
+# deprecated API in order to know how to port your code away from it.
+DEFINES += QT_DEPRECATED_WARNINGS
+
+target.path = /opt/$${TARGET}/bin
+INSTALLS += target
+
diff --git a/HomeScreenNG/applicationlauncher.cpp b/HomeScreenNG/applicationlauncher.cpp
new file mode 100644 (file)
index 0000000..c4254ce
--- /dev/null
@@ -0,0 +1,13 @@
+#include "applicationlauncher.h"
+
+#include <QtCore/QDebug>
+
+ApplicationLauncher::ApplicationLauncher(QObject *parent)
+    : QObject(parent)
+{
+}
+
+void ApplicationLauncher::launch(const QString &application)
+{
+    qDebug() << "launch" << application;
+}
diff --git a/HomeScreenNG/applicationlauncher.h b/HomeScreenNG/applicationlauncher.h
new file mode 100644 (file)
index 0000000..409de25
--- /dev/null
@@ -0,0 +1,16 @@
+#ifndef APPLICATIONLAUNCHER_H
+#define APPLICATIONLAUNCHER_H
+
+#include <QtCore/QObject>
+
+class ApplicationLauncher : public QObject
+{
+    Q_OBJECT
+public:
+    explicit ApplicationLauncher(QObject *parent = nullptr);
+
+public slots:
+    void launch(const QString &application);
+};
+
+#endif // APPLICATIONLAUNCHER_H
diff --git a/HomeScreenNG/main.cpp b/HomeScreenNG/main.cpp
new file mode 100644 (file)
index 0000000..dad4c7d
--- /dev/null
@@ -0,0 +1,26 @@
+#include <QtGui/QGuiApplication>
+#include <QtGui/QWindow>
+#include <QtQml/QQmlApplicationEngine>
+#include <QtQml/qqml.h>
+#include <QtCore/QDebug>
+
+#include "applicationlauncher.h"
+#include "statusbarmodel.h"
+
+int main(int argc, char *argv[])
+{
+    QCoreApplication::setOrganizationDomain(QStringLiteral("automotivelinux.org"));
+    QCoreApplication::setOrganizationName(QStringLiteral("AutomotiveGradeLinux"));
+    QCoreApplication::setApplicationName(QStringLiteral("HomeScreen"));
+    QCoreApplication::setApplicationVersion(QStringLiteral("0.0.1"));
+
+    QGuiApplication app(argc, argv);
+
+    qmlRegisterType<ApplicationLauncher>("HomeScreen", 1, 0, "ApplicationLauncher");
+    qmlRegisterType<StatusBarModel>("HomeScreen", 1, 0, "StatusBarModel");
+
+    QQmlApplicationEngine engine;
+    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
+
+    return app.exec();
+}
diff --git a/HomeScreenNG/qml/MediaArea.qml b/HomeScreenNG/qml/MediaArea.qml
new file mode 100644 (file)
index 0000000..16ceb27
--- /dev/null
@@ -0,0 +1,40 @@
+import QtQuick 2.7
+import QtQuick.Controls 2.0
+
+StackView {
+    id: root
+    width: 1080
+    height: 215
+
+    initialItem: blank
+
+    Component {
+        id: blank
+        MediaAreaBlank {
+            MouseArea {
+                anchors.fill: parent
+                onClicked: root.push(mouse.x < 540 ? music : radio)
+            }
+        }
+    }
+
+    Component {
+        id: music
+        MediaAreaMusic {
+            MouseArea {
+                anchors.fill: parent
+                onClicked: root.pop()
+            }
+        }
+    }
+
+    Component {
+        id: radio
+        MediaAreaRadio {
+            MouseArea {
+                anchors.fill: parent
+                onClicked: root.pop()
+            }
+        }
+    }
+}
diff --git a/HomeScreenNG/qml/MediaAreaBlank.qml b/HomeScreenNG/qml/MediaAreaBlank.qml
new file mode 100644 (file)
index 0000000..7698e18
--- /dev/null
@@ -0,0 +1,12 @@
+import QtQuick 2.7
+
+Image {
+    width: 1080
+    height: 215
+    source: './images/Utility_Logo_Background-01.png'
+
+    Image {
+        anchors.centerIn: parent
+        source: './images/Utility_Logo_Colour-01.png'
+    }
+}
diff --git a/HomeScreenNG/qml/MediaAreaMusic.qml b/HomeScreenNG/qml/MediaAreaMusic.qml
new file mode 100644 (file)
index 0000000..3bd0077
--- /dev/null
@@ -0,0 +1,68 @@
+import QtQuick 2.6
+import QtQuick.Layouts 1.1
+import QtQuick.Controls 2.0
+
+Image {
+    width: 1080
+    height: 215
+    source: './images/Utility_Music_Background-01.png'
+
+    ColumnLayout {
+        anchors.fill: parent
+        spacing: 1
+        RowLayout {
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+            Layout.preferredHeight: 107
+            spacing: 10
+            Image {
+                source: './images/MediaMusic/AlbumArtwork.png'
+                width: 105.298
+                height: 110.179
+                fillMode: Image.PreserveAspectFit
+            }
+            Label {
+                text: 'Come Together - The Beatles'
+                font.family: 'Roboto'
+                font.pixelSize: 32
+                color: 'white'
+            }
+        }
+
+        RowLayout {
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+            Layout.preferredHeight: 107
+            Image {
+                source: './images/MediaPlayer/AGL_MediaPlayer_BackArrow.png'
+            }
+            Image {
+                source: './images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png'
+            }
+            Image {
+                source: './images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png'
+            }
+
+            ProgressBar {
+                Layout.fillWidth: true
+                Layout.preferredWidth: 2
+            }
+
+            Label {
+                text: '2:12/4:19'
+                font.family: 'Roboto'
+                font.pixelSize: 20
+            }
+            Image {
+                source: './images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png'
+            }
+            Image {
+                source: './images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png'
+            }
+            ProgressBar {
+                Layout.fillWidth: true
+                Layout.preferredWidth: 1
+            }
+        }
+    }
+}
diff --git a/HomeScreenNG/qml/MediaAreaRadio.qml b/HomeScreenNG/qml/MediaAreaRadio.qml
new file mode 100644 (file)
index 0000000..b2a9a33
--- /dev/null
@@ -0,0 +1,7 @@
+import QtQuick 2.6
+
+Image {
+    width: 1080
+    height: 215
+    source: './images/Utility_Radio_Background-01.png'
+}
diff --git a/HomeScreenNG/qml/ShortcutArea.qml b/HomeScreenNG/qml/ShortcutArea.qml
new file mode 100644 (file)
index 0000000..a98bec2
--- /dev/null
@@ -0,0 +1,53 @@
+import QtQuick 2.7
+import QtQuick.Layouts 1.1
+import HomeScreen 1.0
+
+Item {
+    id: root
+    width: 785
+    height: 218
+
+    ApplicationLauncher {
+        id: launcher
+    }
+
+    ListModel {
+        id: applicationModel
+        ListElement {
+            name: 'Home'
+            application: 'launcher'
+        }
+        ListElement {
+            name: 'Multimedia'
+            application: 'musicplayer'
+        }
+        ListElement {
+            name: 'HVAC'
+            application: 'hvac'
+        }
+        ListElement {
+            name: 'Navigation'
+            application: 'navigation'
+        }
+    }
+
+    property int currentIndex: -1 // TODO: to be moved to whereever right
+
+    RowLayout {
+        anchors.fill: parent
+        spacing: 2
+        Repeater {
+            model: applicationModel
+            delegate: ShortcutIcon {
+                Layout.fillWidth: true
+                Layout.fillHeight: true
+                name: model.name
+                active: model.index === root.currentIndex
+                onClicked: {
+                    root.currentIndex = active ? -1 : model.index
+                    launcher.launch(model.application)
+                }
+            }
+        }
+    }
+}
diff --git a/HomeScreenNG/qml/ShortcutIcon.qml b/HomeScreenNG/qml/ShortcutIcon.qml
new file mode 100644 (file)
index 0000000..84550d9
--- /dev/null
@@ -0,0 +1,37 @@
+import QtQuick 2.6
+
+MouseArea {
+    id: root
+    width: 195
+    height: 216.8
+    property string name: 'Home'
+    property bool active: false
+    Image {
+        id: icon
+        anchors.fill: parent
+        source: './images/Shortcut/HMI_Shortcut_%1-01.png'.arg(root.name)
+    }
+    Image {
+        anchors.fill: parent
+        source: './images/Shortcut/HMI_Shortcut_%1_Active-01.png'.arg(root.name)
+        opacity: 1.0 - icon.opacity
+    }
+    states: [
+        State {
+            when: root.active
+            PropertyChanges {
+                target: icon
+                opacity: 0.0
+            }
+        }
+    ]
+
+    transitions: [
+        Transition {
+            NumberAnimation {
+                properties: 'opacity'
+                easing.type: Easing.OutExpo
+            }
+        }
+    ]
+}
diff --git a/HomeScreenNG/qml/StatusArea.qml b/HomeScreenNG/qml/StatusArea.qml
new file mode 100644 (file)
index 0000000..6dda3ba
--- /dev/null
@@ -0,0 +1,86 @@
+import QtQuick 2.7
+import QtQuick.Layouts 1.1
+import QtQuick.Controls 2.0
+import HomeScreen 1.0
+
+Item {
+    id: root
+    width: 295
+    height: 218
+
+    property date now: new Date
+    Timer {
+        interval: 100; running: true; repeat: true;
+        onTriggered: root.now = new Date
+    }
+
+    RowLayout {
+        anchors.fill: parent
+        spacing: 0
+        Item {
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+            Layout.preferredWidth: 295 - 76
+            ColumnLayout {
+                anchors.fill: parent
+                anchors.margins: 40
+                spacing: 0
+                Label {
+                    Layout.fillWidth: true
+                    Layout.fillHeight: true
+                    text: Qt.formatDate(now, 'dddd').toUpperCase()
+                    font.family: 'Roboto'
+                    font.pixelSize: 13
+                    color: 'white'
+                    verticalAlignment:  Text.AlignVCenter
+//                    Rectangle {
+//                        anchors.fill: parent
+//                        anchors.margins: 5
+//                        color: 'red'
+//                        border.color: 'blue'
+//                        border.width: 1
+//                        z: -1
+//                    }
+                }
+                Label {
+                    Layout.fillWidth: true
+                    Layout.fillHeight: true
+                    text: Qt.formatTime(now, 'h:mm ap').toUpperCase()
+                    font.family: 'Roboto'
+                    font.pixelSize: 40
+                    color: 'white'
+                    horizontalAlignment:  Text.AlignHCenter
+                    verticalAlignment:  Text.AlignVCenter
+                }
+                RowLayout {
+                    Layout.fillWidth: true
+                    Layout.fillHeight: true
+                    Layout.preferredHeight: 20
+                    Image {
+                        source: './images/Weather/WeatherIcons_Rain-01.png'
+                    }
+                    Label {
+                        text: '64°F'
+                        color: 'white'
+                        font.family: 'Helvetica'
+                        font.pixelSize: 32
+                    }
+                }
+            }
+        }
+        ColumnLayout {
+            id: icons
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+            Layout.preferredWidth: 76
+            spacing: -10
+            Repeater {
+                model: StatusBarModel {}
+                delegate: Image {
+                    source: model.modelData
+                    fillMode: Image.PreserveAspectFit
+                }
+            }
+        }
+    }
+}
diff --git a/HomeScreenNG/qml/TopArea.qml b/HomeScreenNG/qml/TopArea.qml
new file mode 100644 (file)
index 0000000..8de8a8d
--- /dev/null
@@ -0,0 +1,26 @@
+import QtQuick 2.7
+import QtQuick.Layouts 1.1
+
+Image {
+    width: 1920
+    height: 218
+    source: './images/TopSection_NoText_NoIcons-01.png'
+    fillMode: Image.PreserveAspectCrop
+
+    RowLayout {
+        anchors.fill: parent
+        spacing: 0
+        ShortcutArea {
+            id: shortcutArea
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+            Layout.preferredWidth: 785
+        }
+        StatusArea {
+            id: statusArea
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+            Layout.preferredWidth: 295
+        }
+    }
+}
diff --git a/HomeScreenNG/qml/images/AGL_HMI_Background_NoCar-01.png b/HomeScreenNG/qml/images/AGL_HMI_Background_NoCar-01.png
new file mode 100644 (file)
index 0000000..595f742
Binary files /dev/null and b/HomeScreenNG/qml/images/AGL_HMI_Background_NoCar-01.png differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png b/HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png
new file mode 100644 (file)
index 0000000..3716ab3
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/BackArrow.png b/HomeScreenNG/qml/images/MediaMusic/BackArrow.png
new file mode 100644 (file)
index 0000000..63e38d9
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaMusic/BackArrow.png differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png b/HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png
new file mode 100644 (file)
index 0000000..a513705
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png b/HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png
new file mode 100644 (file)
index 0000000..30f75c5
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png b/HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png
new file mode 100644 (file)
index 0000000..8ea4402
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png b/HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png
new file mode 100644 (file)
index 0000000..ae5c82e
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/Volume_Off.png b/HomeScreenNG/qml/images/MediaMusic/Volume_Off.png
new file mode 100644 (file)
index 0000000..07e3353
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaMusic/Volume_Off.png differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc b/HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc
new file mode 100644 (file)
index 0000000..b1138c0
--- /dev/null
@@ -0,0 +1,11 @@
+<RCC>
+    <qresource prefix="/images/MediaMusic">
+        <file>AlbumArtwork.png</file>
+        <file>BackArrow.png</file>
+        <file>ForwardArrow.png</file>
+        <file>ShuffleIcon.png</file>
+        <file>Volume_Loud.png</file>
+        <file>Volume_Medium.png</file>
+        <file>Volume_Off.png</file>
+    </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_AlbumArtwork.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_AlbumArtwork.png
new file mode 100644 (file)
index 0000000..14a52b2
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_AlbumArtwork.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png
new file mode 100644 (file)
index 0000000..0ec1f67
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png
new file mode 100644 (file)
index 0000000..bc2df1d
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png
new file mode 100644 (file)
index 0000000..8d8fc02
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png
new file mode 100644 (file)
index 0000000..94fe38f
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png
new file mode 100644 (file)
index 0000000..12609e1
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png
new file mode 100644 (file)
index 0000000..299903e
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png
new file mode 100644 (file)
index 0000000..33cc700
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png
new file mode 100644 (file)
index 0000000..9bdb14d
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png
new file mode 100644 (file)
index 0000000..76b0fc9
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png
new file mode 100644 (file)
index 0000000..c423005
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png
new file mode 100644 (file)
index 0000000..beece66
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png
new file mode 100644 (file)
index 0000000..eec608f
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png
new file mode 100644 (file)
index 0000000..d392a90
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png
new file mode 100644 (file)
index 0000000..22319c9
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png
new file mode 100644 (file)
index 0000000..9fd42e2
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png
new file mode 100644 (file)
index 0000000..eb61b39
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png
new file mode 100644 (file)
index 0000000..de305f0
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png
new file mode 100644 (file)
index 0000000..d97feec
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png
new file mode 100644 (file)
index 0000000..7f6445d
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png b/HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png
new file mode 100644 (file)
index 0000000..1f66e23
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png
new file mode 100644 (file)
index 0000000..e0e7f00
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/DividingLine.png b/HomeScreenNG/qml/images/MediaPlayer/DividingLine.png
new file mode 100644 (file)
index 0000000..87f2122
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/DividingLine.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/GreenLine.png b/HomeScreenNG/qml/images/MediaPlayer/GreenLine.png
new file mode 100644 (file)
index 0000000..0210b83
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/GreenLine.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Music_Active.png b/HomeScreenNG/qml/images/MediaPlayer/Music_Active.png
new file mode 100644 (file)
index 0000000..36afac7
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Music_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png
new file mode 100644 (file)
index 0000000..9dae353
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png
new file mode 100644 (file)
index 0000000..fd2d2c0
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png
new file mode 100644 (file)
index 0000000..b76b04c
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png
new file mode 100644 (file)
index 0000000..ac63673
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png
new file mode 100644 (file)
index 0000000..2627add
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png
new file mode 100644 (file)
index 0000000..0483e07
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png
new file mode 100644 (file)
index 0000000..6a9db00
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/X.png b/HomeScreenNG/qml/images/MediaPlayer/X.png
new file mode 100644 (file)
index 0000000..ab392cb
Binary files /dev/null and b/HomeScreenNG/qml/images/MediaPlayer/X.png differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc b/HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc
new file mode 100644 (file)
index 0000000..1cb17ab
--- /dev/null
@@ -0,0 +1,37 @@
+<RCC>
+    <qresource prefix="/images/MediaPlayer">
+        <file>AGL_MediaPlayer_AlbumArtwork.png</file>
+        <file>AGL_MediaPlayer_BackArrow.png</file>
+        <file>AGL_MediaPlayer_Bluetooth_Active.png</file>
+        <file>AGL_MediaPlayer_Bluetooth_Inactive.png</file>
+        <file>AGL_MediaPlayer_CD_Active.png</file>
+        <file>AGL_MediaPlayer_CD_Inactive.png</file>
+        <file>AGL_MediaPlayer_DividingLine.png</file>
+        <file>AGL_MediaPlayer_ForwardArrow.png</file>
+        <file>AGL_MediaPlayer_Loop_Active.png</file>
+        <file>AGL_MediaPlayer_Loop_Inactive.png</file>
+        <file>AGL_MediaPlayer_Player_Pause.png</file>
+        <file>AGL_MediaPlayer_Player_Play.png</file>
+        <file>AGL_MediaPlayer_Playlist_Active.png</file>
+        <file>AGL_MediaPlayer_Playlist_Inactive.png</file>
+        <file>AGL_MediaPlayer_PlaylistToggle_Active.png</file>
+        <file>AGL_MediaPlayer_PlaylistToggle_Inactive.png</file>
+        <file>AGL_MediaPlayer_Radio_Active.png</file>
+        <file>AGL_MediaPlayer_Radio_Inactive.png</file>
+        <file>AGL_MediaPlayer_Shuffle_Active.png</file>
+        <file>AGL_MediaPlayer_Shuffle_Inactive.png</file>
+        <file>Albums_Active.png</file>
+        <file>Albums_Inactive.png</file>
+        <file>DividingLine.png</file>
+        <file>GreenLine.png</file>
+        <file>Music_Active.png</file>
+        <file>Music_Inactive.png</file>
+        <file>Podcasts_Active.png</file>
+        <file>Podcasts_Inactive.png</file>
+        <file>Popup_Highlight.png</file>
+        <file>Popup_PauseIcon.png</file>
+        <file>Popup_PlayIcon.png</file>
+        <file>Popup_VerticalLine.png</file>
+        <file>X.png</file>
+    </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC-01.png
new file mode 100644 (file)
index 0000000..f5188f5
Binary files /dev/null and b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC-01.png differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png
new file mode 100644 (file)
index 0000000..abe92d2
Binary files /dev/null and b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png
new file mode 100644 (file)
index 0000000..9aca151
Binary files /dev/null and b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png
new file mode 100644 (file)
index 0000000..696168f
Binary files /dev/null and b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png
new file mode 100644 (file)
index 0000000..229860c
Binary files /dev/null and b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png
new file mode 100644 (file)
index 0000000..b0a023c
Binary files /dev/null and b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png
new file mode 100644 (file)
index 0000000..34b0671
Binary files /dev/null and b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png
new file mode 100644 (file)
index 0000000..98e6146
Binary files /dev/null and b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png differ
diff --git a/HomeScreenNG/qml/images/Shortcut/shortcut.qrc b/HomeScreenNG/qml/images/Shortcut/shortcut.qrc
new file mode 100644 (file)
index 0000000..fe31006
--- /dev/null
@@ -0,0 +1,12 @@
+<RCC>
+    <qresource prefix="/images/Shortcut">
+        <file>HMI_Shortcut_Home_Active-01.png</file>
+        <file>HMI_Shortcut_Home-01.png</file>
+        <file>HMI_Shortcut_HVAC_Active-01.png</file>
+        <file>HMI_Shortcut_HVAC-01.png</file>
+        <file>HMI_Shortcut_Multimedia_Active-01.png</file>
+        <file>HMI_Shortcut_Multimedia-01.png</file>
+        <file>HMI_Shortcut_Navigation_Active-01.png</file>
+        <file>HMI_Shortcut_Navigation-01.png</file>
+    </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_Inactive-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_Inactive-01.png
new file mode 100644 (file)
index 0000000..10bd5a5
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_Inactive-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png
new file mode 100644 (file)
index 0000000..1ff96e1
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png
new file mode 100644 (file)
index 0000000..44ef700
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png
new file mode 100644 (file)
index 0000000..fe4e776
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png
new file mode 100644 (file)
index 0000000..892c6ec
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png
new file mode 100644 (file)
index 0000000..f4f033b
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png
new file mode 100644 (file)
index 0000000..18070b9
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png
new file mode 100644 (file)
index 0000000..1b77207
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png
new file mode 100644 (file)
index 0000000..c72461f
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png
new file mode 100644 (file)
index 0000000..448dd36
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png
new file mode 100644 (file)
index 0000000..3e407ad
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png
new file mode 100644 (file)
index 0000000..6f95e97
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png
new file mode 100644 (file)
index 0000000..07f4f09
Binary files /dev/null and b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png differ
diff --git a/HomeScreenNG/qml/images/Status/status.qrc b/HomeScreenNG/qml/images/Status/status.qrc
new file mode 100644 (file)
index 0000000..d29c91a
--- /dev/null
@@ -0,0 +1,17 @@
+<RCC>
+    <qresource prefix="/images/Status">
+        <file>HMI_Status_Wifi_NoBars-01.png</file>
+        <file>HMI_Status_Bluetooth_Inactive-01.png</file>
+        <file>HMI_Status_Bluetooth_On-01.png</file>
+        <file>HMI_Status_Signal_1Bars-01.png</file>
+        <file>HMI_Status_Signal_2Bars-01.png</file>
+        <file>HMI_Status_Signal_3Bars-01.png</file>
+        <file>HMI_Status_Signal_4Bars-01.png</file>
+        <file>HMI_Status_Signal_Full-01.png</file>
+        <file>HMI_Status_Signal_NoBars-01.png</file>
+        <file>HMI_Status_Wifi_1Bar-01.png</file>
+        <file>HMI_Status_Wifi_2Bars-01.png</file>
+        <file>HMI_Status_Wifi_3Bars-01.png</file>
+        <file>HMI_Status_Wifi_Full-01.png</file>
+    </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/TopSection_NoText_NoIcons-01.png b/HomeScreenNG/qml/images/TopSection_NoText_NoIcons-01.png
new file mode 100644 (file)
index 0000000..cf9ec4e
Binary files /dev/null and b/HomeScreenNG/qml/images/TopSection_NoText_NoIcons-01.png differ
diff --git a/HomeScreenNG/qml/images/Utility_Logo_Background-01.png b/HomeScreenNG/qml/images/Utility_Logo_Background-01.png
new file mode 100644 (file)
index 0000000..21a602d
Binary files /dev/null and b/HomeScreenNG/qml/images/Utility_Logo_Background-01.png differ
diff --git a/HomeScreenNG/qml/images/Utility_Logo_Colour-01.png b/HomeScreenNG/qml/images/Utility_Logo_Colour-01.png
new file mode 100644 (file)
index 0000000..6519a2d
Binary files /dev/null and b/HomeScreenNG/qml/images/Utility_Logo_Colour-01.png differ
diff --git a/HomeScreenNG/qml/images/Utility_Music_Background-01.png b/HomeScreenNG/qml/images/Utility_Music_Background-01.png
new file mode 100644 (file)
index 0000000..c3e9f91
Binary files /dev/null and b/HomeScreenNG/qml/images/Utility_Music_Background-01.png differ
diff --git a/HomeScreenNG/qml/images/Utility_Radio_Background-01.png b/HomeScreenNG/qml/images/Utility_Radio_Background-01.png
new file mode 100644 (file)
index 0000000..b755843
Binary files /dev/null and b/HomeScreenNG/qml/images/Utility_Radio_Background-01.png differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png
new file mode 100644 (file)
index 0000000..f5f8b19
Binary files /dev/null and b/HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png
new file mode 100644 (file)
index 0000000..3603a55
Binary files /dev/null and b/HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png
new file mode 100644 (file)
index 0000000..8fe1e18
Binary files /dev/null and b/HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png
new file mode 100644 (file)
index 0000000..09cd84f
Binary files /dev/null and b/HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png
new file mode 100644 (file)
index 0000000..125b413
Binary files /dev/null and b/HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png
new file mode 100644 (file)
index 0000000..d0a9520
Binary files /dev/null and b/HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png
new file mode 100644 (file)
index 0000000..ee3a744
Binary files /dev/null and b/HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png
new file mode 100644 (file)
index 0000000..f6959f4
Binary files /dev/null and b/HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png differ
diff --git a/HomeScreenNG/qml/images/Weather/weather.qrc b/HomeScreenNG/qml/images/Weather/weather.qrc
new file mode 100644 (file)
index 0000000..2668fec
--- /dev/null
@@ -0,0 +1,12 @@
+<RCC>
+    <qresource prefix="/images/Weather">
+        <file>WeatherIcons_ALL-01.png</file>
+        <file>WeatherIcons_Cloudy-01.png</file>
+        <file>WeatherIcons_Moon-01.png</file>
+        <file>WeatherIcons_PartiallyCloudy-01.png</file>
+        <file>WeatherIcons_Rain-01.png</file>
+        <file>WeatherIcons_Snow-01.png</file>
+        <file>WeatherIcons_Sun-01.png</file>
+        <file>WeatherIcons_Thunderstorm-01.png</file>
+    </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/images.qrc b/HomeScreenNG/qml/images/images.qrc
new file mode 100644 (file)
index 0000000..2d8e902
--- /dev/null
@@ -0,0 +1,10 @@
+<RCC>
+    <qresource prefix="/images">
+        <file>TopSection_NoText_NoIcons-01.png</file>
+        <file>Utility_Logo_Background-01.png</file>
+        <file>Utility_Logo_Colour-01.png</file>
+        <file>Utility_Music_Background-01.png</file>
+        <file>Utility_Radio_Background-01.png</file>
+        <file>AGL_HMI_Background_NoCar-01.png</file>
+    </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/main.qml b/HomeScreenNG/qml/main.qml
new file mode 100644 (file)
index 0000000..e9774ae
--- /dev/null
@@ -0,0 +1,44 @@
+import QtQuick 2.7
+import QtQuick.Window 2.2
+import QtQuick.Layouts 1.1
+
+Window {
+    visible: true
+    flags: Qt.FramelessWindowHint
+    width: container.width * container.scale
+    height: container.height * container.scale
+    title: 'HomeScreen'
+
+    Image {
+        id: container
+        anchors.centerIn: parent
+        width: 1080
+        height: 1920
+        scale: 0.7
+        source: './images/AGL_HMI_Background_NoCar-01.png'
+
+        ColumnLayout {
+            anchors.fill: parent
+            spacing: 0
+            TopArea {
+                id: topArea
+                Layout.fillWidth: true
+                Layout.preferredHeight: 218
+            }
+
+            Item {
+                id: applicationArea
+                Layout.fillWidth: true
+                Layout.fillHeight: true
+                Layout.preferredHeight: 1920 - 218 - 215
+            }
+
+            MediaArea {
+                id: mediaArea
+                Layout.fillWidth: true
+                Layout.fillHeight: true
+                Layout.preferredHeight: 215
+            }
+        }
+    }
+}
diff --git a/HomeScreenNG/qml/qml.qrc b/HomeScreenNG/qml/qml.qrc
new file mode 100644 (file)
index 0000000..a916b03
--- /dev/null
@@ -0,0 +1,13 @@
+<RCC>
+    <qresource prefix="/">
+        <file>main.qml</file>
+        <file>MediaArea.qml</file>
+        <file>MediaAreaBlank.qml</file>
+        <file>MediaAreaMusic.qml</file>
+        <file>MediaAreaRadio.qml</file>
+        <file>ShortcutArea.qml</file>
+        <file>ShortcutIcon.qml</file>
+        <file>StatusArea.qml</file>
+        <file>TopArea.qml</file>
+    </qresource>
+</RCC>
diff --git a/HomeScreenNG/statusbarmodel.cpp b/HomeScreenNG/statusbarmodel.cpp
new file mode 100644 (file)
index 0000000..b844525
--- /dev/null
@@ -0,0 +1,76 @@
+#include "statusbarmodel.h"
+#include "statusbarserver.h"
+
+#include <QtDBus/QDBusConnection>
+
+class StatusBarModel::Private
+{
+public:
+    Private(StatusBarModel *parent);
+
+private:
+    StatusBarModel *q;
+public:
+    StatusBarServer server;
+    QString iconList[StatusBarServer::SupportedCount];
+};
+
+StatusBarModel::Private::Private(StatusBarModel *parent)
+    : q(parent)
+{
+    QDBusConnection dbus = QDBusConnection::sessionBus();
+    dbus.registerObject("/StatusBar", &server);
+    dbus.registerService("org.agl.homescreen");
+    connect(&server, &StatusBarServer::statusIconChanged, [&](int placeholderIndex, const QString &icon) {
+        if (placeholderIndex < 0 || StatusBarServer::SupportedCount <= placeholderIndex) return;
+        if (iconList[placeholderIndex] == icon) return;
+        iconList[placeholderIndex] = icon;
+        emit q->dataChanged(q->index(placeholderIndex), q->index(placeholderIndex));
+    });
+    for (int i = 0; i < StatusBarServer::SupportedCount; i++) {
+        iconList[i] = server.getStatusIcon(i);
+    }
+}
+
+StatusBarModel::StatusBarModel(QObject *parent)
+    : QAbstractListModel(parent)
+    , d(new Private(this))
+{
+}
+
+StatusBarModel::~StatusBarModel()
+{
+    delete d;
+}
+
+int StatusBarModel::rowCount(const QModelIndex &parent) const
+{
+    if (parent.isValid())
+        return 0;
+
+    return StatusBarServer::SupportedCount;
+}
+
+QVariant StatusBarModel::data(const QModelIndex &index, int role) const
+{
+    QVariant ret;
+    if (!index.isValid())
+        return ret;
+
+    switch (role) {
+    case Qt::DisplayRole:
+        ret = d->iconList[index.row()];
+        break;
+    default:
+        break;
+    }
+
+    return ret;
+}
+
+QHash<int, QByteArray> StatusBarModel::roleNames() const
+{
+    QHash<int, QByteArray> roles;
+    roles[Qt::DisplayRole] = "icon";
+    return roles;
+}
diff --git a/HomeScreenNG/statusbarmodel.h b/HomeScreenNG/statusbarmodel.h
new file mode 100644 (file)
index 0000000..743e816
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef STATUSBARMODEL_H
+#define STATUSBARMODEL_H
+
+#include <QtCore/QAbstractListModel>
+
+class StatusBarModel : public QAbstractListModel
+{
+    Q_OBJECT
+public:
+    explicit StatusBarModel(QObject *parent = nullptr);
+    ~StatusBarModel();
+
+    int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+
+    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
+    QHash<int, QByteArray> roleNames() const override;
+
+private:
+    class Private;
+    Private *d;
+};
+
+#endif // STATUSBARMODEL_H
diff --git a/HomeScreenNG/statusbarserver.cpp b/HomeScreenNG/statusbarserver.cpp
new file mode 100644 (file)
index 0000000..1b1123c
--- /dev/null
@@ -0,0 +1,71 @@
+#include "statusbarserver.h"
+#include "statusbar_adaptor.h"
+
+class StatusBarServer::Private
+{
+public:
+    Private(StatusBarServer *parent);
+    QString texts[SupportedCount];
+    QString icons[SupportedCount];
+    StatusbarAdaptor adaptor;
+};
+
+StatusBarServer::Private::Private(StatusBarServer *parent)
+    : adaptor(parent)
+{
+    icons[0] = QStringLiteral("./images/Status/HMI_Status_Wifi_Full-01.png");
+    icons[1] = QStringLiteral("./images/Status/HMI_Status_Bluetooth_Inactive-01.png");
+    icons[2] = QStringLiteral("./images/Status/HMI_Status_Signal_Full-01.png");
+}
+
+StatusBarServer::StatusBarServer(QObject *parent)
+    : QObject(parent)
+    , d(new Private(this))
+{
+}
+
+StatusBarServer::~StatusBarServer()
+{
+    delete d;
+}
+
+QList<int> StatusBarServer::getAvailablePlaceholders() const
+{
+    QList<int> ret;
+    return ret;
+}
+
+QString StatusBarServer::getStatusIcon(int placeholderIndex) const
+{
+    QString ret;
+    if (-1 < placeholderIndex && placeholderIndex < SupportedCount)
+        ret = d->icons[placeholderIndex];
+    return ret;
+}
+
+void StatusBarServer::setStatusIcon(int placeholderIndex, const QString &icon)
+{
+    if (-1 < placeholderIndex && placeholderIndex < SupportedCount) {
+        if (d->icons[placeholderIndex] == icon) return;
+        d->icons[placeholderIndex] = icon;
+        emit statusIconChanged(placeholderIndex, icon);
+    }
+}
+
+QString StatusBarServer::getStatusText(int placeholderIndex) const
+{
+    QString ret;
+    if (-1 < placeholderIndex && placeholderIndex < SupportedCount) {
+        ret = d->texts[placeholderIndex];
+    }
+    return ret;
+}
+
+void StatusBarServer::setStatusText(int placeholderIndex, const QString &text)
+{
+    if (-1 < placeholderIndex && placeholderIndex < SupportedCount) {
+        if (d->texts[placeholderIndex] == text) return;
+        d->texts[placeholderIndex] = text;
+        emit statusTextChanged(placeholderIndex, text);
+    }
+}
diff --git a/HomeScreenNG/statusbarserver.h b/HomeScreenNG/statusbarserver.h
new file mode 100644 (file)
index 0000000..b9c8716
--- /dev/null
@@ -0,0 +1,33 @@
+#ifndef STATUSBARSERVER_H
+#define STATUSBARSERVER_H
+
+#include <QtCore/QObject>
+
+class StatusBarServer : public QObject
+{
+    Q_OBJECT
+public:
+    enum {
+        SupportedCount = 3,
+    };
+    explicit StatusBarServer(QObject *parent = nullptr);
+    ~StatusBarServer();
+
+    Q_INVOKABLE QList<int> getAvailablePlaceholders() const;
+    Q_INVOKABLE QString getStatusIcon(int placeholderIndex) const;
+    Q_INVOKABLE QString getStatusText(int placeholderIndex) const;
+
+public slots:
+    void setStatusIcon(int placeholderIndex, const QString &icon);
+    void setStatusText(int placeholderIndex, const QString &text);
+
+signals:
+    void statusIconChanged(int placeholderIndex, const QString &icon);
+    void statusTextChanged(int placeholderIndex, const QString &text);
+
+private:
+    class Private;
+    Private *d;
+};
+
+#endif // STATUSBARSERVER_H