Warning, /multimedia/audiotube/src/contents/ui/dialogs/PlaylistDialog.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2023 Mathis BrĂ¼chert <mbb@kaidan.im>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004
0005 import QtQuick 2.15
0006 import QtQuick.Controls 2.12 as Controls
0007 import QtQuick.Layouts 1.3
0008 import org.kde.kirigami 2.19 as Kirigami
0009
0010 import org.kde.ytmusic 1.0
0011 import ".."
0012
0013
0014 Kirigami.PromptDialog {
0015 id: playlistsDialog
0016 contentLeftPadding:0
0017 contentRightPadding:0
0018 contentTopPadding:0
0019 contentBottomPadding:0
0020 title:i18n("Add Song to Playlist")
0021
0022 property string videoId
0023 property string songTitle
0024 property string artists
0025 property string album: ""
0026 standardButtons: Kirigami.Dialog.NoButton
0027 customFooterActions: [
0028 Kirigami.Action {
0029 text: i18n("New Playlist")
0030 icon.name: "list-add"
0031 onTriggered: {
0032 addPlaylistDialog.open()
0033 }
0034 }
0035 ]
0036
0037 Item {
0038 AddPlaylistDialog {
0039 id: addPlaylistDialog
0040 model: localPlaylistsModel
0041 }
0042 ImportPlaylistDialog {
0043 id: importPlaylistDialog
0044 model: localPlaylistsModel
0045 }
0046 }
0047
0048 mainItem: ListView {
0049 reuseItems: true
0050
0051 implicitHeight: 200
0052 model: LocalPlaylistsModel {
0053 id: localPlaylistsModel
0054 }
0055 delegate: Controls.ItemDelegate {
0056 required property string title
0057 required property string description
0058 required property int playlistId
0059 required property var thumbnailIds
0060 required property int index
0061
0062 width: parent.width
0063
0064 contentItem: RowLayout {
0065 Layout.fillHeight: true
0066 LocalPlaylistModel{id:localPlaylistModel}
0067 ThumbnailSource {
0068 id: thumbnailSource1
0069 videoId: thumbnailIds[0] ?? ""
0070 }
0071 ThumbnailSource {
0072 id: thumbnailSource2
0073 videoId: thumbnailIds[1] ?? thumbnailIds[0] ?? ""
0074 }
0075 ThumbnailSource {
0076 id: thumbnailSource3
0077 videoId: thumbnailIds[2] ?? thumbnailIds[0] ?? ""
0078 }
0079 ThumbnailSource {
0080 id: thumbnailSource4
0081 videoId: thumbnailIds[3] ?? thumbnailIds[0] ?? ""
0082 }
0083 PlaylistCover {
0084 source1: thumbnailSource1.cachedPath
0085 source2: thumbnailSource2.cachedPath
0086 source3: thumbnailSource3.cachedPath
0087 source4: thumbnailSource4.cachedPath
0088 height: 35
0089 width: height
0090 radius: 5
0091 }
0092
0093 ColumnLayout {
0094 Controls.Label {
0095 Layout.fillWidth: true
0096 text: title
0097 elide: Qt.ElideRight
0098 }
0099
0100 Controls.Label {
0101 Layout.fillWidth: true
0102 visible: description
0103 color: Kirigami.Theme.disabledTextColor
0104 text: description
0105 elide: Qt.ElideRight
0106
0107 }
0108 }
0109 }
0110
0111 onClicked: {
0112 localPlaylistsModel.addPlaylistEntry(playlistId, videoId, songTitle, artists, album )
0113 playlistsDialog.close()
0114 }
0115 }
0116 }
0117 }
0118
0119