Page MenuHomePhorge

Audio.qml
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

Audio.qml

/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2020-2021 Tusooa Zhu <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import moe.kazv.mxc.kazv 0.0 as MK
import QtMultimedia 5.15
import org.kde.kirigami 2.13 as Kirigami
import '..' as Kazv
Simple {
id: upper
property var gender: 'neutral'
property var body: event.content.body
property var mxcUri: event.content.url
property var audioUri: matrixSdk.mxcUriToHttp(mxcUri)
property var innerContentWidth: upper.contentMaxWidth - bubble.bubbleSpacing
property var kazvIO: MK.KazvIO {
manager: root.kazvIOManager
eventId: event.eventId
serverUrl: audioUri
job: kazvIOManager.getDownloadJob(event.eventId)
onSuccess: {
bubble.progressBar.showSuccMsg()
}
onFailure: {
bubble.progressBar.showFailMsg()
}
onProcessing: {
bubble.progressBar.show()
}
onSuspended: {
bubble.progressBar.switchToPause()
}
}
Kazv.Bubble {
id: bubble
kazvIO: upper.kazvIO
url: upper.imageUri
ColumnLayout {
property var msgLabel: Label {
Layout.fillWidth: false
Layout.maximumWidth: innerContentWidth
wrapMode: Text.Wrap
text: l10n.get('event-message-audio-sent', { gender, body })
}
property var audio: Audio {
id: audio
source: audioUri
autoLoad: false
autoPlay: false
}
property var playLabel: Label {
Layout.fillWidth: true
Layout.maximumWidth: innerContentWidth
wrapMode: Text.Wrap
text: l10n.get('event-message-audio-play-audio')
TapHandler {
onSingleTapped: {
audio.play()
}
}
}
data: [
msgLabel,
audio,
playLabel,
bubble.menu,
bubble.progressBar
]
}
}
}

File Metadata

Mime Type
text/plain
Expires
Wed, May 14, 10:55 AM (1 d, 18 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
167266
Default Alt Text
Audio.qml (1 KB)

Event Timeline