moment/src/gui/Dialogs/ImportKeys.qml

67 lines
1.7 KiB
QML
Raw Normal View History

2019-12-19 22:46:16 +11:00
// SPDX-License-Identifier: LGPL-3.0-or-later
import QtQuick 2.12
import Qt.labs.platform 1.1
import "../Popups"
HFileDialogOpener {
fill: false
dialog.title: qsTr("Select a decryption keys file to import")
onFilePicked: {
importPasswordPopup.file = file
importPasswordPopup.open()
}
property string userId: ""
2019-11-24 02:14:14 +11:00
property bool importing: false
PasswordPopup {
id: importPasswordPopup
2020-03-18 04:40:58 +11:00
details.text: qsTr("Passphrase used to protect this file:")
okText: qsTr("Import")
property url file: ""
function verifyPassword(pass, callback) {
2020-03-08 19:46:20 +11:00
importing = true
const path = file.toString().replace(/^file:\/\//, "")
py.callClientCoro(userId, "import_keys", [path, pass], () => {
importing = false
callback(true)
2020-03-16 07:00:29 +11:00
}, (type, args, error, traceback, uuid) => {
let unknown = false
callback(
type === "EncryptionError" ?
false :
type === "ValueError" ?
qsTr("Invalid file format") :
type === "FileNotFoundError" ?
qsTr("This file doesn't exist") :
type === "IsADirectoryError" ?
qsTr("A folder was given, expecting a file") :
type === "PermissionError" ?
qsTr("No permission to read this file") :
2020-03-16 07:00:29 +11:00
(
unknown = true,
qsTr("Unknown error: %1 - %2").arg(type).arg(args)
)
)
2020-03-16 07:00:29 +11:00
if (unknown) utils.showError(type, traceback, uuid)
})
}
}
}