diff --git a/DimAndCsd.qml b/DimAndCsd.qml index 518c004..9d23a0c 100644 --- a/DimAndCsd.qml +++ b/DimAndCsd.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/Main1024x768.qml b/Main1024x768.qml index 696f1f1..a8ca1af 100644 --- a/Main1024x768.qml +++ b/Main1024x768.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/Main1280x800.qml b/Main1280x800.qml index 2f4829a..7156222 100644 --- a/Main1280x800.qml +++ b/Main1280x800.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/Main1920x1080.qml b/Main1920x1080.qml index ca21d35..500cedc 100644 --- a/Main1920x1080.qml +++ b/Main1920x1080.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/README.md b/README.md index 2571a52..ce350e7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Prerequisite -Qt >= 5.2 (development done with Qt 5.5) +Qt >= 5.5 Unix system # Folder Structure @@ -17,23 +17,27 @@ Unix system # Build -build datasource qml plugin +* Build datasource qml plugin + + $ cd plugins/datasource + + $ qmake && make && make install * Run scripts within the plugins/scripts folder to scan the media on the system - $ cd plugins/datasource - $ qmake && make && make install +# Run entire UI -# Run + $ qmlscene -I modules/ -I am-dummyimports/ DimAndCsd.qml - $ qmlscene -I modules -I am-dummyimports MainXXXX.qml +or with the Application Manager -or + $ appman --recreate-database -c $AM_CONFIG_FILE -c am-config.yaml - $ appman --recreate-database -c $AM_CONFIG_FILE -c am-config.yaml --verbose +where `AM_CONFIG_FILE` is the path to the Application Manager `config.yaml` file (inside the template-opt folder within the Application Manager delivery). The default `config.yaml` points to the `/opt/am` folder. If that folder does not exists, make sure to update the config.yaml settings to the corresponding paths. -where AM_CONFIG_FILE is path to the config.yaml file provided by the Application Manager +# Media +To get the media used within the Music and Movie app, download the zipped file and place the media.db and media folder inside the home folder. The download link: https://seafile.pelagicore.net/f/3713457142/ # Common Terms Used In The Project diff --git a/SimuMain.qml b/SimuMain.qml index fe46ebb..9cb22f3 100644 --- a/SimuMain.qml +++ b/SimuMain.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/am-dummyimports/io/qt/ApplicationInstaller/ApplicationInstaller.js b/am-dummyimports/io/qt/ApplicationInstaller/ApplicationInstaller.js index d286de8..61e797b 100644 --- a/am-dummyimports/io/qt/ApplicationInstaller/ApplicationInstaller.js +++ b/am-dummyimports/io/qt/ApplicationInstaller/ApplicationInstaller.js @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/am-dummyimports/io/qt/ApplicationManager/ApplicationManager.qml b/am-dummyimports/io/qt/ApplicationManager/ApplicationManager.qml index 34554be..890bd65 100644 --- a/am-dummyimports/io/qt/ApplicationManager/ApplicationManager.qml +++ b/am-dummyimports/io/qt/ApplicationManager/ApplicationManager.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/am-dummyimports/io/qt/ApplicationManager/PelagicoreWindow.qml b/am-dummyimports/io/qt/ApplicationManager/ApplicationManagerWindow.qml similarity index 97% rename from am-dummyimports/io/qt/ApplicationManager/PelagicoreWindow.qml rename to am-dummyimports/io/qt/ApplicationManager/ApplicationManagerWindow.qml index f19b163..f814aea 100644 --- a/am-dummyimports/io/qt/ApplicationManager/PelagicoreWindow.qml +++ b/am-dummyimports/io/qt/ApplicationManager/ApplicationManagerWindow.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/am-dummyimports/io/qt/ApplicationManager/WindowManager.qml b/am-dummyimports/io/qt/ApplicationManager/WindowManager.qml index 79e1232..f0ff6af 100644 --- a/am-dummyimports/io/qt/ApplicationManager/WindowManager.qml +++ b/am-dummyimports/io/qt/ApplicationManager/WindowManager.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/NotAvailableYet.qml b/apps/NotAvailableYet.qml index eecf947..46ec985 100644 --- a/apps/NotAvailableYet.qml +++ b/apps/NotAvailableYet.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.browser/Browser.qml b/apps/com.pelagicore.browser/Browser.qml index 67378e1..26bcc99 100644 --- a/apps/com.pelagicore.browser/Browser.qml +++ b/apps/com.pelagicore.browser/Browser.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.movies/MovieCoverDelegate.qml b/apps/com.pelagicore.movies/MovieCoverDelegate.qml index 336427d..0f163d7 100644 --- a/apps/com.pelagicore.movies/MovieCoverDelegate.qml +++ b/apps/com.pelagicore.movies/MovieCoverDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.movies/MoviePlayer.qml b/apps/com.pelagicore.movies/MoviePlayer.qml index 20a4ade..e8f260c 100644 --- a/apps/com.pelagicore.movies/MoviePlayer.qml +++ b/apps/com.pelagicore.movies/MoviePlayer.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.movies/MovieProvider.qml b/apps/com.pelagicore.movies/MovieProvider.qml index faf5370..dee1f2e 100644 --- a/apps/com.pelagicore.movies/MovieProvider.qml +++ b/apps/com.pelagicore.movies/MovieProvider.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.movies/MovieTracks.qml b/apps/com.pelagicore.movies/MovieTracks.qml index 4e4a8d4..0a835d0 100644 --- a/apps/com.pelagicore.movies/MovieTracks.qml +++ b/apps/com.pelagicore.movies/MovieTracks.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.movies/Movies.qml b/apps/com.pelagicore.movies/Movies.qml index ac0ae47..b7b7245 100644 --- a/apps/com.pelagicore.movies/Movies.qml +++ b/apps/com.pelagicore.movies/Movies.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.music/AlbumScreen.qml b/apps/com.pelagicore.music/AlbumScreen.qml index 9e3ed5a..2d81071 100644 --- a/apps/com.pelagicore.music/AlbumScreen.qml +++ b/apps/com.pelagicore.music/AlbumScreen.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.music/ClusterWidget.qml b/apps/com.pelagicore.music/ClusterWidget.qml index 244edc4..9261b36 100644 --- a/apps/com.pelagicore.music/ClusterWidget.qml +++ b/apps/com.pelagicore.music/ClusterWidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.music/CoverItem.qml b/apps/com.pelagicore.music/CoverItem.qml index 33da279..525fb09 100644 --- a/apps/com.pelagicore.music/CoverItem.qml +++ b/apps/com.pelagicore.music/CoverItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/apps/com.pelagicore.music/CurrentTrackScreen.qml b/apps/com.pelagicore.music/CurrentTrackScreen.qml index 362ad2a..fef1c35 100644 --- a/apps/com.pelagicore.music/CurrentTrackScreen.qml +++ b/apps/com.pelagicore.music/CurrentTrackScreen.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -44,13 +44,16 @@ UIScreen { title: 'Music' property var track: MusicProvider.currentEntry + property bool libraryVisible: false signal showAlbums() ColumnLayout { - width: Style.hspan(14) + id: musicControl + width: Style.hspan(12) height: Style.vspan(20) - anchors.centerIn: parent + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter spacing: 0 Spacer {} RowLayout { @@ -76,7 +79,7 @@ UIScreen { width: Style.cellWidth * 6 height: Style.cellHeight * 12 - items: MusicProvider.model + items: MusicProvider.nowPlaying.model currentViewIndex: MusicProvider.currentIndex @@ -108,20 +111,40 @@ UIScreen { } } } - Slider { + + RowLayout { anchors.horizontalCenter: parent.horizontalCenter - hspan: 10 - value: MusicService.position - minimum: 0.00 - maximum: MusicService.duration - vspan: 1 - function valueToString() { - return Math.floor(value/60000) + ':' + Math.floor((value/1000)%60) + spacing: 10 + + Label { + hspan: 1 + text: MusicService.currentTime + font.pixelSize: Style.fontSizeS } - onActiveValueChanged: { - MusicService.seek(activeValue) + + Slider { + id: slider + //anchors.horizontalCenter: parent.horizontalCenter + hspan: 9 + value: MusicService.position + minimum: 0.00 + maximum: MusicService.duration + vspan: 1 + function valueToString() { + return Math.floor(value/60000) + ':' + Math.floor((value/1000)%60) + } + onActiveValueChanged: { + MusicService.seek(activeValue) + } + } + + Label { + hspan: 1 + text: MusicService.durationTime + font.pixelSize: Style.fontSizeS } } + RowLayout { anchors.horizontalCenter: parent.horizontalCenter spacing: 0 @@ -175,10 +198,107 @@ UIScreen { } } - PlaylistContainer { - onClicked: pathView.currentViewIndex = index + Library { + id: library + x: parent.width + opacity: 0 + visible: opacity > 0 + onClose: { + root.libraryVisible = false + } + } + + UIElement { + id: sourceOption + hspan: 4 + vspan: 12 + anchors.right: musicControl.left + anchors.rightMargin: 60 + anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenterOffset: -60 + + Column { + spacing: 1 + Button { + hspan: 4 + vspan: 4 + text: "BLUETOOTH" + label.font.pixelSize: Style.fontSizeL + } + Button { + hspan: 4 + vspan: 4 + text: "USB" + enabled: false + label.font.pixelSize: Style.fontSizeL + } + Button { + hspan: 4 + vspan: 4 + text: "SPOTIFY" + enabled: false + label.font.pixelSize: Style.fontSizeL + } + } + } + + TextTool { + id: libraryButton + hspan: 3 + vspan: 5 + anchors.left: musicControl.right + anchors.leftMargin: 30 + anchors.verticalCenter: parent.verticalCenter + size: 72 + + name: "music" + text: "LIBRARY" + + onClicked: root.libraryVisible = true } Component.onCompleted: MusicProvider.selectRandomTracks() + states: State { + name: "libaryMode"; when: root.libraryVisible + + PropertyChanges { + target: library + opacity: 1 + x: root.width - library.width + } + + PropertyChanges { + target: libraryButton + opacity: 0 + } + + PropertyChanges { + target: sourceOption + opacity: 0 + } + + AnchorChanges { + target: musicControl + anchors.horizontalCenter: undefined + } + + PropertyChanges { + target: musicControl + x: 0 + } + } + + transitions: Transition { + from: ""; to: "libaryMode"; reversible: true + + ParallelAnimation { + NumberAnimation { target: library; properties: "opacity"; duration: 400 } + NumberAnimation { target: library; properties: "x"; duration: 300 } + NumberAnimation { target: libraryButton; properties: "opacity"; duration: 300 } + NumberAnimation { target: sourceOption; properties: "opacity"; duration: 300 } + NumberAnimation { target: musicControl; properties: "x"; duration: 300 } + } + } + } diff --git a/apps/com.pelagicore.music/Library.qml b/apps/com.pelagicore.music/Library.qml new file mode 100644 index 0000000..091e887 --- /dev/null +++ b/apps/com.pelagicore.music/Library.qml @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: http://www.qt.io/ or http://www.pelagicore.com/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL3-PELAGICORE$ +** Commercial License Usage +** Licensees holding valid commercial Pelagicore Neptune IVI UI +** licenses may use this file in accordance with the commercial license +** agreement provided with the Software or, alternatively, in accordance +** with the terms contained in a written agreement between you and +** Pelagicore. For licensing terms and conditions, contact us at: +** http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Layouts 1.0 + +import controls 1.0 +import utils 1.0 +import "." + +UIElement { + id: root + hspan: 12 + vspan: 22 + + signal close() + + Rectangle { + anchors.fill: parent + color: "black" + } + + Tool { + id: closeButton + vspan: 2 + hspan: 2 + + anchors.right: parent.right + anchors.top: parent.top + anchors.topMargin: 35 + name: 'close' + onClicked: root.close() + } + + TabView { + id: tabView + vspan: root.vspan - 2 + hspan: root.hspan + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + horizontalAlignment: false + viewLeftMargin: letterPicker.width + tabWidth: 2 + tabs: [ + { title : "PLAYING", url : nowPlaying, properties : {} }, + { title : "ARTISTS", url : library, properties : { type: "artists" } }, + { title : "ALBUMS", url : library, properties : { type: "albums" } }, + { title : "SONGS", url : library, properties : { type: "songs" } }, + ] + + } + + LetterPicker { + id: letterPicker + vspan: root.vspan - 3 + anchors.left: parent.left + anchors.leftMargin: 5 + anchors.bottom: parent.bottom + numOfVisibleLetters: 17 + } + + LibraryList { + id: nowPlaying + visible: false + nowPlaying: true + } + + LibraryList { + id: library + visible: false + } +} + diff --git a/apps/com.pelagicore.music/LibraryList.qml b/apps/com.pelagicore.music/LibraryList.qml new file mode 100644 index 0000000..8365bd3 --- /dev/null +++ b/apps/com.pelagicore.music/LibraryList.qml @@ -0,0 +1,149 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: http://www.qt.io/ or http://www.pelagicore.com/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL3-PELAGICORE$ +** Commercial License Usage +** Licensees holding valid commercial Pelagicore Neptune IVI UI +** licenses may use this file in accordance with the commercial license +** agreement provided with the Software or, alternatively, in accordance +** with the terms contained in a written agreement between you and +** Pelagicore. For licensing terms and conditions, contact us at: +** http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Layouts 1.0 + +import controls 1.0 +import utils 1.0 +import service.music 1.0 +import "." + +UIElement { + id: root + hspan: 10 + vspan: 18 + + property string type: "" + property bool nowPlaying: false + + onTypeChanged: { + if (type === "songs") + MusicProvider.querySongs() + else if (type === "artists") + MusicProvider.queryArtists() + else if (type === "albums") + MusicProvider.queryAllAlbums() + } + + Rectangle { + anchors.fill: parent + color: "black" + } + + ListView { + id: listView + anchors.fill: parent + anchors.topMargin: 10 + model: root.nowPlaying ? MusicProvider.nowPlaying.model : MusicProvider.musicLibrary.model + clip: true + highlightMoveDuration: 300 + highlightFollowsCurrentItem: false + currentIndex: MusicProvider.currentIndex + + delegate: UIElement { + hspan: root.hspan + vspan: 3 + + Rectangle { + anchors.fill: parent + opacity: 0.2 + visible: listView.currentIndex === index + } + + Rectangle { + width: parent.width + height: 1 + opacity: 0.2 + color: "white" + } + + Row { + anchors.verticalCenter: parent.verticalCenter + Icon { + hspan: 2 + vspan: hspan + anchors.verticalCenter: parent.verticalCenter + fit: true + source: MusicProvider.coverPath(model.cover) + } + + Column { + Label { + hspan: 7 + vspan: 1 + text: root.type === "albums" ? model.album.toUpperCase() : model.title.toUpperCase() + font.pixelSize: Style.fontSizeM + } + Label { + hspan: 7 + vspan: 1 + text: model.artist.toUpperCase() + font.pixelSize: Style.fontSizeS + font.bold: true + } + } + } + + MouseArea { + anchors.fill: parent + onClicked: { + if (root.nowPlaying) { + MusicProvider.currentIndex = index + } + else { + listView.currentIndex = index + if (root.type === "songs") { + MusicProvider.selectSpecSong() + MusicProvider.currentIndex = index + } + else if (root.type === "artists") + MusicProvider.querySpecArtist(model.artist) + else if (root.type === "albums") + MusicProvider.querySpecAlbum(model.album) + } + MusicService.play() + } + } + } + + Rectangle { + width: parent.width + height: 300 + anchors.bottom: parent.bottom + gradient: Gradient { + GradientStop { position: 0.0; color: "transparent" } + GradientStop { position: 1.0; color: "black" } + } + } + } + +} + diff --git a/apps/com.pelagicore.music/Music.qml b/apps/com.pelagicore.music/Music.qml index 8511044..583814f 100644 --- a/apps/com.pelagicore.music/Music.qml +++ b/apps/com.pelagicore.music/Music.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -46,7 +46,11 @@ AppUIScreen { } } - cluster: ClusterWidget {} + onRaiseApp: { + MusicProvider.initialize() + } + + //cluster: ClusterWidget {} AppStackView { id: stack diff --git a/apps/com.pelagicore.music/MusicProvider.qml b/apps/com.pelagicore.music/MusicProvider.qml index 3d0e348..45527a1 100644 --- a/apps/com.pelagicore.music/MusicProvider.qml +++ b/apps/com.pelagicore.music/MusicProvider.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -33,37 +33,63 @@ import QtQuick 2.1 import com.pelagicore.datasource 1.0 import service.music 1.0 -SqlQueryDataSource { +QtObject { id: root - database: "media" - query: 'select * from music' + property SqlQueryDataSource musicLibrary: SqlQueryDataSource { + database: "media" + query: 'select * from music' + } + + property SqlQueryDataSource nowPlaying: SqlQueryDataSource { + database: "media" + query: 'select * from music' + } + property int currentIndex: 0 - property var currentEntry: get(currentIndex); - property url currentSource: storageLocation + '/media/music/' + currentEntry.source - property url currentCover: storageLocation + '/media/music/' + currentEntry.cover + property int count: nowPlaying.count + onCountChanged: { + currentIndex = -1 + currentIndex = 0 + } + property var currentEntry: nowPlaying.get(currentIndex); + property url currentSource: nowPlaying.storageLocation + '/media/music/' + currentEntry.source + property url currentCover: nowPlaying.storageLocation + '/media/music/' + currentEntry.cover function queryAllAlbums() { - return 'select distinct album, cover, artist from music' + musicLibrary.query = 'select * from music group by album' } - function queryAlbum(artist, album) { - return 'select * from music' + function querySongs() { + musicLibrary.query = 'select distinct * from music' } - function selectRandomTracks() { - currentIndex = -1 - root.query = 'select * from music order by random()' - currentIndex = 0 + function queryArtists() { + musicLibrary.query = 'select * from music group by artist' + } + + function querySpecArtist(artist) { + nowPlaying.query = "select distinct * from music where artist='" + artist + "'" + } + + function querySpecAlbum(album) { + nowPlaying.query = "select distinct * from music where album='" + album + "'" } + function selectSpecSong () { + nowPlaying.query = 'select distinct * from music' + } + + function selectRandomTracks() { + nowPlaying.query = 'select distinct * from music order by random()' + } function coverPath(cover) { - return Qt.resolvedUrl(storageLocation + '/media/music/' + cover) + return Qt.resolvedUrl(root.nowPlaying.storageLocation + '/media/music/' + cover) } function sourcePath(source) { - return Qt.resolvedUrl(storageLocation + '/media/music/' + source) + return Qt.resolvedUrl(root.nowPlaying.storageLocation + '/media/music/' + source) } function next() { @@ -78,14 +104,17 @@ SqlQueryDataSource { currentIndex-- } - Component.onCompleted: { + function initialize() { MusicService.musicProvider = root MusicService.currentIndex = Qt.binding(function() { return root.currentIndex}) MusicService.currentTrack = Qt.binding(function() { return root.currentEntry}) - MusicService.trackCount = Qt.binding(function() { return root.count}) + MusicService.trackCount = Qt.binding(function() { return root.nowPlaying.count}) MusicService.coverPath = Qt.binding(function() { return root.currentCover}) MusicService.url = Qt.binding(function() { return root.currentSource}) - print("MusicProvider completed") + } + + Component.onCompleted: { + print("MusicProvider completed", root.count) } } diff --git a/apps/com.pelagicore.music/PlaylistContainer.qml b/apps/com.pelagicore.music/PlaylistContainer.qml index 1be6620..06a5198 100644 --- a/apps/com.pelagicore.music/PlaylistContainer.qml +++ b/apps/com.pelagicore.music/PlaylistContainer.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/AppButtonBoard.qml b/boards/AppButtonBoard.qml index 82542fc..9e0388e 100644 --- a/boards/AppButtonBoard.qml +++ b/boards/AppButtonBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/AssetsBoard.qml b/boards/AssetsBoard.qml index 332c299..f79c033 100644 --- a/boards/AssetsBoard.qml +++ b/boards/AssetsBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/BaseBoard.qml b/boards/BaseBoard.qml index 64ea20f..7604d68 100644 --- a/boards/BaseBoard.qml +++ b/boards/BaseBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/ButtonBoard.qml b/boards/ButtonBoard.qml index 9be033b..607394f 100644 --- a/boards/ButtonBoard.qml +++ b/boards/ButtonBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/IconBoard.qml b/boards/IconBoard.qml index c818913..89ff569 100644 --- a/boards/IconBoard.qml +++ b/boards/IconBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/LabelBoard.qml b/boards/LabelBoard.qml index 032c0f0..118003e 100644 --- a/boards/LabelBoard.qml +++ b/boards/LabelBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/LetterPickerBoard.qml b/boards/LetterPickerBoard.qml new file mode 100644 index 0000000..9ebd8c1 --- /dev/null +++ b/boards/LetterPickerBoard.qml @@ -0,0 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: http://www.qt.io/ or http://www.pelagicore.com/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL3-PELAGICORE$ +** Commercial License Usage +** Licensees holding valid commercial Pelagicore Neptune IVI UI +** licenses may use this file in accordance with the commercial license +** agreement provided with the Software or, alternatively, in accordance +** with the terms contained in a written agreement between you and +** Pelagicore. For licensing terms and conditions, contact us at: +** http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +import QtQuick 2.0 +import utils 1.0 +import controls 1.0 + +BaseBoard { + + title: "Letter Picker" + + LetterPicker { + + } +} + diff --git a/boards/ListItemBoard.qml b/boards/ListItemBoard.qml index 786cea3..209bd32 100644 --- a/boards/ListItemBoard.qml +++ b/boards/ListItemBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/SliderBoard.qml b/boards/SliderBoard.qml index b7ef9ea..6c531e7 100644 --- a/boards/SliderBoard.qml +++ b/boards/SliderBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/StyleBoard.qml b/boards/StyleBoard.qml index 2976db4..ef54d47 100644 --- a/boards/StyleBoard.qml +++ b/boards/StyleBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/SwitchBoard.qml b/boards/SwitchBoard.qml index 7906fd4..f1348af 100644 --- a/boards/SwitchBoard.qml +++ b/boards/SwitchBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/TabBoard.qml b/boards/TabBoard.qml index b9e7111..e643118 100644 --- a/boards/TabBoard.qml +++ b/boards/TabBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/TemperatureSliderBoard.qml b/boards/TemperatureSliderBoard.qml index 171c04f..6295b32 100644 --- a/boards/TemperatureSliderBoard.qml +++ b/boards/TemperatureSliderBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/TextFieldBoard.qml b/boards/TextFieldBoard.qml index da353f3..409eecc 100644 --- a/boards/TextFieldBoard.qml +++ b/boards/TextFieldBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/ToolBoard.qml b/boards/ToolBoard.qml index fa1fb87..8d11701 100644 --- a/boards/ToolBoard.qml +++ b/boards/ToolBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/VolumeSliderBoard.qml b/boards/VolumeSliderBoard.qml index a852421..62c0ea6 100644 --- a/boards/VolumeSliderBoard.qml +++ b/boards/VolumeSliderBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/boards/WebBrowserBoard.qml b/boards/WebBrowserBoard.qml index 812cb46..5078bf8 100644 --- a/boards/WebBrowserBoard.qml +++ b/boards/WebBrowserBoard.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/assets/drawable-ldpi/cluster/+--.png b/modules/assets/drawable-ldpi/cluster/+--.png new file mode 100644 index 0000000..9f1ba24 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/+--.png differ diff --git a/modules/assets/drawable-ldpi/cluster/P-R-N-D.png b/modules/assets/drawable-ldpi/cluster/P-R-N-D.png new file mode 100644 index 0000000..b87dcd3 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/P-R-N-D.png differ diff --git a/modules/assets/drawable-ldpi/cluster/cursor-blue.png b/modules/assets/drawable-ldpi/cluster/cursor-blue.png new file mode 100644 index 0000000..1a2c600 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/cursor-blue.png differ diff --git a/modules/assets/drawable-ldpi/cluster/cursor.png b/modules/assets/drawable-ldpi/cluster/cursor.png new file mode 100644 index 0000000..52d2a85 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/cursor.png differ diff --git a/modules/assets/drawable-ldpi/cluster/destination.png b/modules/assets/drawable-ldpi/cluster/destination.png new file mode 100644 index 0000000..6c0610c Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/destination.png differ diff --git a/modules/assets/drawable-ldpi/cluster/dial_cursor.png b/modules/assets/drawable-ldpi/cluster/dial_cursor.png index 3e02952..633e09d 100644 Binary files a/modules/assets/drawable-ldpi/cluster/dial_cursor.png and b/modules/assets/drawable-ldpi/cluster/dial_cursor.png differ diff --git a/modules/assets/drawable-ldpi/cluster/dial_cursor_right.png b/modules/assets/drawable-ldpi/cluster/dial_cursor_right.png new file mode 100644 index 0000000..a406a95 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/dial_cursor_right.png differ diff --git a/modules/assets/drawable-ldpi/cluster/dial_fill_color.png b/modules/assets/drawable-ldpi/cluster/dial_fill_color.png index ed9933f..e263124 100644 Binary files a/modules/assets/drawable-ldpi/cluster/dial_fill_color.png and b/modules/assets/drawable-ldpi/cluster/dial_fill_color.png differ diff --git a/modules/assets/drawable-ldpi/cluster/dial_fill_color_left.png b/modules/assets/drawable-ldpi/cluster/dial_fill_color_left.png new file mode 100644 index 0000000..80813ac Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/dial_fill_color_left.png differ diff --git a/modules/assets/drawable-ldpi/cluster/fuel.png b/modules/assets/drawable-ldpi/cluster/fuel.png new file mode 100644 index 0000000..6115d5c Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/fuel.png differ diff --git a/modules/assets/drawable-ldpi/cluster/fuel_level.png b/modules/assets/drawable-ldpi/cluster/fuel_level.png new file mode 100644 index 0000000..8d63990 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/fuel_level.png differ diff --git a/modules/assets/drawable-ldpi/cluster/fuelsymbol.png b/modules/assets/drawable-ldpi/cluster/fuelsymbol.png new file mode 100644 index 0000000..5d2301d Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/fuelsymbol.png differ diff --git a/modules/assets/drawable-ldpi/cluster/fuelsymbol_orange.png b/modules/assets/drawable-ldpi/cluster/fuelsymbol_orange.png new file mode 100644 index 0000000..a1c0b87 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/fuelsymbol_orange.png differ diff --git a/modules/assets/drawable-ldpi/cluster/km_h.png b/modules/assets/drawable-ldpi/cluster/km_h.png new file mode 100644 index 0000000..145d0c5 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/km_h.png differ diff --git a/modules/assets/drawable-ldpi/cluster/left_dial.png b/modules/assets/drawable-ldpi/cluster/left_dial.png new file mode 100644 index 0000000..9bc7fae Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/left_dial.png differ diff --git a/modules/assets/drawable-ldpi/cluster/middle-bkg.png b/modules/assets/drawable-ldpi/cluster/middle-bkg.png new file mode 100644 index 0000000..ca59c1f Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/middle-bkg.png differ diff --git a/modules/assets/drawable-ldpi/cluster/middle-circle.png b/modules/assets/drawable-ldpi/cluster/middle-circle.png new file mode 100644 index 0000000..8a42cae Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/middle-circle.png differ diff --git a/modules/assets/drawable-ldpi/cluster/my_position.png b/modules/assets/drawable-ldpi/cluster/my_position.png new file mode 100644 index 0000000..9490fa5 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/my_position.png differ diff --git a/modules/assets/drawable-ldpi/cluster/petrol_cluster-02.png b/modules/assets/drawable-ldpi/cluster/petrol_cluster-02.png new file mode 100644 index 0000000..d6c6b13 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/petrol_cluster-02.png differ diff --git a/modules/assets/drawable-ldpi/cluster/right_dial.png b/modules/assets/drawable-ldpi/cluster/right_dial.png new file mode 100644 index 0000000..1df7424 Binary files /dev/null and b/modules/assets/drawable-ldpi/cluster/right_dial.png differ diff --git a/modules/assets/fonts/OFL.txt b/modules/assets/fonts/OFL.txt old mode 100755 new mode 100644 diff --git a/modules/assets/gfx/boxes_layers.png b/modules/assets/gfx/boxes_layers.png new file mode 100644 index 0000000..04ae499 Binary files /dev/null and b/modules/assets/gfx/boxes_layers.png differ diff --git a/modules/controls/AppStackView.qml b/modules/controls/AppStackView.qml index 4bcc6df..d0d9855 100644 --- a/modules/controls/AppStackView.qml +++ b/modules/controls/AppStackView.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/Button.qml b/modules/controls/Button.qml index 2497474..0bea4f2 100644 --- a/modules/controls/Button.qml +++ b/modules/controls/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -76,7 +76,7 @@ UIElement { hspan: root.hspan; vspan: 1 visible: text - + opacity: root.enabled ? 1.0 : 0.6 horizontalAlignment: Text.AlignHCenter font.pixelSize: Style.fontSizeM scale: mouseArea.pressed?0.85:1.0 diff --git a/modules/controls/CategoryListItem.qml b/modules/controls/CategoryListItem.qml index a7bfe09..f9f9318 100644 --- a/modules/controls/CategoryListItem.qml +++ b/modules/controls/CategoryListItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/DisplayBackground.qml b/modules/controls/DisplayBackground.qml index 30865c1..bed1a45 100644 --- a/modules/controls/DisplayBackground.qml +++ b/modules/controls/DisplayBackground.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/Divider.qml b/modules/controls/Divider.qml index 0bbea8b..62b7b6f 100644 --- a/modules/controls/Divider.qml +++ b/modules/controls/Divider.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/HDiv.qml b/modules/controls/HDiv.qml index 299c0ed..8f85745 100644 --- a/modules/controls/HDiv.qml +++ b/modules/controls/HDiv.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/Icon.qml b/modules/controls/Icon.qml index 936583a..122716c 100644 --- a/modules/controls/Icon.qml +++ b/modules/controls/Icon.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/Label.qml b/modules/controls/Label.qml index 29abbfe..e597e1a 100644 --- a/modules/controls/Label.qml +++ b/modules/controls/Label.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/LetterPicker.qml b/modules/controls/LetterPicker.qml new file mode 100644 index 0000000..e3ca687 --- /dev/null +++ b/modules/controls/LetterPicker.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: http://www.qt.io/ or http://www.pelagicore.com/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL3-PELAGICORE$ +** Commercial License Usage +** Licensees holding valid commercial Pelagicore Neptune IVI UI +** licenses may use this file in accordance with the commercial license +** agreement provided with the Software or, alternatively, in accordance +** with the terms contained in a written agreement between you and +** Pelagicore. For licensing terms and conditions, contact us at: +** http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +import QtQuick 2.0 +import QtGraphicalEffects 1.0 +import utils 1.0 + +UIElement { + id: root + + hspan: 1 + vspan: 20 + + property string letter: letterModel[pathView.currentIndex] + property color textColor: "white" + property alias numOfVisibleLetters: pathView.pathItemCount + property var letterModel: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "x", "y", "z"] + + PathView { + id: pathView + + property int padding: (width-root.itemWidth)/2 + + anchors.fill: parent + clip: true + + snapMode: PathView.SnapOneItem + + pathItemCount: 15 + + model: root.letterModel + + preferredHighlightBegin: 0.5 + preferredHighlightEnd: 0.5 + + delegate: Item { + + width: 40 + height: root.height/pathView.count + scale: PathView.scale + property string value: modelData + Label { + anchors.fill: parent + text: modelData.toUpperCase() + horizontalAlignment: Text.AlignHCenter + color: root.textColor + font.pixelSize: Style.fontSizeXL + } + } + + path: Path { + startX: pathView.width/2 + startY: 0 + PathAttribute { name: "scale"; value: 0.7 } + + PathLine { x: pathView.width/2; y: pathView.height/2 } + PathAttribute { name: "scale"; value: 1 } + + PathLine { x: pathView.width/2; y: pathView.height } + PathAttribute { name: "scale"; value: 0.7 } + + } + } + + LinearGradient { + width: root.width + height: 0.3 * root.height + + start: Qt.point(0, 0) + end: Qt.point(0, height) + gradient: Gradient { + GradientStop { position: 0.2; color: "black" } + GradientStop { position: 1.0; color: "transparent" } + } + } + + LinearGradient { + width: root.width + height: 0.3 * root.height + anchors.bottom: parent.bottom + + start: Qt.point(0, 0) + end: Qt.point(0, height) + gradient: Gradient { + GradientStop { position: 0.0; color: "transparent" } + GradientStop { position: 0.8; color: "black" } + } + } + + Tracer {} +} diff --git a/modules/controls/ListItem.qml b/modules/controls/ListItem.qml index 2e439b9..c2484cb 100644 --- a/modules/controls/ListItem.qml +++ b/modules/controls/ListItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/ListViewManager.qml b/modules/controls/ListViewManager.qml index 6cb02aa..a9a4218 100644 --- a/modules/controls/ListViewManager.qml +++ b/modules/controls/ListViewManager.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/PageIndicator.qml b/modules/controls/PageIndicator.qml index 3417e5c..437a262 100644 --- a/modules/controls/PageIndicator.qml +++ b/modules/controls/PageIndicator.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/PageSwipeScreen.qml b/modules/controls/PageSwipeScreen.qml index fb391a3..edc612b 100644 --- a/modules/controls/PageSwipeScreen.qml +++ b/modules/controls/PageSwipeScreen.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/Popup.qml b/modules/controls/Popup.qml new file mode 100644 index 0000000..a8f10ab --- /dev/null +++ b/modules/controls/Popup.qml @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: http://www.qt.io/ or http://www.pelagicore.com/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL3-PELAGICORE$ +** Commercial License Usage +** Licensees holding valid commercial Pelagicore Neptune IVI UI +** licenses may use this file in accordance with the commercial license +** agreement provided with the Software or, alternatively, in accordance +** with the terms contained in a written agreement between you and +** Pelagicore. For licensing terms and conditions, contact us at: +** http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +import QtQuick 2.0 +import controls 1.0 +import utils 1.0 + +UIElement { + id: root + hspan: 6 + vspan: 7 + + property alias source: icon.source + property alias text: label.text + + Rectangle { + anchors.fill: parent + color: "black" + opacity: 0.4 + } + + Image { + id: icon + anchors.top: parent.top + anchors.topMargin: Style.vspan(1) + anchors.horizontalCenter: parent.horizontalCenter + + } + + Label { + id: label + hspan: 7 + vspan: 3 + horizontalAlignment: Text.AlignHCenter + anchors.horizontalCenter: icon.horizontalCenter + anchors.top: icon.bottom + //Tracer { visible: true} + } +} diff --git a/modules/controls/ScrollIndicator.qml b/modules/controls/ScrollIndicator.qml index c102271..7f1bcc5 100644 --- a/modules/controls/ScrollIndicator.qml +++ b/modules/controls/ScrollIndicator.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/SettingsListItem.qml b/modules/controls/SettingsListItem.qml index 88dfb60..dfb85f4 100644 --- a/modules/controls/SettingsListItem.qml +++ b/modules/controls/SettingsListItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/Slider.qml b/modules/controls/Slider.qml index d624034..e3e9076 100644 --- a/modules/controls/Slider.qml +++ b/modules/controls/Slider.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/SwipeView.qml b/modules/controls/SwipeView.qml index c124cd4..11b872e 100644 --- a/modules/controls/SwipeView.qml +++ b/modules/controls/SwipeView.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/Switch.qml b/modules/controls/Switch.qml index 4869fb3..54b3cbc 100644 --- a/modules/controls/Switch.qml +++ b/modules/controls/Switch.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/Symbol.qml b/modules/controls/Symbol.qml index 2fa9dc3..0cbc737 100644 --- a/modules/controls/Symbol.qml +++ b/modules/controls/Symbol.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/Tab.qml b/modules/controls/Tab.qml index be43135..84df622 100644 --- a/modules/controls/Tab.qml +++ b/modules/controls/Tab.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/TabView.qml b/modules/controls/TabView.qml index b82c940..cad26b4 100644 --- a/modules/controls/TabView.qml +++ b/modules/controls/TabView.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -39,11 +39,14 @@ UIElement { property int currentIndex: 0 property alias tabs: repeater.model + property real tabWidth: 3 + property bool horizontalAlignment: true + property int viewLeftMargin: 0 Row { id: tabRow - anchors.horizontalCenter: parent.horizontalCenter + anchors.horizontalCenter: root.horizontalAlignment ? parent.horizontalCenter : undefined spacing: 0 Repeater { @@ -51,9 +54,10 @@ UIElement { Tab { + id: tabTest text: modelData.title selected: root.currentIndex === index - + hspan: root.tabWidth onClicked: { if (root.currentIndex === index) return @@ -71,6 +75,7 @@ UIElement { anchors.top: tabRow.bottom; anchors.bottom: parent.bottom anchors.left: parent.left; anchors.right: parent.right + anchors.leftMargin: root.viewLeftMargin clip: true diff --git a/modules/controls/TextField.qml b/modules/controls/TextField.qml index 1e67a9e..f9ebf0d 100644 --- a/modules/controls/TextField.qml +++ b/modules/controls/TextField.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/TextTool.qml b/modules/controls/TextTool.qml index 674b555..a43dc93 100644 --- a/modules/controls/TextTool.qml +++ b/modules/controls/TextTool.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -49,15 +49,16 @@ UIElement { active = !active } - UIElement { + Rectangle { anchors.fill: parent - anchors.centerIn: parent + color: "black" + opacity: 0.5 + } - Rectangle { - anchors.fill: parent - color: "black" - opacity: 0.5 - } + UIElement { + hspan: parent.hspan + vspan: icon.vspan + label.vspan + anchors.centerIn: parent Symbol { id: icon diff --git a/modules/controls/Tool.qml b/modules/controls/Tool.qml index aed4f7e..54742e3 100644 --- a/modules/controls/Tool.qml +++ b/modules/controls/Tool.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/VDiv.qml b/modules/controls/VDiv.qml index 6038893..947b22d 100644 --- a/modules/controls/VDiv.qml +++ b/modules/controls/VDiv.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/VolumeSlider.qml b/modules/controls/VolumeSlider.qml index b28134b..54d552b 100644 --- a/modules/controls/VolumeSlider.qml +++ b/modules/controls/VolumeSlider.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/WebBrowser.qml b/modules/controls/WebBrowser.qml index 74ed2ba..12c87c9 100644 --- a/modules/controls/WebBrowser.qml +++ b/modules/controls/WebBrowser.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/controls/qmldir b/modules/controls/qmldir index b5db392..84f76b7 100644 --- a/modules/controls/qmldir +++ b/modules/controls/qmldir @@ -25,3 +25,5 @@ Divider 1.0 Divider.qml ListItem 1.0 ListItem.qml AppStackView 1.0 AppStackView.qml SwipeView 1.0 SwipeView.qml +Popup 1.0 Popup.qml +LetterPicker 1.0 LetterPicker.qml diff --git a/modules/service/apps/AppsService.qml b/modules/service/apps/AppsService.qml index eee689e..2265b43 100644 --- a/modules/service/apps/AppsService.qml +++ b/modules/service/apps/AppsService.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -34,5 +34,7 @@ import QtQuick 2.1 QtObject { id: root + property bool popupVisible: false signal clusterWidgetReady(string category, Item item) + signal sendNavigationPopup(Item item) } diff --git a/modules/service/climate/ClimateService.qml b/modules/service/climate/ClimateService.qml index 789c041..e302601 100644 --- a/modules/service/climate/ClimateService.qml +++ b/modules/service/climate/ClimateService.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -31,6 +31,7 @@ pragma Singleton import QtQuick 2.0 import QtIVIVehicleFunctions 1.0 +import service.settings 1.0 QtObject { id: root @@ -40,10 +41,10 @@ QtObject { } property QtObject leftSeat: QtObject { - property real minValue: 16 - property real maxValue: 28 - property real stepValue: 0.5 - property real value: climateControl.zoneAt.FrontLeft.targetTemperature + property real minValue: calculateUnitValue(16) + property real maxValue: calculateUnitValue(28) + property real stepValue: calculateUnitValue(0.5) + property real value: calculateUnitValue(climateControl.zoneAt.FrontLeft.targetTemperature) property bool heat: climateControl.zoneAt.FrontLeft.seatHeater @@ -52,10 +53,10 @@ QtObject { } property QtObject rightSeat: QtObject { - property real minValue: 16 - property real maxValue: 28 - property real stepValue: 0.5 - property real value: climateControl.zoneAt.FrontRight.targetTemperature + property real minValue: calculateUnitValue(16) + property real maxValue: calculateUnitValue(28) + property real stepValue: calculateUnitValue(0.5) + property real value: calculateUnitValue(climateControl.zoneAt.FrontRight.targetTemperature) property bool heat: climateControl.zoneAt.FrontRight.seatHeater @@ -101,8 +102,15 @@ QtObject { property var climateOptions: [frontHeat, rearHeat, airCondition, airQuality, eco, steeringWheelHeat] + property int outsideTemp: calculateUnitValue(15) + property string outsideTempText: qsTr("%1" + tempSuffix).arg(outsideTemp) property int ventilation: climateControl.fanSpeedLevel + property string tempSuffix: SettingsService.metric ? "°C" : "°F" property int ventilationLevels: 7 // 6 + off (0) - onVentilationChanged: climateControl.fanSpeedLevel = ventilation + + function calculateUnitValue(value) { + // Defualt value is the celsius + return (SettingsService.unitSystem === "metric") ? value : (Math.round(value * 1.8 + 32)) + } } diff --git a/modules/service/movie/MovieService.qml b/modules/service/movie/MovieService.qml index 69f4727..952769a 100644 --- a/modules/service/movie/MovieService.qml +++ b/modules/service/movie/MovieService.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/service/music/MusicService.qml b/modules/service/music/MusicService.qml index ab496df..554d4e1 100644 --- a/modules/service/music/MusicService.qml +++ b/modules/service/music/MusicService.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/service/navigation/NavigationService.qml b/modules/service/navigation/NavigationService.qml index 771bcc5..714a8e6 100644 --- a/modules/service/navigation/NavigationService.qml +++ b/modules/service/navigation/NavigationService.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/service/settings/SettingsService.qml b/modules/service/settings/SettingsService.qml index 6ee55a4..5a5f91d 100644 --- a/modules/service/settings/SettingsService.qml +++ b/modules/service/settings/SettingsService.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -31,15 +31,19 @@ pragma Singleton import QtQuick 2.1 -Item { +QtObject { id: root + property bool clusterVisible: true + property string unitSystem: "metric" // "metric" or "imp_us" + property bool metric: unitSystem === "metric" + property ListModel entries: ListModel { ListElement { title: "USER PROFILE"; icon: "profile"; checked: true; hasChildren: true } ListElement { title: "SERVICE & SUPPORT"; icon: "service"; checked: false; hasChildren: false } ListElement { title: "TRAFFIC INFORMATION"; icon: "warning"; checked: true; hasChildren: true } ListElement { title: "TOLL & CONGESTION FEES"; icon: "toll"; checked: false; hasChildren: true } - ListElement { title: "CHARGING FEES"; icon: "fees"; checked: false; hasChildren: false } + ListElement { title: "METRIC SYSTEM"; icon: "fees"; checked: true; hasChildren: false } ListElement { title: "APP UPDATES"; icon: "updates"; checked: true; hasChildren: true } ListElement { title: "INSURANCE FEATURES"; icon: "insurance"; checked: true; hasChildren: true } } diff --git a/modules/service/statusbar/StatusBarService.qml b/modules/service/statusbar/StatusBarService.qml index 4651dca..8bc5c3f 100644 --- a/modules/service/statusbar/StatusBarService.qml +++ b/modules/service/statusbar/StatusBarService.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -36,6 +36,8 @@ Item { id: root property string clusterTitle: "" + property int pageIndicatorSize: 3 + property int currentPage: 0 property var indicators: [ { name: "battery", active: true }, diff --git a/modules/service/vehicle/VehicleService.qml b/modules/service/vehicle/VehicleService.qml index 775bdf6..59c164a 100644 --- a/modules/service/vehicle/VehicleService.qml +++ b/modules/service/vehicle/VehicleService.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -30,26 +30,68 @@ pragma Singleton import QtQuick 2.0 +import utils 1.0 +import service.apps 1.0 -Item { +QtObject { id: root + property bool dialAnimation: false property real speed: 0 - property int displaySpeed: 0 - Timer { - running: true - repeat: true - interval: 100 - onTriggered: { displaySpeed = speed } + + Behavior on speed { + SmoothedAnimation { + velocity: 6 + duration : 5000 + } + } + + readonly property real rightDialValue: root.speed * 0.0061 + + property int displaySpeed: speed + property real fuel: 0.5 // fuel precentage min 0.0; max 1.0; + property string rightDialIcon: Style.gfx("cluster/my_position") + property string rightDialMainText: "0.6mi" + property string rightDialSubText: "Service in\n200mi" + property real rightIconScale: 1 + property var gasStationEvent + property bool gasStationUpdateActive: false + property Timer fuelTimer: Timer { + interval: 5000 + onTriggered: { + root.fuel = 0.2 + root.rightDialIcon = Style.gfx("livedrive/fuel_orange") + root.rightIconScale = 1.4 + root.rightDialMainText = "Low Fuel" + root.rightDialSubText = "Estimation: 5mi" + if (root.gasStationEvent) { + root.gasStationEvent.priority = 1 + fuelEventTimer.start() + } + } + } + + property Timer fuelEventTimer: Timer { + interval: 4000 + onTriggered: { + root.rightDialIcon = Style.gfx("livedrive/fuel_orange") + root.rightIconScale = 1.4 + root.rightDialMainText = root.gasStationEvent.distanceFromStart + "m" + root.rightDialSubText = "SHELL\n2$/Gl" + root.gasStationUpdateActive = true + } } - SequentialAnimation on speed { - running: true - loops: Animation.Infinite - NumberAnimation { from: 30; to: 80; duration: 3000 } - NumberAnimation { from: 80; to: 30; duration: 2000 } + property Timer timer: Timer { + running: root.dialAnimation + repeat: true + interval: 4000 + property bool higherValue: false + onTriggered: { + root.speed = higherValue ? (root.speed - 5) : (root.speed + 5) + higherValue = !higherValue + } } - visible: false } diff --git a/modules/utils/AppUIScreen.qml b/modules/utils/AppUIScreen.qml old mode 100755 new mode 100644 index fbda64a..5b22b80 --- a/modules/utils/AppUIScreen.qml +++ b/modules/utils/AppUIScreen.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -42,16 +42,20 @@ ApplicationManagerWindow { default property alias content: content.children property alias widget: widgetContainer.children property alias cluster: clusterContainer.children + property alias popup: popupContainer.children property bool _widgetSet: false property bool _clusterSet: false + property bool _popupSet: false property bool isWidget: false onWidgetChanged: _widgetSet = true onClusterChanged: _clusterSet = true + onPopupChanged: _popupSet = true signal clusterKeyPressed(int key) + signal raiseApp() function back() { pelagicoreWindow.setWindowProperty("visibility", false) @@ -63,16 +67,35 @@ ApplicationManagerWindow { } function sendClusterWidget() { - cluster.setWindowProperty("windowType", "clusterWidget") - if (Style.withCluster) - cluster.visible = true + cluster.visible = true + } + + function sendPopupWidget() { + popup.setWindowProperty("windowType", "popup") + popup.visible = true } function startFullScreen() { pelagicoreWindow.setWindowProperty("goTo", "fullScreen") } + function showPopup() { + pelagicoreWindow.setWindowProperty("liveDrivePopupVisible", true) + } + + function hidePopup() { + pelagicoreWindow.setWindowProperty("liveDrivePopupVisible", false) + } + + function sendLiveDriveEvent(event) { + cluster.setWindowProperty("liveDriveEvent", event) + } + + function sendRouteUpdate(update) { + cluster.setWindowProperty("routeUpdate", update) + } + DisplayBackground { anchors.fill: parent } @@ -118,7 +141,33 @@ ApplicationManagerWindow { } onWindowPropertyChanged: { - print(":::AppUIScreen::: window property changed", name, value, Qt.Key_Up) + //print(":::AppUIScreen::: window property changed", name, value, Qt.Key_Up) + pelagicoreWindow.clusterKeyPressed(value) + } + } + + ApplicationManagerWindow { + id: popup + width: 285 + height: parent ? parent.height : 0 + visible: false + Item { + id: popupContainer + anchors.fill: parent + } + + Component.onCompleted: { + if (pelagicoreWindow._popupSet) { + pelagicoreWindow.sendPopupWidget() + } + else { + popup.setWindowProperty("windowType", "popup") + } + + } + + onWindowPropertyChanged: { + //print(":::AppUIScreen::: window property changed", name, value, Qt.Key_Up) pelagicoreWindow.clusterKeyPressed(value) } } @@ -129,12 +178,15 @@ ApplicationManagerWindow { } onWindowPropertyChanged: { - print(":::AppUIScreen::: Window property changed", name, value) + //print(":::AppUIScreen::: Window property changed", name, value) if (name === "windowType" && value === "widget") { pelagicoreWindow.isWidget = true } else if (name === "windowType" && value === "fullScreen") { pelagicoreWindow.isWidget = false } + else if (name === "visibility" && value === true) { + root.raiseApp() + } } } diff --git a/modules/utils/DisplayGrid.qml b/modules/utils/DisplayGrid.qml index ce68b8f..92380ab 100644 --- a/modules/utils/DisplayGrid.qml +++ b/modules/utils/DisplayGrid.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/utils/DisplayGridCell.qml b/modules/utils/DisplayGridCell.qml index 1d7d1b7..ea4f5c6 100644 --- a/modules/utils/DisplayGridCell.qml +++ b/modules/utils/DisplayGridCell.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/utils/Layouter.qml b/modules/utils/Layouter.qml index 288f52a..77d9ade 100644 --- a/modules/utils/Layouter.qml +++ b/modules/utils/Layouter.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/utils/Marker.qml b/modules/utils/Marker.qml index a13abcf..b2877d4 100644 --- a/modules/utils/Marker.qml +++ b/modules/utils/Marker.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/utils/Spacer.qml b/modules/utils/Spacer.qml index ae0b740..3211a7b 100644 --- a/modules/utils/Spacer.qml +++ b/modules/utils/Spacer.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/utils/Style.qml b/modules/utils/Style.qml index 9086edf..47251c8 100644 --- a/modules/utils/Style.qml +++ b/modules/utils/Style.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -47,6 +47,8 @@ QtObject { property int cellWidth: 56 // (1366-22)/24 = 56 property int cellHeight: 32 // 768/24 = 32 property string fontFamily: true ? 'Source Sans Pro' : fontRegular.name + // enable next line to test OpenSans font +// property string fontFamily: fontBackup.name property var fontWeight: Font.Light property int fontSizeXXS: 14 property int fontSizeXS: 16 @@ -86,8 +88,13 @@ QtObject { source: font('SourceSansPro-Light') } + property FontLoader fontBackup: FontLoader { + source: font('OpenSans-Regular') + } + + function symbol(name, size, active) { - if (size == 0) + if (size === 0) size = defaultSymbolSize return symbolUrl + (active ? '/active/' : '/') + name + '@' + size + '.png' } diff --git a/modules/utils/Tracer.qml b/modules/utils/Tracer.qml index cddef91..4afa513 100644 --- a/modules/utils/Tracer.qml +++ b/modules/utils/Tracer.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/utils/UIElement.qml b/modules/utils/UIElement.qml index 458b69d..a55d92b 100644 --- a/modules/utils/UIElement.qml +++ b/modules/utils/UIElement.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/utils/UIPage.qml b/modules/utils/UIPage.qml index be3d7bd..3d6a197 100644 --- a/modules/utils/UIPage.qml +++ b/modules/utils/UIPage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/utils/UIPanel.qml b/modules/utils/UIPanel.qml index 87e9b5c..45d88d9 100644 --- a/modules/utils/UIPanel.qml +++ b/modules/utils/UIPanel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/modules/utils/UIScreen.qml b/modules/utils/UIScreen.qml index cbfd351..adadfd4 100644 --- a/modules/utils/UIScreen.qml +++ b/modules/utils/UIScreen.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/neptuneui.pro b/neptuneui.pro index e4bd922..62c770b 100644 --- a/neptuneui.pro +++ b/neptuneui.pro @@ -2,6 +2,6 @@ TEMPLATE = subdirs SUBDIRS = plugins/datasource -qml.files = apps modules sysui +qml.files = apps modules sysui i18n am-config.yaml DimAndCsd.qml Main* INSTALLS += qml diff --git a/neptuneui.qmlproject b/neptuneui.qmlproject index 4c2f522..f7dd853 100644 --- a/neptuneui.qmlproject +++ b/neptuneui.qmlproject @@ -1,8 +1,9 @@ +/* File generated by Qt Creator */ import QmlProject 1.1 Project { - mainFile: "" + mainFile: "DimAndCsd.qml" /* Include .qml, .js, and image files from current directory and subdirectories */ QmlFiles { diff --git a/plugins/datasource/datasource.cpp b/plugins/datasource/datasource.cpp index 6b53f42..34823a9 100644 --- a/plugins/datasource/datasource.cpp +++ b/plugins/datasource/datasource.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/datasource.h b/plugins/datasource/datasource.h index 3d248e3..21265b9 100644 --- a/plugins/datasource/datasource.h +++ b/plugins/datasource/datasource.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/plugin.cpp b/plugins/datasource/plugin.cpp index 0dd87fd..6954605 100644 --- a/plugins/datasource/plugin.cpp +++ b/plugins/datasource/plugin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/plugin.h b/plugins/datasource/plugin.h index bba0a0f..a9acd46 100644 --- a/plugins/datasource/plugin.h +++ b/plugins/datasource/plugin.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/sqlquerydatasource.cpp b/plugins/datasource/sqlquerydatasource.cpp index 48eb025..2c8e504 100644 --- a/plugins/datasource/sqlquerydatasource.cpp +++ b/plugins/datasource/sqlquerydatasource.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/sqlquerydatasource.h b/plugins/datasource/sqlquerydatasource.h index bdec973..aeb357e 100644 --- a/plugins/datasource/sqlquerydatasource.h +++ b/plugins/datasource/sqlquerydatasource.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/sqlquerymodel.cpp b/plugins/datasource/sqlquerymodel.cpp index 6f1fa5e..c546c32 100644 --- a/plugins/datasource/sqlquerymodel.cpp +++ b/plugins/datasource/sqlquerymodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/sqlquerymodel.h b/plugins/datasource/sqlquerymodel.h index 056048f..5142e34 100644 --- a/plugins/datasource/sqlquerymodel.h +++ b/plugins/datasource/sqlquerymodel.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/sqltabledatasource.cpp b/plugins/datasource/sqltabledatasource.cpp index c54f6ee..d435d1a 100644 --- a/plugins/datasource/sqltabledatasource.cpp +++ b/plugins/datasource/sqltabledatasource.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/sqltabledatasource.h b/plugins/datasource/sqltabledatasource.h index 61dbb6e..f47845f 100644 --- a/plugins/datasource/sqltabledatasource.h +++ b/plugins/datasource/sqltabledatasource.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/sqltablemodel.cpp b/plugins/datasource/sqltablemodel.cpp index 7b3b379..2d6252e 100644 --- a/plugins/datasource/sqltablemodel.cpp +++ b/plugins/datasource/sqltablemodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/plugins/datasource/sqltablemodel.h b/plugins/datasource/sqltablemodel.h index 1d4425b..79ca409 100644 --- a/plugins/datasource/sqltablemodel.h +++ b/plugins/datasource/sqltablemodel.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/About.qml b/sysui/About.qml index b68bd9a..ccef16b 100644 --- a/sysui/About.qml +++ b/sysui/About.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -32,6 +32,7 @@ import QtQuick 2.1 import controls 1.0 import utils 1.0 +import service.settings 1.0 UIElement { id: root @@ -39,41 +40,57 @@ UIElement { signal clicked() Image { - x: Style.hspan(4) - y: Style.vspan(2) - source: Style.gfx2Dynamic("pelagicore_colored_white", Style.defaultGfxSize) - + id: logo width: Style.hspan(7) height: Style.vspan(4) + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: parent.top + anchors.topMargin: Style.vspan(2) + source: Style.gfx2Dynamic("pelagicore_colored_white", Style.defaultGfxSize) fillMode: Image.PreserveAspectFit - } - - Image { - source: Style.gfx2("headunit") - width: Style.hspan(8) - - y: Style.vspan(9) - x: Style.hspan(4) - fillMode: Image.PreserveAspectFit } Label { - - x: Style.hspan(8) - y: Style.vspan(8) - + id: description + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: logo.bottom width: Style.hspan(12) - height: Style.vspan(10) + height: Style.vspan(4) + horizontalAlignment: Text.AlignHCenter - text: "Bring stunning UX to the road. \n\nPELUX® HeadUnit enables you to design and implement a center-stack user experience (UX) that brings your customers closer to your brand. You will deliver a rock-solid head unit with a UX that’s in-line with next generation mobile devices." + text: "We put Stunning User Experiences on the road" wrapMode: Text.Wrap font.pixelSize: Style.fontSizeL + font.bold: true + + } + + Image { + width: Style.hspan(20) + height: Style.vspan(16) + anchors.bottom: parent.bottom + anchors.bottomMargin: -Style.vspan(2) + anchors.horizontalCenter: parent.horizontalCenter + source: Style.gfx2("boxes_layers") + fillMode: Image.PreserveAspectFit + + Tracer {} } MouseArea { anchors.fill: parent onClicked: root.clicked() } + +// Button { +// id: closeButton +// anchors.top: parent.top +// anchors.horizontalCenter: parent.horizontalCenter +// text: "Restart UI" +// onClicked: Qt.quit() +// } + + Tracer {} } diff --git a/sysui/Climate/AirFlow.qml b/sysui/Climate/AirFlow.qml index 916726d..5d674d0 100644 --- a/sysui/Climate/AirFlow.qml +++ b/sysui/Climate/AirFlow.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Climate/ClimateBar.qml b/sysui/Climate/ClimateBar.qml index 54dae8f..2aedf1c 100644 --- a/sysui/Climate/ClimateBar.qml +++ b/sysui/Climate/ClimateBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -84,7 +84,7 @@ UIElement { Tool { id: leftSeatHeat - hspan: 1 + hspan: 2 vspan: root.collapsedVspan name: "seat_left" active: ClimateService.leftSeat.heat @@ -103,7 +103,7 @@ UIElement { Tool { id: rightSeatHeat - hspan: 1 + hspan: 2 vspan: root.collapsedVspan name: "seat_right" active: ClimateService.rightSeat.heat @@ -133,6 +133,7 @@ UIElement { minValue: ClimateService.leftSeat.minValue maxValue: ClimateService.leftSeat.maxValue value: ClimateService.leftSeat.value + stepValue: ClimateService.leftSeat.stepValue onValueChanged: ClimateService.leftSeat.value = value } @@ -142,7 +143,7 @@ UIElement { } ColumnLayout { - spacing: 0 + spacing: 20 Layout.alignment: Qt.AlignTop Layout.fillWidth: true @@ -196,6 +197,7 @@ UIElement { minValue: ClimateService.rightSeat.minValue maxValue: ClimateService.rightSeat.maxValue value: ClimateService.rightSeat.value + stepValue: ClimateService.rightSeat.stepValue onValueChanged: ClimateService.rightSeat.value = value } diff --git a/sysui/Climate/ClimateGridButton.qml b/sysui/Climate/ClimateGridButton.qml index 8ebbdf6..c97aa10 100644 --- a/sysui/Climate/ClimateGridButton.qml +++ b/sysui/Climate/ClimateGridButton.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Climate/ClimateOptionsGrid.qml b/sysui/Climate/ClimateOptionsGrid.qml index 6c0de06..1a7c1f7 100644 --- a/sysui/Climate/ClimateOptionsGrid.qml +++ b/sysui/Climate/ClimateOptionsGrid.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Climate/ClimatePanelBackground.qml b/sysui/Climate/ClimatePanelBackground.qml index f7e49f8..9dacf9e 100644 --- a/sysui/Climate/ClimatePanelBackground.qml +++ b/sysui/Climate/ClimatePanelBackground.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Climate/TemperatureLevel.qml b/sysui/Climate/TemperatureLevel.qml index c7c4008..886dc7e 100644 --- a/sysui/Climate/TemperatureLevel.qml +++ b/sysui/Climate/TemperatureLevel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -31,6 +31,7 @@ import QtQuick 2.1 import controls 1.0 import utils 1.0 +import service.climate 1.0 UIElement { id: root @@ -67,6 +68,7 @@ UIElement { font.pixelSize: Style.fontSizeXXL font.family: Style.fontFamily font.weight: Style.fontWeight + } Text { @@ -92,7 +94,7 @@ UIElement { anchors.baseline: integerPart.baseline height: Style.vspan(1) - text: qsTr("°c") + text: ClimateService.tempSuffix color: Style.colorWhite font.pixelSize: Style.fontSizeXXL*0.97 //RG: the 0.97 is there to get around a font rendering bug on the iMX6 @@ -100,4 +102,5 @@ UIElement { font.weight: Style.fontWeight } } + Tracer {} } diff --git a/sysui/Climate/TemperatureSlider.qml b/sysui/Climate/TemperatureSlider.qml index db6314d..ee03c85 100644 --- a/sysui/Climate/TemperatureSlider.qml +++ b/sysui/Climate/TemperatureSlider.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -45,7 +45,8 @@ UIElement { property real minValue: 16 property real maxValue: 28 property real value: minValue - property int roundingMode: roundingModeHalf + property int roundingMode: roundingModeWhole + property real stepValue: 0.5 transform: Rotation { angle: mirrorSlider ? 180 : 0 @@ -74,7 +75,7 @@ UIElement { MouseArea { anchors.fill: parent - onClicked: root.value = root._clamp(root.value + 1 / root.roundingMode) + onClicked: root.value = root._clamp(root.value + 1/roundingMode) } } @@ -123,7 +124,6 @@ UIElement { border.color: Qt.darker(color, 1.5) border.width: 1 color: Qt.rgba(view.calcRed(index), view.calcGreen(index), view.calcBlue(index)) - //radius: 1 scale: bottomPart ? 1.0 : 0.96 transformOrigin: Item.Left Behavior on scale { NumberAnimation { easing.type: Easing.OutQuad } } diff --git a/sysui/Climate/Ventilation.qml b/sysui/Climate/Ventilation.qml index f754023..afc70c0 100644 --- a/sysui/Climate/Ventilation.qml +++ b/sysui/Climate/Ventilation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cloud/CloudPage.qml b/sysui/Cloud/CloudPage.qml index 8c487d6..ccb97ca 100644 --- a/sysui/Cloud/CloudPage.qml +++ b/sysui/Cloud/CloudPage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cloud/Settings/SettingsScreen.qml b/sysui/Cloud/Settings/SettingsScreen.qml index bf0a67a..b418c6d 100644 --- a/sysui/Cloud/Settings/SettingsScreen.qml +++ b/sysui/Cloud/Settings/SettingsScreen.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -55,6 +55,14 @@ UIElement { titleText: model.title checked: model.checked hasChildren: model.hasChildren + onClicked: { + if ( titleText === "METRIC SYSTEM") { + if (checked) + SettingsService.unitSystem = "imp_us" + else + SettingsService.unitSystem = "metric" + } + } } } diff --git a/sysui/Cloud/Store/AppGridItemDelegate.qml b/sysui/Cloud/Store/AppGridItemDelegate.qml index c4aedad..1829701 100644 --- a/sysui/Cloud/Store/AppGridItemDelegate.qml +++ b/sysui/Cloud/Store/AppGridItemDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cloud/Store/AppGridView.qml b/sysui/Cloud/Store/AppGridView.qml index d19682f..8882187 100644 --- a/sysui/Cloud/Store/AppGridView.qml +++ b/sysui/Cloud/Store/AppGridView.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cloud/Store/AppStore.qml b/sysui/Cloud/Store/AppStore.qml index c45c296..0684d07 100755 --- a/sysui/Cloud/Store/AppStore.qml +++ b/sysui/Cloud/Store/AppStore.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cloud/Store/AppStoreController.qml b/sysui/Cloud/Store/AppStoreController.qml index 5966b8e..6911b43 100755 --- a/sysui/Cloud/Store/AppStoreController.qml +++ b/sysui/Cloud/Store/AppStoreController.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -107,7 +107,7 @@ Item { delegate: CategoryListItem { width: ListView.view.width height: Style.vspan(5/3) - text: model.name //.title + text: model.name onClicked: ListView.view.currentIndex = index } diff --git a/sysui/Cloud/Store/JSONBackend.js b/sysui/Cloud/Store/JSONBackend.js index fbef335..0414c0d 100644 --- a/sysui/Cloud/Store/JSONBackend.js +++ b/sysui/Cloud/Store/JSONBackend.js @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cloud/Store/JSONModel.qml b/sysui/Cloud/Store/JSONModel.qml index 4902d20..e1ea3a0 100644 --- a/sysui/Cloud/Store/JSONModel.qml +++ b/sysui/Cloud/Store/JSONModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cloud/Store/LoadingPage.qml b/sysui/Cloud/Store/LoadingPage.qml index f7e3df2..76f27fc 100644 --- a/sysui/Cloud/Store/LoadingPage.qml +++ b/sysui/Cloud/Store/LoadingPage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cloud/Store/NotFoundOverlay.qml b/sysui/Cloud/Store/NotFoundOverlay.qml index 6c9a95f..beb1847 100644 --- a/sysui/Cloud/Store/NotFoundOverlay.qml +++ b/sysui/Cloud/Store/NotFoundOverlay.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cloud/Store/StoreScreen.qml b/sysui/Cloud/Store/StoreScreen.qml index 63d6e7c..aa534d9 100644 --- a/sysui/Cloud/Store/StoreScreen.qml +++ b/sysui/Cloud/Store/StoreScreen.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cluster/Cluster.qml b/sysui/Cluster/Cluster.qml index 4ecd04a..7724a62 100644 --- a/sysui/Cluster/Cluster.qml +++ b/sysui/Cluster/Cluster.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -39,9 +39,9 @@ Item { property bool zoom: false - Image { + Rectangle { anchors.fill: parent - source: Style.gfx("cluster/background") + color: "#0c0c0c" } Middle { @@ -60,14 +60,13 @@ Item { LeftDial { id: leftDial - x: root.zoom ? -230 : 0 - zoom: root.zoom + //x: root.zoom ? -230 : 0 + Tracer {} } RightDial { id: rightDial - x: root.zoom ? 1240 : (1920 - width) - zoom: root.zoom + x: (1920 - width) } Top { @@ -76,11 +75,11 @@ Item { anchors.horizontalCenter: parent.horizontalCenter } - Notifications { - id: notifications - y: root.zoom ? root.height : root.height - notifications.height - 15 - anchors.horizontalCenter: parent.horizontalCenter - } +// Notifications { +// id: notifications +// y: root.zoom ? root.height : root.height - notifications.height - 15 +// anchors.horizontalCenter: parent.horizontalCenter +// } Image { anchors.fill: parent @@ -98,7 +97,7 @@ Item { Keys.forwardTo: Style.debugMode ? [layouter] : null - property var layoutTarget: notifications + property var layoutTarget//: notifications Layouter { id: layouter diff --git a/sysui/Cluster/Dial.qml b/sysui/Cluster/Dial.qml index 478b8cb..c6c5d50 100644 --- a/sysui/Cluster/Dial.qml +++ b/sysui/Cluster/Dial.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -36,58 +36,61 @@ Item { property real value: 0 property int upDuration: 2000 property int downDuration: 1000 + property string fillImage: "cluster/dial_fill_color_left" + property string circleRadius: "0.193" + property string dialCursor: "cluster/dial_cursor" - width: meter.width - height: meter.height + width: 480 + height: width Image { id: meter property real min: -83.5 property real max: 157 - + width: root.width + height: width - 1 rotation: min + (max - min) * root.value + source: Style.gfx(root.dialCursor) + } - source: Style.gfx("cluster/dial_cursor") - - ShaderEffect { - anchors.fill: parent - property var pattern: Image { - source: Style.gfx("cluster/dial_pattern") - } - property var fill: Image { - source: Style.gfx("cluster/dial_fill_color") - } - property real value: root.value + ShaderEffect { + anchors.fill: meter + property var pattern: Image { + source: Style.gfx("cluster/dial_pattern") + } + property var fill: Image { + source: Style.gfx(root.fillImage) + } + property real value: root.value - fragmentShader: " - #define M_PI 3.141592653589793 - #define INNER 0.213 + fragmentShader: " +#define M_PI 3.141592653589793 +#define INNER " + root.circleRadius + " - varying highp vec2 qt_TexCoord0; - uniform lowp float qt_Opacity; - uniform sampler2D pattern; - uniform sampler2D fill; - uniform lowp float value; +varying highp vec2 qt_TexCoord0; +uniform lowp float qt_Opacity; +uniform sampler2D pattern; +uniform sampler2D fill; +uniform lowp float value; - void main() { - lowp vec4 pattern = texture2D(pattern, qt_TexCoord0); - lowp vec4 fill = texture2D(fill, qt_TexCoord0); +void main() { + lowp vec4 pattern = texture2D(pattern, qt_TexCoord0); + lowp vec4 fill = texture2D(fill, qt_TexCoord0); - lowp vec2 pos = vec2(qt_TexCoord0.x - 0.5, 0.501 - qt_TexCoord0.y); - lowp float d = length(pos); - lowp float angle = atan(pos.x, pos.y) / (2.0 * M_PI); - lowp float v = 0.66 * value - 0.33; + lowp vec2 pos = vec2(qt_TexCoord0.x - 0.5, 0.501 - qt_TexCoord0.y); + lowp float d = length(pos); + lowp float angle = atan(pos.x, pos.y) / (2.0 * M_PI); + lowp float v = 0.66 * value - 0.33; - // Flare pattern - lowp vec4 color = mix(pattern, vec4(0.0), smoothstep(v, v + 0.1, angle)); - // Gradient fill color - color += mix(fill, vec4(0.0), step(v, angle)); - // Punch out the center hole - color = mix(vec4(0.0), color, smoothstep(INNER - 0.001, INNER + 0.001, d)); - // Fade out below 0 - gl_FragColor = mix(color, vec4(0.0), smoothstep(-0.35, -0.5, angle)); - } - " - } + // Flare pattern + lowp vec4 color = mix(pattern, vec4(0.0), smoothstep(v, v + 0.1, angle)); + // Gradient fill color + color += mix(fill, vec4(0.0), step(v, angle)); + // Punch out the center hole + color = mix(vec4(0.0), color, smoothstep(INNER - 0.001, INNER + 0.001, d)); + // Fade out below 0 + gl_FragColor = mix(color, vec4(0.0), smoothstep(-0.35, -0.5, angle)); +} + " } } diff --git a/sysui/Cluster/Fuel.qml b/sysui/Cluster/Fuel.qml new file mode 100644 index 0000000..97f2a4a --- /dev/null +++ b/sysui/Cluster/Fuel.qml @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: http://www.qt.io/ or http://www.pelagicore.com/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL3-PELAGICORE$ +** Commercial License Usage +** Licensees holding valid commercial Pelagicore Neptune IVI UI +** licenses may use this file in accordance with the commercial license +** agreement provided with the Software or, alternatively, in accordance +** with the terms contained in a written agreement between you and +** Pelagicore. For licensing terms and conditions, contact us at: +** http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +import QtQuick 2.1 +import utils 1.0 +import controls 1.0 +import service.vehicle 1.0 + +Item { + id: root + implicitWidth: fuel.sourceSize.width + implicitHeight: fuel.sourceSize.height + + property real value: VehicleService.fuel <= 0.3 ? (VehicleService.fuel + 0.1) : VehicleService.fuel + + Behavior on value { + NumberAnimation { + duration: 400 + } + } + + Item { + width: root.value * parent.width + height: parent.height + clip: true + Image { + source: Style.gfx("cluster/fuel_level") + } + Tracer { } + } + + Image { + id: fuel + source: Style.gfx("cluster/fuel") + + } + Tracer { } +} + diff --git a/sysui/Cluster/LeftDial.qml b/sysui/Cluster/LeftDial.qml index bc22d2c..d40525a 100644 --- a/sysui/Cluster/LeftDial.qml +++ b/sysui/Cluster/LeftDial.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -29,14 +29,15 @@ ****************************************************************************/ import QtQuick 2.1 +import QtGraphicalEffects 1.0 import utils 1.0 import service.vehicle 1.0 Item { id: root - width: childrenRect.width - height: childrenRect.height + width: 570 + height: 720 scale: zoom ? 0.7 : 1 property bool zoom: false @@ -56,26 +57,16 @@ Item { transform: Rotation { origin.x: root.width/2; origin.y: root.height/2; axis { x: 0; y: 1; z: 0 } angle: root.angle } - Image { - id: background - source: Style.gfx("cluster/left_dial_background") - } - - Dial { - anchors.centerIn: overlay - anchors.verticalCenterOffset: 18 - - value: VehicleService.speed / 240 - } - Image { id: overlay - anchors.top: background.top - anchors.left: background.left - anchors.topMargin: 116 - anchors.leftMargin: 174 + anchors.right: parent.right + anchors.top: parent.top + anchors.rightMargin: 0 + anchors.topMargin: 120 + + source: Style.gfx("cluster/left_dial") - source: Style.gfx("cluster/left_dial_overlay") + Tracer {} } Text { @@ -83,12 +74,58 @@ Item { anchors.verticalCenter: overlay.verticalCenter anchors.horizontalCenter: overlay.horizontalCenter - anchors.verticalCenterOffset: -6 - + anchors.verticalCenterOffset: -7 + anchors.horizontalCenterOffset: 5 font.family: Style.fontFamily - font.pixelSize: 110 + font.pixelSize: 60 font.letterSpacing: 4 color: Style.colorWhite text: VehicleService.displaySpeed } + + Rectangle { + width: 60 + height: 1 + opacity: 0.4 + anchors.top: speedText.bottom + anchors.topMargin: -8 + anchors.horizontalCenter: overlay.horizontalCenter + anchors.horizontalCenterOffset: 2 + } + + Text { + id: mph + anchors.top: speedText.bottom + anchors.topMargin: -5 + anchors.horizontalCenter: overlay.horizontalCenter + anchors.horizontalCenterOffset: 2 + font.family: Style.fontFamily + font.pixelSize: 24 + color: Style.colorWhite + text: "mph" + } + + +// Text { +// id: travelled +// anchors.verticalCenter: parent.verticalCenter +// anchors.verticalCenterOffset: 130 +// anchors.horizontalCenter: overlay.horizontalCenter +// anchors.horizontalCenterOffset: 2 +// font.family: Style.fontFamily +// font.pixelSize: 24 +// color: Style.colorWhite +// text: "-1531mi-" +// } + + + + Dial { + anchors.centerIn: overlay + anchors.verticalCenterOffset: 2 + fillImage: "cluster/dial_fill_color_left" + value: VehicleService.speed / 240 + + Tracer {} + } } diff --git a/sysui/Cluster/Middle.qml b/sysui/Cluster/Middle.qml index 9b99b99..e14b6c3 100644 --- a/sysui/Cluster/Middle.qml +++ b/sysui/Cluster/Middle.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -29,15 +29,15 @@ ****************************************************************************/ import QtQuick 2.1 -import QtQuick.Controls 1.2 +import QtGraphicalEffects 1.0 import utils 1.0 import service.statusbar 1.0 import service.apps 1.0 Item { id: root - width: 700 - height: 710 + width: 1300 + height: 720 focus: true @@ -67,6 +67,8 @@ Item { width: stack.width height: stack.height title: "NAVIGATOR" + + Tracer {} } WidgetContainer { id: musicContainer @@ -82,24 +84,28 @@ Item { } } - Component.onCompleted: StatusBarService.clusterTitle = Qt.binding(function() { return currentItem.title}) + Component.onCompleted: { + StatusBarService.pageIndicatorSize = stack.count + StatusBarService.currentPage = Qt.binding(function() { return stack.currentIndex}) + StatusBarService.clusterTitle = Qt.binding(function() { return currentItem.title}) + } } Connections { target: AppsService onClusterWidgetReady: { - if (category === "media") { - musicContainer.content = item - stack.currentIndex = 1 - } - else if (category === "navigation") { +// if (category === "media") { +// musicContainer.content = item +// stack.currentIndex = 1 +// } + if (category === "navigation") { navContainer.content = item stack.currentIndex = 0 } - else { - otherContainer.content = item - stack.currentIndex = 2 - } +// else { +// otherContainer.content = item +// stack.currentIndex = 2 +// } } } @@ -122,4 +128,34 @@ Item { } Keys.forwardTo: stack.currentItem + +// Rectangle { +// anchors.fill: parent +// } + + LinearGradient { + width: 300 + height: parent.height + + start: Qt.point(0, 0) + end: Qt.point(width, 0) + gradient: Gradient { + GradientStop { position: 0.3; color: "#0c0c0c" } + GradientStop { position: 1.0; color: "transparent" } + } + } + + LinearGradient { + width: 300 + height: parent.height + anchors.right: parent.right + start: Qt.point(0, 0) + end: Qt.point(width, 0) + gradient: Gradient { + GradientStop { position: 0.0; color: "transparent" } + GradientStop { position: 0.7; color: "#0c0c0c" } + } + } + + } diff --git a/sysui/Cluster/Notifications.qml b/sysui/Cluster/Notifications.qml index d1a4e92..5cf4e3b 100644 --- a/sysui/Cluster/Notifications.qml +++ b/sysui/Cluster/Notifications.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Cluster/RightDial.qml b/sysui/Cluster/RightDial.qml index d53459c..097c018 100644 --- a/sysui/Cluster/RightDial.qml +++ b/sysui/Cluster/RightDial.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -30,11 +30,14 @@ import QtQuick 2.1 import utils 1.0 +import controls 1.0 +import service.vehicle 1.0 +import service.navigation 1.0 Item { id: root - width: childrenRect.width - height: childrenRect.height + width: 570 + height: 720 scale: zoom ? 0.7 : 1 property bool zoom: false @@ -54,33 +57,164 @@ Item { transform: Rotation { origin.x: root.width/2; origin.y: root.height/2; axis { x: 0; y: 1; z: 0 } angle: root.angle } + Item { + width: parent.width/3 + height: 50 + anchors.bottom: overlay.top + anchors.left: parent.left + anchors.leftMargin: 110 + Image { + id: gears + anchors.bottom: parent.bottom + anchors.right: parent.right + source: Style.gfx("cluster/P-R-N-D") + + } + + Image { + id: plusMinus + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.leftMargin: 50 + source: Style.gfx("cluster/+--") + } + Tracer {} + } + Image { - id: background - anchors.right: parent.right - source: Style.gfx("cluster/right_dial_background") + id: overlay + anchors.left: parent.left + anchors.top: parent.top + anchors.leftMargin: 0 + anchors.topMargin: 120 + + source: Style.gfx("cluster/right_dial") + Rectangle { + id: rect + width: circle.width + 5 + height: width + radius: width + color: "transparent" + border.color: (VehicleService.fuel < 0.4 || NavigationService.traficAlert) ? Style.colorOrange : "white" + border.width: rect.borderWidth + anchors.centerIn: parent + anchors.horizontalCenterOffset: -3 + + property int borderWidth: 3 + + SequentialAnimation { + running: (VehicleService.fuel < 0.4 || NavigationService.traficAlert) + loops: Animation.Infinite + NumberAnimation { + + target: rect + properties: "borderWidth" + from: 3 + to: 7 + duration: 500 + } + + NumberAnimation { + + target: rect + properties: "borderWidth" + from: 7 + to: 3 + duration: 500 + } + + onStopped: rect.borderWidth = 3 + + } + } + + Image { + id: circle + anchors.centerIn: parent + anchors.horizontalCenterOffset: -6 + anchors.verticalCenterOffset: 0 + source: Style.gfx("cluster/middle-bkg") + + Image { + id: circle_overlay + anchors.centerIn: parent + source: Style.gfx("cluster/middle-circle") + } + + Image { + id: fuelSymbol + anchors.top: parent.top + anchors.topMargin: 20 + anchors.horizontalCenter: parent.horizontalCenter + anchors.horizontalCenterOffset: 5 + source: VehicleService.rightDialIcon + scale: VehicleService.rightIconScale + } + + Item { + width: parent.width + height: parent.height/2 + anchors.centerIn: parent + anchors.verticalCenterOffset: 40 + + Rectangle { + id: speedText + width: parent.width - 80 + height: 40 + radius: 20 + anchors.horizontalCenter: parent.horizontalCenter + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.darker("grey", 1.5) } + GradientStop { position: 0.4; color: "#0c0c0c" } + } + + Label { + width: 100 + anchors.centerIn: parent + horizontalAlignment: Text.AlignHCenter + font.pixelSize: 36 + font.bold: true + //font.letterSpacing: 2 + color: Style.colorWhite + text: VehicleService.rightDialMainText + } + + } + Label { + id: infoText + anchors.top: speedText.bottom + anchors.topMargin: 20 + anchors.horizontalCenter: parent.horizontalCenter + + font.pixelSize: 24 + //font.letterSpacing: 2 + color: Style.colorWhite + horizontalAlignment: Text.AlignHCenter + text: VehicleService.rightDialSubText + } + } + } } + Fuel { + anchors.bottom: parent.bottom + anchors.bottomMargin: 30 + anchors.horizontalCenter: parent.horizontalCenter + anchors.horizontalCenterOffset: -50 + } Dial { id: dial anchors.centerIn: overlay + anchors.verticalCenterOffset: 3 + anchors.horizontalCenterOffset: 2 + fillImage: "cluster/dial_fill_color" + circleRadius: "0.28" + dialCursor: "cluster/dial_cursor_right" + value: VehicleService.rightDialValue - SequentialAnimation on value { - running: true - loops: Animation.Infinite - NumberAnimation { from: 0.15; to: 0.40; duration: 2000 } - NumberAnimation { from: 0.40; to: 0.15; duration: 1000 } - } } - Image { - id: overlay - anchors.top: background.top - anchors.left: background.left - anchors.topMargin: 115 - anchors.leftMargin: 208 - - source: Style.gfx("cluster/right_dial_overlay") - } + Tracer {} } diff --git a/sysui/Cluster/Top.qml b/sysui/Cluster/Top.qml index 8c15cf1..62c0006 100644 --- a/sysui/Cluster/Top.qml +++ b/sysui/Cluster/Top.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -31,6 +31,7 @@ import QtQuick 2.1 import utils 1.0 import controls 1.0 +import service.climate 1.0 import service.settings 1.0 import service.statusbar 1.0 @@ -45,11 +46,11 @@ Item { Image { id: background source: Style.gfx("cluster/top_bar") + Tracer {} } Label { id: timeText - anchors.verticalCenter: background.verticalCenter anchors.left: background.left anchors.verticalCenterOffset: 0 @@ -66,23 +67,20 @@ Item { anchors.horizontalCenter: background.horizontalCenter Row { + id: row property int radius: 7 anchors.centerIn: parent anchors.verticalCenterOffset: -16 spacing: 8 - Rectangle { - height: parent.radius * 2 - width: parent.radius * 2 - radius: parent.radius - color: Style.colorWhite - } - - Rectangle { - height: parent.radius * 2 - width: parent.radius * 2 - radius: parent.radius - color: "#4d4d4d" + Repeater { + model: StatusBarService.pageIndicatorSize + delegate: Rectangle { + height: row.radius * 2 + width: row.radius * 2 + radius: row.radius + color: StatusBarService.currentPage === index ? Style.colorWhite : "#4d4d4d" + } } } @@ -99,7 +97,6 @@ Item { Label { id: temperatureText - anchors.verticalCenter: background.verticalCenter anchors.left: background.right anchors.verticalCenterOffset: 0 @@ -107,7 +104,7 @@ Item { font.pixelSize: 37 - text: "15\u00b0c" + text: ClimateService.outsideTempText } //Component.onCompleted: layoutTarget = navText diff --git a/sysui/Cluster/WidgetContainer.qml b/sysui/Cluster/WidgetContainer.qml old mode 100755 new mode 100644 index 78aa327..ce51c59 --- a/sysui/Cluster/WidgetContainer.qml +++ b/sysui/Cluster/WidgetContainer.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -49,25 +49,5 @@ Item { id: container anchors.fill: parent } - - BorderImage { - id: rightBorder - width: sourceSize.width/5 - height: parent.height - anchors.right: parent.right - border.top: 20 - border.bottom: 20 - source: Style.gfx("cluster/right_mask") - } - - BorderImage { - id: leftBorder - width: sourceSize.width/5 - height: parent.height - anchors.left: parent.left - border.top: 20 - border.bottom: 20 - source: Style.gfx("cluster/left_mask") - } } diff --git a/sysui/Display.qml b/sysui/Display.qml index 27fc21b..f98066f 100644 --- a/sysui/Display.qml +++ b/sysui/Display.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -39,6 +39,9 @@ import "StatusBar" Item { id: root + width: 1280 + height: 800 + // Background Elements // Content Elements @@ -46,26 +49,12 @@ Item { Component { id: topMenu MenuScreen { + itemWidth: content.width } } Item { - id: content - - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right - height: Style.vspan(24-3) - - LaunchController { - id: launcher - width: Style.hspan(24) - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: statusBar.bottom - anchors.bottom: parent.bottom - initialItem: topMenu - } - + anchors.fill: parent StatusBar { id: statusBar @@ -79,50 +68,64 @@ Item { root.state = "statusBarExpanded" } } + } + + Item { + id: content - Loader { - anchors.centerIn: parent - width: Style.hspan(8); height: Style.vspan(2) - sourceComponent: launcher.currentItem ? launcher.currentItem.statusItem : undefined + anchors.top: statusBar.bottom + anchors.left: parent.left + anchors.right: parent.right + height: root.height - statusBar.height - Style.vspan(climateBar.collapsedVspan)//Style.vspan(24-4) + + LaunchController { + id: launcher + width: parent.width //Style.hspan(24) + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: parent.top + anchors.bottom: parent.bottom + initialItem: topMenu } + } - } - FastBlur { - id: fastBlur - anchors.fill: content - source: content - radius: 0 - visible: !content.visible - enabled: visible - } + FastBlur { + id: fastBlur + anchors.fill: content + source: content + radius: 0 + visible: !content.visible + enabled: visible + } - About { - id: about - anchors.bottom: parent.top; anchors.bottomMargin: height - anchors.left: parent.left; anchors.right: parent.right - vspan: 20 - onClicked: { - if (climateBar.expanded) { - climateBar.expanded = false - } else { - root.state = "" + About { + id: about + anchors.bottom: parent.top; anchors.bottomMargin: height + anchors.left: parent.left; anchors.right: parent.right + vspan: 20 + onClicked: { + if (climateBar.expanded) { + climateBar.expanded = false + } else { + root.state = "" + } } } - } - // Foreground Elements + // Foreground Elements - ClimateBar { - id: climateBar - vspan: 24-statusBar.vspan - y: expanded ? Style.vspan(statusBar.vspan) : root.height - Style.vspan(collapsedVspan) - anchors.left: parent.left - anchors.right: parent.right + ClimateBar { + id: climateBar + vspan: 24-statusBar.vspan + y: expanded ? Style.vspan(statusBar.vspan) : root.height - Style.vspan(collapsedVspan) + anchors.left: parent.left + anchors.right: parent.right - Behavior on y { - NumberAnimation { duration: 450; easing.type: Easing.OutCubic} + Behavior on y { + NumberAnimation { duration: 450; easing.type: Easing.OutCubic} + } } + } Loader { @@ -130,7 +133,6 @@ Item { anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom - source: "Keyboard.qml" } diff --git a/sysui/Home/HomePage.qml b/sysui/Home/HomePage.qml old mode 100755 new mode 100644 index 0e9ec5b..d70b32e --- a/sysui/Home/HomePage.qml +++ b/sysui/Home/HomePage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -39,10 +39,10 @@ import io.qt.ApplicationManager 1.0 UIPage { id: root - title: 'Home' anchors.top: parent.top anchors.bottom: parent.bottom + property bool leftMap: true signal showScreen(url url) signal closeScreen() @@ -50,9 +50,9 @@ UIPage { MapWidget { id: mapWidget anchors.top: parent.top - anchors.left: parent.left + anchors.left: root.leftMap ? parent.left : parent.horizontalCenter width: root.width/2 - vspan: 19 + vspan: 20 } // Right widget side @@ -70,7 +70,7 @@ UIPage { id: hDiv anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.horizontalCenter + anchors.left: root.leftMap ? parent.horizontalCenter : parent.left anchors.leftMargin: Style.hspan(1) } diff --git a/sysui/Home/MapWidget.qml b/sysui/Home/MapWidget.qml index fe7d764..eada000 100644 --- a/sysui/Home/MapWidget.qml +++ b/sysui/Home/MapWidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -62,7 +62,7 @@ UIPanel { target: NavigationService onMapWidgetChanged: { loadingLabel.visible = false - NavigationService.mapWidget.width = loader.width + NavigationService.mapWidget.width = Qt.binding(function () { return loader.width}) NavigationService.mapWidget.height = loader.height loader.children = NavigationService.mapWidget } diff --git a/sysui/Home/MusicWidget.qml b/sysui/Home/MusicWidget.qml index a06601f..fb920da 100644 --- a/sysui/Home/MusicWidget.qml +++ b/sysui/Home/MusicWidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Home/PhoneWidget.qml b/sysui/Home/PhoneWidget.qml index eb8e9e1..b7a61f8 100644 --- a/sysui/Home/PhoneWidget.qml +++ b/sysui/Home/PhoneWidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Keyboard.qml b/sysui/Keyboard.qml index 13954fb..c00fc03 100644 --- a/sysui/Keyboard.qml +++ b/sysui/Keyboard.qml @@ -1,3 +1,33 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: http://www.qt.io/ or http://www.pelagicore.com/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL3-PELAGICORE$ +** Commercial License Usage +** Licensees holding valid commercial Pelagicore Neptune IVI UI +** licenses may use this file in accordance with the commercial license +** agreement provided with the Software or, alternatively, in accordance +** with the terms contained in a written agreement between you and +** Pelagicore. For licensing terms and conditions, contact us at: +** http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + import QtQuick 2.0 import QtQuick.Enterprise.VirtualKeyboard 1.3 diff --git a/sysui/LaunchController.qml b/sysui/LaunchController.qml old mode 100755 new mode 100644 index e832c59..cef50ca --- a/sysui/LaunchController.qml +++ b/sysui/LaunchController.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -34,7 +34,9 @@ import controls 1.0 import utils 1.0 import io.qt.ApplicationManager 1.0 import service.navigation 1.0 +import service.music 1.0 import service.apps 1.0 +import service.vehicle 1.0 StackView { id: root @@ -129,6 +131,8 @@ StackView { print(":::LaunchController:::isWidget", isWidget) var isClusterWidget = (WindowManager.surfaceWindowProperty(item, "windowType") === "clusterWidget") print(":::LaunchController:::isClusterWidget", isClusterWidget) + var isPopup = (WindowManager.surfaceWindowProperty(item, "windowType") === "popup") + print(":::LaunchController:::isPopup", isPopup) var acceptSurface = true; var appID = WindowManager.get(index).applicationId; @@ -148,6 +152,11 @@ StackView { } acceptSurface = false } + else if (isPopup) { + if (ApplicationManager.get(appID).categories[0] === "navigation") + AppsService.sendNavigationPopup(item) + acceptSurface = false + } else { for (var i = 0; i < root.blackListItems.length; ++i) { @@ -160,7 +169,7 @@ StackView { acceptSurface = false; // For now we assume that only navigation has a widget WindowManager.setSurfaceWindowProperty(item, "windowType", "widget") - root.minimizedItems.pop(NavigationService.defaultNavApp) + root.minimizedItems.pop(appID) break } } @@ -173,7 +182,6 @@ StackView { WindowManager.setSurfaceWindowProperty(item, "visibility", true) root.push(item) - item.forceActiveFocus() } else { print("Not showing well known application : " + appID); @@ -207,9 +215,9 @@ StackView { Connections { target: WindowManager onSurfaceWindowPropertyChanged: { - print(":::LaunchController::: WindowManager:surfaceWindowPropertyChanged", surfaceItem, name, value) + //print(":::LaunchController::: WindowManager:surfaceWindowPropertyChanged", surfaceItem, name, value) if (name === "visibility" && value === false) { - root.pop() + root.pop(null) var id = root.getSurfaceIndex(root.windowItem) if (ApplicationManager.dummy) { if (WindowManager.get(id).categories === "navigation") @@ -228,22 +236,40 @@ StackView { NavigationService.mapWidget = surfaceItem } } + else if (name === "liveDrivePopupVisible") { + AppsService.liveDrivePopup = value + if (value) { + VehicleService.fuelTimer.start() + } + } else if (name === "windowType" && value === "clusterWidget") { // Workaround for qmlscene if (ApplicationManager.dummy) { AppsService.clusterWidgetReady("other", surfaceItem) } } + else if (name === "windowType" && value === "popup") { + // Workaround for qmlscene + if (ApplicationManager.dummy) { + AppsService.sendNavigationPopup(surfaceItem) + } + } else if (name === "goTo" && value === "fullScreen") { var appIndex = root.getSurfaceIndex(surfaceItem) - print("indexxxx", appIndex) - print(":::LaunchController::: App found. Going to full screen the app ", appIndex, WindowManager.get(appIndex).applicationId) + //print(":::LaunchController::: App found. Going to full screen the app ", appIndex, WindowManager.get(appIndex).applicationId) ApplicationManager.startApplication(WindowManager.get(appIndex).applicationId) + WindowManager.setSurfaceWindowProperty(surfaceItem, "goTo", "") + } + else if (name === "liveDriveEvent") { + NavigationService.liveDriveEvent = value + } + else if (name === "routeUpdate") { + NavigationService.routeUpdate = value } } onRaiseApplicationWindow: { - print(":::LaunchController::: WindowManager:raiseApplicaitonWindow" + id + " " + WindowManager.count) + //print(":::LaunchController::: WindowManager:raiseApplicaitonWindow" + id + " " + WindowManager.count) for (var i = 0; i < WindowManager.count; i++) { if (WindowManager.get(i).applicationId === id) { var item = WindowManager.get(i).surfaceItem @@ -251,14 +277,15 @@ StackView { var isWidget = (WindowManager.surfaceWindowProperty(item, "windowType") === "widget") var isMapWidget = (WindowManager.surfaceWindowProperty(item, "windowType") === "widgetMap") var isClusterWidget = (WindowManager.surfaceWindowProperty(item, "windowType") === "clusterWidget") + var isPopup = (WindowManager.surfaceWindowProperty(item, "windowType") === "popup") print(":::LaunchController:::isClusterWidget", isClusterWidget) print(":::LaunchController:::isWidget", isWidget, isMapWidget) - if (!isMapWidget && !isClusterWidget) { + print(":::LaunchController:::isPopup", isPopup) + if (!isMapWidget && !isClusterWidget && !isPopup) { WindowManager.setSurfaceWindowProperty(item, "visibility", true) WindowManager.setSurfaceWindowProperty(item, "windowType", "fullScreen") root.windowItem = item root.push(item) - item.forceActiveFocus() break } } @@ -273,6 +300,8 @@ StackView { if (NavigationService.defaultNavApp) { root.minimizedItems.push(NavigationService.defaultNavApp) ApplicationManager.startApplication(NavigationService.defaultNavApp) + root.minimizedItems.push(MusicService.defaultMusicApp) + ApplicationManager.startApplication(MusicService.defaultMusicApp) } } diff --git a/sysui/Launcher/AppButton.qml b/sysui/Launcher/AppButton.qml index f456701..8bbcf03 100644 --- a/sysui/Launcher/AppButton.qml +++ b/sysui/Launcher/AppButton.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Launcher/LauncherPage.qml b/sysui/Launcher/LauncherPage.qml index e352045..4179f4c 100755 --- a/sysui/Launcher/LauncherPage.qml +++ b/sysui/Launcher/LauncherPage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/MenuScreen.qml b/sysui/MenuScreen.qml index 25c7e80..0934125 100644 --- a/sysui/MenuScreen.qml +++ b/sysui/MenuScreen.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/MyCar/MyCarOverview.qml b/sysui/MyCar/MyCarOverview.qml index 798888f..5a13857 100644 --- a/sysui/MyCar/MyCarOverview.qml +++ b/sysui/MyCar/MyCarOverview.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/MyCar/MyCarPage.qml b/sysui/MyCar/MyCarPage.qml index 0041762..d980a1e 100644 --- a/sysui/MyCar/MyCarPage.qml +++ b/sysui/MyCar/MyCarPage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/MyCar/OwnersManual.qml b/sysui/MyCar/OwnersManual.qml index 8911818..8115120 100644 --- a/sysui/MyCar/OwnersManual.qml +++ b/sysui/MyCar/OwnersManual.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Settings/BooleanSetting.qml b/sysui/Settings/BooleanSetting.qml index 20b3594..72d2d7a 100644 --- a/sysui/Settings/BooleanSetting.qml +++ b/sysui/Settings/BooleanSetting.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Settings/FunctionsPage.qml b/sysui/Settings/FunctionsPage.qml index 46c4748..1fd51c1 100644 --- a/sysui/Settings/FunctionsPage.qml +++ b/sysui/Settings/FunctionsPage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Settings/MultiValueSetting.qml b/sysui/Settings/MultiValueSetting.qml index bc39f10..1fbe83c 100644 --- a/sysui/Settings/MultiValueSetting.qml +++ b/sysui/Settings/MultiValueSetting.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/Settings/SettingsPage.qml b/sysui/Settings/SettingsPage.qml index 3469a18..96ca191 100644 --- a/sysui/Settings/SettingsPage.qml +++ b/sysui/Settings/SettingsPage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/StatusBar/DateAndTime.qml b/sysui/StatusBar/DateAndTime.qml index 52be17a..2193e56 100644 --- a/sysui/StatusBar/DateAndTime.qml +++ b/sysui/StatusBar/DateAndTime.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -38,7 +38,7 @@ UIElement { property string timeFormat: "hh:mm" property var currentDate: new Date() - hspan: 4 + hspan: 3 vspan: 2 RowLayout { @@ -59,38 +59,6 @@ UIElement { text: Qt.formatTime(root.currentDate, root.timeFormat) } - - Item { - anchors.top: clock.top - anchors.bottom: clock.bottom - anchors.topMargin: Style.vspan(1) === 33 ? 4 : 9 - anchors.bottomMargin: Style.vspan(1) === 33 ? 3 : 5 - - width: Style.hspan(1) - - Text { - anchors.top: parent.top - - font.family: Style.fontFamily - font.pixelSize: Style.fontSizeS - font.capitalization: Font.AllUppercase - - color: Style.colorWhite - - text: Qt.formatDate(root.currentDate, 'ddd') - } - - Text { - anchors.bottom: parent.bottom - - font.family: Style.fontFamily - font.pixelSize: Style.fontSizeS - font.capitalization: Font.AllUppercase - - color: Style.colorWhite - - text: Qt.formatDate(root.currentDate, 'MMM d') - } - } } + } diff --git a/sysui/StatusBar/IndicatorTray.qml b/sysui/StatusBar/IndicatorTray.qml index 0858e90..7763d04 100644 --- a/sysui/StatusBar/IndicatorTray.qml +++ b/sysui/StatusBar/IndicatorTray.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. diff --git a/sysui/StatusBar/StatusBar.qml b/sysui/StatusBar/StatusBar.qml index 88ef45a..1505c90 100644 --- a/sysui/StatusBar/StatusBar.qml +++ b/sysui/StatusBar/StatusBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -81,7 +81,7 @@ UIElement { } DateAndTime { - Layout.preferredWidth: Style.hspan(timeFormat.length <= 5 ? 3 : 4) + Layout.preferredWidth: Style.hspan(2) Layout.fillHeight: true timeFormat: SettingsService.clockOption.format currentDate: StatusBarService.currentDate diff --git a/sysui/StatusBar/Weather.qml b/sysui/StatusBar/Weather.qml index 32f1ee7..fc8edbe 100644 --- a/sysui/StatusBar/Weather.qml +++ b/sysui/StatusBar/Weather.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 Pelagicore AG +** Copyright (C) 2016 Pelagicore AG ** Contact: http://www.qt.io/ or http://www.pelagicore.com/ ** ** This file is part of the Neptune IVI UI. @@ -31,6 +31,7 @@ import QtQuick 2.0 import QtQuick.Layouts 1.0 import utils 1.0 +import service.climate 1.0 UIElement { id: root @@ -56,7 +57,7 @@ UIElement { color: Style.colorWhite - text: qsTr("%1°c").arg(root.currentTemperature) + text: ClimateService.outsideTempText clip: Style.debugMode font.weight: Style.fontWeight