qt and qml: update swap dialogs when new fees are received (see #8295)
This commit is contained in:
@@ -55,6 +55,7 @@ class QENetwork(QObject, QtEventListener):
|
||||
self._height = network.get_local_height() # init here, update event can take a while
|
||||
self._server_height = network.get_server_height() # init here, update event can take a while
|
||||
self.register_callbacks()
|
||||
self.destroyed.connect(self.unregister_callbacks)
|
||||
|
||||
self._qeconfig.useGossipChanged.connect(self.on_gossip_setting_changed)
|
||||
|
||||
|
||||
@@ -14,8 +14,9 @@ from electrum.util import NotEnoughFunds, NoDynamicFeeEstimates, profiler
|
||||
from .auth import AuthMixin, auth_protect
|
||||
from .qetypes import QEAmount
|
||||
from .qewallet import QEWallet
|
||||
from .util import QtEventListener, qt_event_listener
|
||||
|
||||
class QESwapHelper(AuthMixin, QObject):
|
||||
class QESwapHelper(AuthMixin, QObject, QtEventListener):
|
||||
_logger = get_logger(__name__)
|
||||
|
||||
confirm = pyqtSignal([str], arguments=['message'])
|
||||
@@ -52,12 +53,14 @@ class QESwapHelper(AuthMixin, QObject):
|
||||
self._leftVoid = 0
|
||||
self._rightVoid = 0
|
||||
|
||||
self.register_callbacks()
|
||||
self.destroyed.connect(self.unregister_callbacks)
|
||||
|
||||
self._fwd_swap_updatetx_timer = QTimer(self)
|
||||
self._fwd_swap_updatetx_timer.setSingleShot(True)
|
||||
# self._fwd_swap_updatetx_timer.setInterval(500)
|
||||
self._fwd_swap_updatetx_timer.timeout.connect(self.fwd_swap_updatetx)
|
||||
|
||||
|
||||
walletChanged = pyqtSignal()
|
||||
@pyqtProperty(QEWallet, notify=walletChanged)
|
||||
def wallet(self):
|
||||
@@ -281,6 +284,14 @@ class QESwapHelper(AuthMixin, QObject):
|
||||
self._tx = None
|
||||
self.valid = False
|
||||
|
||||
@qt_event_listener
|
||||
def on_event_fee_histogram(self, *args):
|
||||
self.swap_slider_moved()
|
||||
|
||||
@qt_event_listener
|
||||
def on_event_fee(self, *args):
|
||||
self.swap_slider_moved()
|
||||
|
||||
def swap_slider_moved(self):
|
||||
if not self._service_available:
|
||||
return
|
||||
|
||||
@@ -12,6 +12,7 @@ from electrum.gui import messages
|
||||
from . import util
|
||||
from .util import (WindowModalDialog, Buttons, OkButton, CancelButton,
|
||||
EnterButton, ColorScheme, WWLabel, read_QIcon, IconLabel, char_width_in_lineedit)
|
||||
from .util import qt_event_listener, QtEventListener
|
||||
from .amountedit import BTCAmountEdit
|
||||
from .fee_slider import FeeSlider, FeeComboBox
|
||||
from .my_treeview import create_toolbar_with_menu
|
||||
@@ -27,7 +28,7 @@ Do you want to continue?
|
||||
"""
|
||||
|
||||
|
||||
class SwapDialog(WindowModalDialog):
|
||||
class SwapDialog(WindowModalDialog, QtEventListener):
|
||||
|
||||
tx: Optional[PartialTransaction]
|
||||
|
||||
@@ -103,6 +104,21 @@ class SwapDialog(WindowModalDialog):
|
||||
self.update()
|
||||
self.needs_tx_update = True
|
||||
self.window.gui_object.timer.timeout.connect(self.timer_actions)
|
||||
self.register_callbacks()
|
||||
|
||||
def closeEvent(self, event):
|
||||
self.unregister_callbacks()
|
||||
event.accept()
|
||||
|
||||
@qt_event_listener
|
||||
def on_event_fee_histogram(self, *args):
|
||||
self.on_send_edited()
|
||||
self.on_recv_edited()
|
||||
|
||||
@qt_event_listener
|
||||
def on_event_fee(self, *args):
|
||||
self.on_send_edited()
|
||||
self.on_recv_edited()
|
||||
|
||||
def timer_actions(self):
|
||||
if self.needs_tx_update:
|
||||
|
||||
Reference in New Issue
Block a user