diff options
author | 2016-12-02 11:19:51 +0900 | |
---|---|---|
committer | 2016-12-02 13:14:55 +0900 | |
commit | 6bf5bbd0ab5abab05305667a516c069c7c5556f4 (patch) | |
tree | f2cf3278c383771ff1b40dae2c72b0f08fdd69ef | |
parent | 505ec164e5174ddd838c0cac1e3e828930cb3b50 (diff) |
WIP: add Qt Quick HomeScreen UI
Change-Id: I2be964f6d9e76df616169d7b2654d17ae9446687
Signed-off-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
100 files changed, 777 insertions, 0 deletions
diff --git a/HomeScreen.pro b/HomeScreen.pro index ec20600..c8e96b0 100644 --- a/HomeScreen.pro +++ b/HomeScreen.pro @@ -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 index 0000000..450395c --- /dev/null +++ b/HomeScreenNG/HomeScreenNG.pro @@ -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 index 0000000..c4254ce --- /dev/null +++ b/HomeScreenNG/applicationlauncher.cpp @@ -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 index 0000000..409de25 --- /dev/null +++ b/HomeScreenNG/applicationlauncher.h @@ -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 index 0000000..dad4c7d --- /dev/null +++ b/HomeScreenNG/main.cpp @@ -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 index 0000000..16ceb27 --- /dev/null +++ b/HomeScreenNG/qml/MediaArea.qml @@ -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 index 0000000..7698e18 --- /dev/null +++ b/HomeScreenNG/qml/MediaAreaBlank.qml @@ -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 index 0000000..3bd0077 --- /dev/null +++ b/HomeScreenNG/qml/MediaAreaMusic.qml @@ -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 index 0000000..b2a9a33 --- /dev/null +++ b/HomeScreenNG/qml/MediaAreaRadio.qml @@ -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 index 0000000..a98bec2 --- /dev/null +++ b/HomeScreenNG/qml/ShortcutArea.qml @@ -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 index 0000000..84550d9 --- /dev/null +++ b/HomeScreenNG/qml/ShortcutIcon.qml @@ -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 index 0000000..6dda3ba --- /dev/null +++ b/HomeScreenNG/qml/StatusArea.qml @@ -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 index 0000000..8de8a8d --- /dev/null +++ b/HomeScreenNG/qml/TopArea.qml @@ -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 Binary files differnew file mode 100644 index 0000000..595f742 --- /dev/null +++ b/HomeScreenNG/qml/images/AGL_HMI_Background_NoCar-01.png diff --git a/HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png b/HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png Binary files differnew file mode 100644 index 0000000..3716ab3 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png diff --git a/HomeScreenNG/qml/images/MediaMusic/BackArrow.png b/HomeScreenNG/qml/images/MediaMusic/BackArrow.png Binary files differnew file mode 100644 index 0000000..63e38d9 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaMusic/BackArrow.png diff --git a/HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png b/HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png Binary files differnew file mode 100644 index 0000000..a513705 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png diff --git a/HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png b/HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png Binary files differnew file mode 100644 index 0000000..30f75c5 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png diff --git a/HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png b/HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png Binary files differnew file mode 100644 index 0000000..8ea4402 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png diff --git a/HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png b/HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png Binary files differnew file mode 100644 index 0000000..ae5c82e --- /dev/null +++ b/HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png diff --git a/HomeScreenNG/qml/images/MediaMusic/Volume_Off.png b/HomeScreenNG/qml/images/MediaMusic/Volume_Off.png Binary files differnew file mode 100644 index 0000000..07e3353 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaMusic/Volume_Off.png diff --git a/HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc b/HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc new file mode 100644 index 0000000..b1138c0 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc @@ -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 Binary files differnew file mode 100644 index 0000000..14a52b2 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_AlbumArtwork.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png Binary files differnew file mode 100644 index 0000000..0ec1f67 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png Binary files differnew file mode 100644 index 0000000..bc2df1d --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png Binary files differnew file mode 100644 index 0000000..8d8fc02 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png Binary files differnew file mode 100644 index 0000000..94fe38f --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png Binary files differnew file mode 100644 index 0000000..12609e1 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png Binary files differnew file mode 100644 index 0000000..299903e --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png Binary files differnew file mode 100644 index 0000000..33cc700 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png Binary files differnew file mode 100644 index 0000000..9bdb14d --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png Binary files differnew file mode 100644 index 0000000..76b0fc9 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png Binary files differnew file mode 100644 index 0000000..c423005 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png Binary files differnew file mode 100644 index 0000000..beece66 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png Binary files differnew file mode 100644 index 0000000..eec608f --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png Binary files differnew file mode 100644 index 0000000..d392a90 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png Binary files differnew file mode 100644 index 0000000..22319c9 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png Binary files differnew file mode 100644 index 0000000..9fd42e2 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png Binary files differnew file mode 100644 index 0000000..eb61b39 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png Binary files differnew file mode 100644 index 0000000..de305f0 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png Binary files differnew file mode 100644 index 0000000..d97feec --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png Binary files differnew file mode 100644 index 0000000..7f6445d --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png b/HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png Binary files differnew file mode 100644 index 0000000..1f66e23 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png Binary files differnew file mode 100644 index 0000000..e0e7f00 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/DividingLine.png b/HomeScreenNG/qml/images/MediaPlayer/DividingLine.png Binary files differnew file mode 100644 index 0000000..87f2122 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/DividingLine.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/GreenLine.png b/HomeScreenNG/qml/images/MediaPlayer/GreenLine.png Binary files differnew file mode 100644 index 0000000..0210b83 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/GreenLine.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Music_Active.png b/HomeScreenNG/qml/images/MediaPlayer/Music_Active.png Binary files differnew file mode 100644 index 0000000..36afac7 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Music_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png Binary files differnew file mode 100644 index 0000000..9dae353 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png Binary files differnew file mode 100644 index 0000000..fd2d2c0 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png Binary files differnew file mode 100644 index 0000000..b76b04c --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png Binary files differnew file mode 100644 index 0000000..ac63673 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png Binary files differnew file mode 100644 index 0000000..2627add --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png Binary files differnew file mode 100644 index 0000000..0483e07 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png Binary files differnew file mode 100644 index 0000000..6a9db00 --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/X.png b/HomeScreenNG/qml/images/MediaPlayer/X.png Binary files differnew file mode 100644 index 0000000..ab392cb --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/X.png diff --git a/HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc b/HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc new file mode 100644 index 0000000..1cb17ab --- /dev/null +++ b/HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc @@ -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 Binary files differnew file mode 100644 index 0000000..f5188f5 --- /dev/null +++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC-01.png diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png Binary files differnew file mode 100644 index 0000000..abe92d2 --- /dev/null +++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png Binary files differnew file mode 100644 index 0000000..9aca151 --- /dev/null +++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png Binary files differnew file mode 100644 index 0000000..696168f --- /dev/null +++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png Binary files differnew file mode 100644 index 0000000..229860c --- /dev/null +++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png Binary files differnew file mode 100644 index 0000000..b0a023c --- /dev/null +++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png Binary files differnew file mode 100644 index 0000000..34b0671 --- /dev/null +++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png Binary files differnew file mode 100644 index 0000000..98e6146 --- /dev/null +++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png diff --git a/HomeScreenNG/qml/images/Shortcut/shortcut.qrc b/HomeScreenNG/qml/images/Shortcut/shortcut.qrc new file mode 100644 index 0000000..fe31006 --- /dev/null +++ b/HomeScreenNG/qml/images/Shortcut/shortcut.qrc @@ -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 Binary files differnew file mode 100644 index 0000000..10bd5a5 --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_Inactive-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png Binary files differnew file mode 100644 index 0000000..1ff96e1 --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png Binary files differnew file mode 100644 index 0000000..44ef700 --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png Binary files differnew file mode 100644 index 0000000..fe4e776 --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png Binary files differnew file mode 100644 index 0000000..892c6ec --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png Binary files differnew file mode 100644 index 0000000..f4f033b --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png Binary files differnew file mode 100644 index 0000000..18070b9 --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png Binary files differnew file mode 100644 index 0000000..1b77207 --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png Binary files differnew file mode 100644 index 0000000..c72461f --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png Binary files differnew file mode 100644 index 0000000..448dd36 --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png Binary files differnew file mode 100644 index 0000000..3e407ad --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png Binary files differnew file mode 100644 index 0000000..6f95e97 --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png Binary files differnew file mode 100644 index 0000000..07f4f09 --- /dev/null +++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png diff --git a/HomeScreenNG/qml/images/Status/status.qrc b/HomeScreenNG/qml/images/Status/status.qrc new file mode 100644 index 0000000..d29c91a --- /dev/null +++ b/HomeScreenNG/qml/images/Status/status.qrc @@ -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 Binary files differnew file mode 100644 index 0000000..cf9ec4e --- /dev/null +++ b/HomeScreenNG/qml/images/TopSection_NoText_NoIcons-01.png diff --git a/HomeScreenNG/qml/images/Utility_Logo_Background-01.png b/HomeScreenNG/qml/images/Utility_Logo_Background-01.png Binary files differnew file mode 100644 index 0000000..21a602d --- /dev/null +++ b/HomeScreenNG/qml/images/Utility_Logo_Background-01.png diff --git a/HomeScreenNG/qml/images/Utility_Logo_Colour-01.png b/HomeScreenNG/qml/images/Utility_Logo_Colour-01.png Binary files differnew file mode 100644 index 0000000..6519a2d --- /dev/null +++ b/HomeScreenNG/qml/images/Utility_Logo_Colour-01.png diff --git a/HomeScreenNG/qml/images/Utility_Music_Background-01.png b/HomeScreenNG/qml/images/Utility_Music_Background-01.png Binary files differnew file mode 100644 index 0000000..c3e9f91 --- /dev/null +++ b/HomeScreenNG/qml/images/Utility_Music_Background-01.png diff --git a/HomeScreenNG/qml/images/Utility_Radio_Background-01.png b/HomeScreenNG/qml/images/Utility_Radio_Background-01.png Binary files differnew file mode 100644 index 0000000..b755843 --- /dev/null +++ b/HomeScreenNG/qml/images/Utility_Radio_Background-01.png diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png Binary files differnew file mode 100644 index 0000000..f5f8b19 --- /dev/null +++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png Binary files differnew file mode 100644 index 0000000..3603a55 --- /dev/null +++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png Binary files differnew file mode 100644 index 0000000..8fe1e18 --- /dev/null +++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png Binary files differnew file mode 100644 index 0000000..09cd84f --- /dev/null +++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png Binary files differnew file mode 100644 index 0000000..125b413 --- /dev/null +++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png Binary files differnew file mode 100644 index 0000000..d0a9520 --- /dev/null +++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png Binary files differnew file mode 100644 index 0000000..ee3a744 --- /dev/null +++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png Binary files differnew file mode 100644 index 0000000..f6959f4 --- /dev/null +++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png diff --git a/HomeScreenNG/qml/images/Weather/weather.qrc b/HomeScreenNG/qml/images/Weather/weather.qrc new file mode 100644 index 0000000..2668fec --- /dev/null +++ b/HomeScreenNG/qml/images/Weather/weather.qrc @@ -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 index 0000000..2d8e902 --- /dev/null +++ b/HomeScreenNG/qml/images/images.qrc @@ -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 index 0000000..e9774ae --- /dev/null +++ b/HomeScreenNG/qml/main.qml @@ -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 index 0000000..a916b03 --- /dev/null +++ b/HomeScreenNG/qml/qml.qrc @@ -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 index 0000000..b844525 --- /dev/null +++ b/HomeScreenNG/statusbarmodel.cpp @@ -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 index 0000000..743e816 --- /dev/null +++ b/HomeScreenNG/statusbarmodel.h @@ -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 index 0000000..1b1123c --- /dev/null +++ b/HomeScreenNG/statusbarserver.cpp @@ -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 index 0000000..b9c8716 --- /dev/null +++ b/HomeScreenNG/statusbarserver.h @@ -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 |