diff options
Diffstat (limited to 'apps/com.pelagicore.music/ClusterWidget.qml')
-rw-r--r-- | apps/com.pelagicore.music/ClusterWidget.qml | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/apps/com.pelagicore.music/ClusterWidget.qml b/apps/com.pelagicore.music/ClusterWidget.qml new file mode 100644 index 0000000..d1a2cee --- /dev/null +++ b/apps/com.pelagicore.music/ClusterWidget.qml @@ -0,0 +1,108 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial 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 see 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtQuick.Layouts 1.0 +import utils 1.0 +import controls 1.0 +import "." + +Item { + width: 800 + height: parent.height + + ListView { + id: playListView + width: 400 + height: parent.height + anchors.centerIn: parent + clip: true + model: MusicProvider.model + currentIndex: MusicProvider.currentIndex + highlight: Rectangle { + color: Style.colorWhite; opacity: 0.25 + border.color: Qt.lighter(color, 1.2) + } + highlightMoveDuration: 75 + delegate: UIElement { + hspan: 4 + vspan: 2 + RowLayout { + anchors.fill: parent + spacing: 0 + Item { + Layout.fillHeight: true + width: Style.hspan(1) + Item { + anchors.fill: parent + anchors.margins: Style.padding + Rectangle { + anchors.fill: parent + anchors.leftMargin: -6 + anchors.rightMargin: -6 + anchors.topMargin: -2 + anchors.bottomMargin: -2 + color: Style.colorWhite + } + + Image { + anchors.centerIn: parent + height: parent.height + width: parent.height + source: MusicProvider.coverPath(model.cover) + fillMode: Image.PreserveAspectCrop + asynchronous: true + } + } + } + ColumnLayout { + spacing: 0 + Label { + text: model.title + font.pixelSize: Style.fontSizeXS + opacity: 0.5 + elide: Text.ElideRight + Layout.fillWidth: true + } + Label { + text: model.artist + font.pixelSize: Style.fontSizeS + Layout.fillWidth: true + elide: Text.ElideRight + } + } + } + MouseArea { + anchors.fill: parent + onClicked: { + MusicProvider.currentIndex = index + } + } + } + } +} + |