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._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._server_height = network.get_server_height() # init here, update event can take a while
|
||||||
self.register_callbacks()
|
self.register_callbacks()
|
||||||
|
self.destroyed.connect(self.unregister_callbacks)
|
||||||
|
|
||||||
self._qeconfig.useGossipChanged.connect(self.on_gossip_setting_changed)
|
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 .auth import AuthMixin, auth_protect
|
||||||
from .qetypes import QEAmount
|
from .qetypes import QEAmount
|
||||||
from .qewallet import QEWallet
|
from .qewallet import QEWallet
|
||||||
|
from .util import QtEventListener, qt_event_listener
|
||||||
|
|
||||||
class QESwapHelper(AuthMixin, QObject):
|
class QESwapHelper(AuthMixin, QObject, QtEventListener):
|
||||||
_logger = get_logger(__name__)
|
_logger = get_logger(__name__)
|
||||||
|
|
||||||
confirm = pyqtSignal([str], arguments=['message'])
|
confirm = pyqtSignal([str], arguments=['message'])
|
||||||
@@ -52,12 +53,14 @@ class QESwapHelper(AuthMixin, QObject):
|
|||||||
self._leftVoid = 0
|
self._leftVoid = 0
|
||||||
self._rightVoid = 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 = QTimer(self)
|
||||||
self._fwd_swap_updatetx_timer.setSingleShot(True)
|
self._fwd_swap_updatetx_timer.setSingleShot(True)
|
||||||
# self._fwd_swap_updatetx_timer.setInterval(500)
|
# self._fwd_swap_updatetx_timer.setInterval(500)
|
||||||
self._fwd_swap_updatetx_timer.timeout.connect(self.fwd_swap_updatetx)
|
self._fwd_swap_updatetx_timer.timeout.connect(self.fwd_swap_updatetx)
|
||||||
|
|
||||||
|
|
||||||
walletChanged = pyqtSignal()
|
walletChanged = pyqtSignal()
|
||||||
@pyqtProperty(QEWallet, notify=walletChanged)
|
@pyqtProperty(QEWallet, notify=walletChanged)
|
||||||
def wallet(self):
|
def wallet(self):
|
||||||
@@ -281,6 +284,14 @@ class QESwapHelper(AuthMixin, QObject):
|
|||||||
self._tx = None
|
self._tx = None
|
||||||
self.valid = False
|
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):
|
def swap_slider_moved(self):
|
||||||
if not self._service_available:
|
if not self._service_available:
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ from electrum.gui import messages
|
|||||||
from . import util
|
from . import util
|
||||||
from .util import (WindowModalDialog, Buttons, OkButton, CancelButton,
|
from .util import (WindowModalDialog, Buttons, OkButton, CancelButton,
|
||||||
EnterButton, ColorScheme, WWLabel, read_QIcon, IconLabel, char_width_in_lineedit)
|
EnterButton, ColorScheme, WWLabel, read_QIcon, IconLabel, char_width_in_lineedit)
|
||||||
|
from .util import qt_event_listener, QtEventListener
|
||||||
from .amountedit import BTCAmountEdit
|
from .amountedit import BTCAmountEdit
|
||||||
from .fee_slider import FeeSlider, FeeComboBox
|
from .fee_slider import FeeSlider, FeeComboBox
|
||||||
from .my_treeview import create_toolbar_with_menu
|
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]
|
tx: Optional[PartialTransaction]
|
||||||
|
|
||||||
@@ -103,6 +104,21 @@ class SwapDialog(WindowModalDialog):
|
|||||||
self.update()
|
self.update()
|
||||||
self.needs_tx_update = True
|
self.needs_tx_update = True
|
||||||
self.window.gui_object.timer.timeout.connect(self.timer_actions)
|
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):
|
def timer_actions(self):
|
||||||
if self.needs_tx_update:
|
if self.needs_tx_update:
|
||||||
|
|||||||
Reference in New Issue
Block a user