Warning, /multimedia/elisa/src/qml/shared/BasePlayListDelegate.qml is written in an unsupported language. File is not indexed.

0001 /*
0002    SPDX-FileCopyrightText: 2020 (c) Devin Lin <espidev@gmail.com>
0003 
0004    SPDX-License-Identifier: LGPL-3.0-or-later
0005  */
0006 
0007 import QtQuick 2.7
0008 import QtQuick.Layouts 1.2
0009 import QtQuick.Controls as QQC2
0010 
0011 import org.kde.kirigami 2.17 as Kirigami
0012 import org.kde.elisa 1.0
0013 
0014 QQC2.ItemDelegate {
0015     property var index
0016     property bool isSingleDiscAlbum
0017     property int isPlaying
0018     property bool isSelected
0019     property bool isValid
0020     property bool isAlternateColor
0021     property int databaseId: 0
0022     property var entryType
0023     property string title
0024     property string artist
0025     property string album
0026     property string albumArtist
0027     property string duration
0028     property bool hideDiscNumber
0029     property url fileName
0030     property url imageUrl
0031     property int trackNumber
0032     property url trackUrl
0033     property int discNumber
0034     property int rating
0035     property bool hasValidDiscNumber: true
0036     property bool metadataModifiableRole: false
0037     readonly property bool isFavorite: rating === 10
0038 
0039     property var listView
0040     property bool simpleMode: false
0041     property bool showDragHandle: true
0042 
0043     activeFocusOnTab: isSelected
0044 
0045     signal startPlayback()
0046     signal pausePlayback()
0047     signal removeFromPlaylist(int trackIndex)
0048     signal switchToTrack(int trackIndex)
0049 
0050     onSwitchToTrack: trackIndex => ElisaApplication.mediaPlayListProxyModel.switchTo(trackIndex)
0051     onStartPlayback: ElisaApplication.audioControl.ensurePlay()
0052     onPausePlayback: ElisaApplication.audioControl.playPause()
0053     onRemoveFromPlaylist: trackIndex => ElisaApplication.mediaPlayListProxyModel.removeRow(trackIndex)
0054 
0055     onClicked: {
0056         listView.currentIndex = index
0057         forceActiveFocus()
0058 
0059         if (model.isValid) {
0060             switchToTrack(index)
0061             startPlayback()
0062         }
0063     }
0064 
0065     onIsValidChanged: {
0066         if (!isValid) {
0067             showPassiveNotification(i18nc("@info:status", "\"%1\" could not be played", title))
0068             // Can't make it too long due to https://bugs.kde.org/show_bug.cgi?id=476021.
0069             // TODO: Once that's fixed, use this longer and more descriptive string!
0070             // showPassiveNotification(i18nc("@label", "\"%1\" could not be played; make sure it has not been deleted or renamed", title))
0071         }
0072     }
0073 }