daemon: refactor load_wallet to not just return None, but raise specific exceptions.
The following exceptions should be expected: FileNotFoundError: given wallet path does not exist StorageReadWriteError: given file is not readable/writable or containing folder is not writable InvalidPassword: wallet requires a password but no password or an invalid password was given WalletFileException: any internal wallet data issue. specific subclasses can be caught separately: - WalletRequiresSplit: wallet needs splitting (split_data passed in Exception) - WalletRequiresUpgrade: wallet needs upgrade, and no upgrade=True was passed to load_wallet - WalletUnfinished: wallet file contains an action and needs additional information to finalize. (WalletDB passed in exception) Removed qml/qewalletdb.py This patch also fixes load_wallet calls in electrum/scripts and adds a qml workaround for dialogs opening and closing so fast that the dialog opened==true property change is missed (which we need to manage the dialog/page stack)
This commit is contained in:
@@ -498,17 +498,21 @@ ApplicationWindow
|
||||
|
||||
property var _opendialog: undefined
|
||||
|
||||
function showOpenWalletDialog(name, path) {
|
||||
if (_opendialog == undefined) {
|
||||
_opendialog = openWalletDialog.createObject(app, { name: name, path: path })
|
||||
_opendialog.closed.connect(function() {
|
||||
_opendialog = undefined
|
||||
})
|
||||
_opendialog.open()
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: Daemon
|
||||
function onWalletRequiresPassword(name, path) {
|
||||
console.log('wallet requires password')
|
||||
if (_opendialog == undefined) {
|
||||
_opendialog = openWalletDialog.createObject(app, { path: path, name: name })
|
||||
_opendialog.closed.connect(function() {
|
||||
_opendialog = undefined
|
||||
})
|
||||
_opendialog.open()
|
||||
}
|
||||
showOpenWalletDialog(name, path)
|
||||
}
|
||||
function onWalletOpenError(error) {
|
||||
console.log('wallet open error')
|
||||
|
||||
Reference in New Issue
Block a user