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