2019-12-19 22:46:16 +11:00
|
|
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
|
2019-11-07 07:31:38 +11:00
|
|
|
import QtQuick 2.12
|
2019-11-07 08:13:15 +11:00
|
|
|
import Qt.labs.platform 1.1
|
2019-11-07 07:31:38 +11:00
|
|
|
|
|
|
|
HFileDialogOpener {
|
2020-07-12 14:25:57 +10:00
|
|
|
property string userId
|
|
|
|
property string roomId
|
2020-08-25 00:17:04 +10:00
|
|
|
property string replyToEventId: ""
|
2020-07-12 14:25:57 +10:00
|
|
|
property bool destroyWhenDone: false
|
|
|
|
|
2020-08-25 00:17:04 +10:00
|
|
|
signal replied()
|
|
|
|
|
2020-07-12 14:25:57 +10:00
|
|
|
|
2019-11-07 07:31:38 +11:00
|
|
|
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 07:31:38 +11:00
|
|
|
|
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:/, "")
|
2020-08-25 00:17:04 +10:00
|
|
|
const args = [roomId, path, replyToEventId || undefined]
|
2019-11-07 08:03:34 +11:00
|
|
|
|
2020-08-25 00:17:04 +10:00
|
|
|
py.callClientCoro(userId, "send_file", args, () => {
|
2019-11-07 08:13:15 +11:00
|
|
|
if (destroyWhenDone) destroy()
|
2020-08-03 15:05:19 +10:00
|
|
|
|
|
|
|
}, (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()
|
|
|
|
})
|
2020-08-25 00:17:04 +10:00
|
|
|
|
|
|
|
if (replyToUserId) replied()
|
2019-11-07 08:13:15 +11:00
|
|
|
}
|
2019-11-07 07:31:38 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
onCancelled: if (destroyWhenDone) destroy()
|
|
|
|
}
|