Page MenuHomePhorge

ProgressBar.qml
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

ProgressBar.qml

/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2022 nannanko <nannanko@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import org.kde.kirigami 2.13 as Kirigami
import moe.kazv.mxc.kazv 0.0 as MK
ColumnLayout {
id: kazvIOProgressBar
required property bool isUpload
required property var jobId
property var kazvIOJob: isUpload ? null : kazvIOManager.getDownloadJob(jobId)
visible: kazvIOJob ? true : false
onKazvIOJobChanged: {
if (kazvIOJob == null) {
return
}
if (kazvIOJob.isSuspended()) {
pauseAction.suspended = true
}
}
Connections {
target: kazvIOJob
function onResult() {
progressBarLayout.visible = false
promptMsgLayout.visible = true
if (target.success()) {
promptMsg.text = l10n.get('media-file-download-success-prompt')
} else {
promptMsg.text = l10n.get('media-file-download-failure-prompt')
}
}
}
Label {
text: kazvIOJob ? kazvIOJob.fileName() : ''
}
RowLayout {
id: progressBarLayout
visible: true
Layout.preferredWidth: parent.width
ProgressBar {
id: progressBar
Layout.fillWidth: true
value: kazvIOProgressBar.kazvIOJob ? kazvIOProgressBar.kazvIOJob.progress : 0
}
Kirigami.Action {
id: pauseAction
iconName: suspended ? "media-playback-start" : "media-playback-pause"
property var suspended: false
onTriggered: {
if (pauseAction.suspended) {
kazvIOJob.resume()
} else {
kazvIOJob.suspend()
}
suspended = !suspended
}
}
Kirigami.Action {
id: cancelAction
iconName: "dialog-cancel"
onTriggered: {
pauseAction.suspended = false
kazvIOJob.cancel()
}
}
RoundButton {
id: pauseBtn
Accessible.name: pauseAction.suspended ? l10n.get('media-file-download-resume') : l10n.get('media-file-download-pause')
icon.name: pauseAction.suspended ? "media-playback-start" : "media-playback-pause"
onClicked: pauseAction.trigger()
}
RoundButton {
icon.name: "dialog-cancel"
Accessible.name: l10n.get('media-file-download-cancel')
onClicked: cancelAction.trigger()
}
}
RowLayout {
id: promptMsgLayout
visible: false
Text {
id: promptMsg
}
Button {
text: l10n.get('media-file-download-prompt-close')
onClicked: {
if (isUpload) {
kazvIOManager.deleteDownloadJob(jobId)
} else {
kazvIOManager.deleteUploadJob(jobId, kazvIOJob)
}
promptMsgLayout.visible = false
progressBarLayout.visible = true
kazvIOJob = null
}
}
}
}

File Metadata

Mime Type
text/plain
Expires
Fri, Jul 18, 12:08 PM (1 d, 3 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
261682
Default Alt Text
ProgressBar.qml (2 KB)

Event Timeline