moment/src/gui/Dialogs/SendFilePicker.qml

38 lines
1.0 KiB
QML
Raw Normal View History

// Copyright Mirage authors & contributors <https://github.com/mirukana/mirage>
2019-12-19 22:46:16 +11:00
// SPDX-License-Identifier: LGPL-3.0-or-later
import QtQuick 2.12
2019-11-07 08:13:15 +11:00
import Qt.labs.platform 1.1
HFileDialogOpener {
property string userId
property string roomId
property string replyToEventId: ""
property bool destroyWhenDone: false
signal replied()
fill: false
dialog.title: qsTr("Select a file to send")
2019-11-07 08:13:15 +11:00
dialog.fileMode: FileDialog.OpenFiles
2019-11-07 08:13:15 +11:00
onFilesPicked: {
2020-03-08 19:46:20 +11:00
for (const file of files) {
const path = Qt.resolvedUrl(file).replace(/^file:/, "")
const args = [roomId, path, replyToEventId || undefined]
py.callClientCoro(userId, "send_file", args, () => {
2019-11-07 08:13:15 +11:00
if (destroyWhenDone) destroy()
}, (type, args, error, traceback) => {
2019-11-18 18:57:13 +11:00
console.error(`python:\n${traceback}`)
2019-11-07 08:13:15 +11:00
if (destroyWhenDone) destroy()
})
if (replyToUserId) replied()
2019-11-07 08:13:15 +11:00
}
}
onCancelled: if (destroyWhenDone) destroy()
}