Port away from BasicListItem

For ChapterListDelegate
This commit is contained in:
Alexey Andreyev 2023-09-27 02:04:19 +03:00
parent ad96d5a80f
commit 735a879cce

View File

@ -9,12 +9,13 @@ import QtQuick.Controls as Controls
import QtQuick.Layouts import QtQuick.Layouts
import org.kde.kirigami as Kirigami import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.delegates as Delegates
import org.kde.kmediasession import org.kde.kmediasession
import org.kde.kasts import org.kde.kasts
Kirigami.BasicListItem { Delegates.RoundedItemDelegate {
id: root id: root
property var entry: undefined property var entry: undefined
@ -23,34 +24,32 @@ Kirigami.BasicListItem {
property bool streamingButtonVisible: entry != undefined && entry.enclosure && (entry.enclosure.status !== Enclosure.Downloaded) && NetworkConnectionManager.streamingAllowed && (SettingsManager.prioritizeStreaming || AudioManager.entry === entry) property bool streamingButtonVisible: entry != undefined && entry.enclosure && (entry.enclosure.status !== Enclosure.Downloaded) && NetworkConnectionManager.streamingAllowed && (SettingsManager.prioritizeStreaming || AudioManager.entry === entry)
text: model.title text: model.title
subtitle: model.formattedStart icon.source: model.chapter.cachedImage
separatorVisible: true
leading: ImageWithFallback { contentItem: RowLayout {
imageSource: model.chapter.cachedImage Delegates.SubtitleContentItem {
height: parent.height itemDelegate: root
width: height subtitle: model.formattedStart
fractionalRadius: 1.0 / 8.0 }
} Controls.ToolButton {
icon.name: streamingButtonVisible ? "media-playback-cloud" : "media-playback-start"
trailing: Controls.ToolButton { text: i18n("Play")
icon.name: streamingButtonVisible ? "media-playback-cloud" : "media-playback-start" enabled: entry != undefined && entry.enclosure && (entry.enclosure.status === Enclosure.Downloaded || streamingButtonVisible)
text: i18n("Play") display: Controls.Button.IconOnly
enabled: entry != undefined && entry.enclosure && (entry.enclosure.status === Enclosure.Downloaded || streamingButtonVisible) onClicked: {
display: Controls.Button.IconOnly if (!entry.queueStatus) {
onClicked: { entry.queueStatus = true;
if (!entry.queueStatus) { }
entry.queueStatus = true; if (AudioManager.entry != entry) {
} AudioManager.entry = entry;
if (AudioManager.entry != entry) { }
AudioManager.entry = entry; if (AudioManager.playbackState !== KMediaSession.PlayingState) {
} AudioManager.play();
if (AudioManager.playbackState !== KMediaSession.PlayingState) { }
AudioManager.play(); AudioManager.position = start * 1000;
} if (overlay != undefined) {
AudioManager.position = start * 1000; overlay.close();
if (overlay != undefined) { }
overlay.close();
} }
} }
} }