Warning, /multimedia/kasts/src/qml/ChapterListDelegate.qml is written in an unsupported language. File is not indexed.

0001 /**
0002  * SPDX-FileCopyrightText: 2021-2023 Bart De Vries <bart@mogwai.be>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 import QtQuick
0008 import QtQuick.Controls as Controls
0009 import QtQuick.Layouts
0010 
0011 import org.kde.kirigami as Kirigami
0012 import org.kde.kirigami.delegates as Delegates
0013 import org.kde.kirigamiaddons.delegates as AddonDelegates
0014 import org.kde.kmediasession
0015 
0016 import org.kde.kasts
0017 import org.kde.kasts.settings
0018 
0019 AddonDelegates.RoundedItemDelegate {
0020     id: root
0021 
0022     property var entry: undefined
0023     property var overlay: undefined
0024 
0025     property bool streamingButtonVisible: entry != undefined && entry.enclosure && (entry.enclosure.status !== Enclosure.Downloaded) && NetworkConnectionManager.streamingAllowed && (SettingsManager.prioritizeStreaming || AudioManager.entry === entry)
0026 
0027     contentItem: RowLayout {
0028         Delegates.IconTitleSubtitle {
0029             icon.source: model.chapter.cachedImage
0030             title: model.title
0031             subtitle: model.formattedStart
0032             Layout.fillWidth: true
0033         }
0034 
0035         Controls.ToolButton {
0036             icon.name: streamingButtonVisible ? "media-playback-cloud" : "media-playback-start"
0037             text: i18n("Play")
0038             enabled: entry != undefined && entry.enclosure && (entry.enclosure.status === Enclosure.Downloaded || streamingButtonVisible)
0039             display: Controls.Button.IconOnly
0040             onClicked: {
0041                 if (!entry.queueStatus) {
0042                     entry.queueStatus = true;
0043                 }
0044                 if (AudioManager.entry != entry) {
0045                     AudioManager.entry = entry;
0046                 }
0047                 if (AudioManager.playbackState !== KMediaSession.PlayingState) {
0048                     AudioManager.play();
0049                 }
0050                 AudioManager.position = start * 1000;
0051                 if (overlay != undefined) {
0052                     overlay.close();
0053                 }
0054             }
0055         }
0056     }
0057 }