qml: wizard fixes
This commit is contained in:
@@ -5,10 +5,9 @@ import os
|
||||
import sys
|
||||
import html
|
||||
import threading
|
||||
import asyncio
|
||||
from typing import TYPE_CHECKING, Set
|
||||
|
||||
from PyQt5.QtCore import (pyqtSlot, pyqtSignal, pyqtProperty, QObject, QUrl, QLocale,
|
||||
from PyQt5.QtCore import (pyqtSlot, pyqtSignal, pyqtProperty, QObject,
|
||||
qInstallMessageHandler, QTimer, QSortFilterProxyModel)
|
||||
from PyQt5.QtGui import QGuiApplication, QFontDatabase
|
||||
from PyQt5.QtQml import qmlRegisterType, qmlRegisterUncreatableType, QQmlApplicationEngine
|
||||
@@ -61,6 +60,7 @@ if 'ANDROID_DATA' in os.environ:
|
||||
|
||||
notification = None
|
||||
|
||||
|
||||
class QEAppController(BaseCrashReporter, QObject):
|
||||
_dummy = pyqtSignal()
|
||||
userNotify = pyqtSignal(str, str)
|
||||
@@ -319,6 +319,7 @@ class QEAppController(BaseCrashReporter, QObject):
|
||||
self._secureWindow = secure
|
||||
self.secureWindowChanged.emit()
|
||||
|
||||
|
||||
class ElectrumQmlApplication(QGuiApplication):
|
||||
|
||||
_valid = True
|
||||
@@ -376,7 +377,7 @@ class ElectrumQmlApplication(QGuiApplication):
|
||||
self.plugins = plugins
|
||||
self._qeconfig = QEConfig(config)
|
||||
self._qenetwork = QENetwork(daemon.network, self._qeconfig)
|
||||
self.daemon = QEDaemon(daemon)
|
||||
self.daemon = QEDaemon(daemon, self.plugins)
|
||||
self.appController = QEAppController(self, self.daemon, self.plugins)
|
||||
self._maxAmount = QEAmount(is_max=True)
|
||||
self.context.setContextProperty('AppController', self.appController)
|
||||
@@ -413,6 +414,7 @@ class ElectrumQmlApplication(QGuiApplication):
|
||||
return
|
||||
self.logger.warning(file)
|
||||
|
||||
|
||||
class Exception_Hook(QObject, Logger):
|
||||
_report_exception = pyqtSignal(object, object, object, object)
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
import threading
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from PyQt5.QtCore import Qt, QAbstractListModel, QModelIndex
|
||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject
|
||||
@@ -7,10 +8,8 @@ from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject
|
||||
from electrum.i18n import _
|
||||
from electrum.logging import get_logger
|
||||
from electrum.util import WalletFileException, standardize_path
|
||||
from electrum.wallet import Abstract_Wallet
|
||||
from electrum.plugin import run_hook
|
||||
from electrum.lnchannel import ChannelState
|
||||
from electrum.daemon import Daemon
|
||||
|
||||
from .auth import AuthMixin, auth_protect
|
||||
from .qefx import QEFX
|
||||
@@ -18,6 +17,11 @@ from .qewallet import QEWallet
|
||||
from .qewalletdb import QEWalletDB
|
||||
from .qewizard import QENewWalletWizard, QEServerConnectWizard
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from electrum.daemon import Daemon
|
||||
from electrum.plugin import Plugins
|
||||
|
||||
|
||||
# wallet list model. supports both wallet basenames (wallet file basenames)
|
||||
# and whole Wallet instances (loaded wallets)
|
||||
class QEWalletListModel(QAbstractListModel):
|
||||
@@ -108,6 +112,7 @@ class QEWalletListModel(QAbstractListModel):
|
||||
return
|
||||
i += 1
|
||||
|
||||
|
||||
class QEDaemon(AuthMixin, QObject):
|
||||
_logger = get_logger(__name__)
|
||||
|
||||
@@ -135,9 +140,10 @@ class QEDaemon(AuthMixin, QObject):
|
||||
walletOpenError = pyqtSignal([str], arguments=["error"])
|
||||
walletDeleteError = pyqtSignal([str,str], arguments=['code', 'message'])
|
||||
|
||||
def __init__(self, daemon: 'Daemon', parent=None):
|
||||
def __init__(self, daemon: 'Daemon', plugins: 'Plugins', parent=None):
|
||||
super().__init__(parent)
|
||||
self.daemon = daemon
|
||||
self.plugins = plugins
|
||||
self.qefx = QEFX(daemon.fx, daemon.config)
|
||||
|
||||
self._backendWalletLoaded.connect(self._on_backend_wallet_loaded)
|
||||
@@ -334,7 +340,7 @@ class QEDaemon(AuthMixin, QObject):
|
||||
@pyqtProperty(QENewWalletWizard, notify=newWalletWizardChanged)
|
||||
def newWalletWizard(self):
|
||||
if not self._new_wallet_wizard:
|
||||
self._new_wallet_wizard = QENewWalletWizard(self)
|
||||
self._new_wallet_wizard = QENewWalletWizard(self, self.plugins)
|
||||
|
||||
return self._new_wallet_wizard
|
||||
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
import os
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject
|
||||
from PyQt5.QtQml import QQmlApplicationEngine
|
||||
|
||||
from electrum.logging import get_logger
|
||||
from electrum import mnemonic
|
||||
from electrum.wizard import NewWalletWizard, ServerConnectWizard
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from electrum.gui.qml.qedaemon import QEDaemon
|
||||
from electrum.plugin import Plugins
|
||||
|
||||
|
||||
class QEAbstractWizard(QObject):
|
||||
_logger = get_logger(__name__)
|
||||
@@ -45,10 +49,10 @@ class QENewWalletWizard(NewWalletWizard, QEAbstractWizard):
|
||||
createError = pyqtSignal([str], arguments=["error"])
|
||||
createSuccess = pyqtSignal()
|
||||
|
||||
def __init__(self, daemon, parent = None):
|
||||
NewWalletWizard.__init__(self, daemon)
|
||||
def __init__(self, daemon: 'QEDaemon', plugins: 'Plugins', parent = None):
|
||||
NewWalletWizard.__init__(self, daemon.daemon, plugins)
|
||||
QEAbstractWizard.__init__(self, parent)
|
||||
self._daemon = daemon
|
||||
self._qedaemon = daemon
|
||||
|
||||
# attach view names and accept handlers
|
||||
self.navmap_merge({
|
||||
@@ -80,7 +84,7 @@ class QENewWalletWizard(NewWalletWizard, QEAbstractWizard):
|
||||
self.pathChanged.emit()
|
||||
|
||||
def is_single_password(self):
|
||||
return self._daemon.singlePasswordEnabled
|
||||
return self._qedaemon.singlePasswordEnabled
|
||||
|
||||
@pyqtSlot('QJSValue', result=bool)
|
||||
def hasDuplicateMasterKeys(self, js_data):
|
||||
@@ -107,7 +111,7 @@ class QENewWalletWizard(NewWalletWizard, QEAbstractWizard):
|
||||
data['encrypt'] = True
|
||||
data['password'] = single_password
|
||||
|
||||
path = os.path.join(os.path.dirname(self._daemon.daemon.config.get_wallet_path()), data['wallet_name'])
|
||||
path = os.path.join(os.path.dirname(self._qedaemon.daemon.config.get_wallet_path()), data['wallet_name'])
|
||||
|
||||
try:
|
||||
self.create_storage(path, data)
|
||||
@@ -124,10 +128,9 @@ class QENewWalletWizard(NewWalletWizard, QEAbstractWizard):
|
||||
|
||||
class QEServerConnectWizard(ServerConnectWizard, QEAbstractWizard):
|
||||
|
||||
def __init__(self, daemon, parent = None):
|
||||
ServerConnectWizard.__init__(self, daemon)
|
||||
def __init__(self, daemon: 'QEDaemon', parent=None):
|
||||
ServerConnectWizard.__init__(self, daemon.daemon)
|
||||
QEAbstractWizard.__init__(self, parent)
|
||||
self._daemon = daemon
|
||||
|
||||
# attach view names
|
||||
self.navmap_merge({
|
||||
|
||||
Reference in New Issue
Block a user