Browse Source

Qt: run swap_manager.get_pairs() before opening SwapDialog

patch-4
ThomasV 3 years ago
parent
commit
cf01a792df
  1. 7
      electrum/gui/qt/channels_list.py
  2. 13
      electrum/gui/qt/main_window.py
  3. 9
      electrum/gui/qt/swap_dialog.py

7
electrum/gui/qt/channels_list.py

@ -345,7 +345,7 @@ class ChannelsList(MyTreeView):
self.can_send_label = QLabel('') self.can_send_label = QLabel('')
h.addWidget(self.can_send_label) h.addWidget(self.can_send_label)
h.addStretch() h.addStretch()
self.swap_button = EnterButton(_('Swap'), self.swap_dialog) self.swap_button = EnterButton(_('Swap'), lambda x: self.parent.run_swap_dialog())
self.swap_button.setToolTip("Have at least one channel to do swaps.") self.swap_button.setToolTip("Have at least one channel to do swaps.")
self.swap_button.setDisabled(True) self.swap_button.setDisabled(True)
self.new_channel_button = EnterButton(_('Open Channel'), self.new_channel_with_warning) self.new_channel_button = EnterButton(_('Open Channel'), self.new_channel_with_warning)
@ -387,11 +387,6 @@ class ChannelsList(MyTreeView):
d = NewChannelDialog(self.parent, amount_sat) d = NewChannelDialog(self.parent, amount_sat)
return d.run() return d.run()
def swap_dialog(self):
from .swap_dialog import SwapDialog
d = SwapDialog(self.parent)
d.run()
class ChannelFeature(ABC): class ChannelFeature(ABC):
def __init__(self): def __init__(self):

13
electrum/gui/qt/main_window.py

@ -1721,8 +1721,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
if self.channels_list.new_channel_dialog(amount_sat=channel_funding_sat): if self.channels_list.new_channel_dialog(amount_sat=channel_funding_sat):
self.wallet.lnworker.set_invoice_status(key, PR_SCHEDULED) self.wallet.lnworker.set_invoice_status(key, PR_SCHEDULED)
elif r == 2: elif r == 2:
d = SwapDialog(self, is_reverse=False, recv_amount_sat=swap_recv_amount_sat) if self.run_swap_dialog(is_reverse=False, recv_amount_sat=swap_recv_amount_sat):
if d.run():
self.wallet.lnworker.set_invoice_status(key, PR_SCHEDULED) self.wallet.lnworker.set_invoice_status(key, PR_SCHEDULED)
return return
@ -1735,6 +1734,16 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
coro = self.wallet.lnworker.pay_invoice(invoice.lightning_invoice, amount_msat=amount_msat) coro = self.wallet.lnworker.pay_invoice(invoice.lightning_invoice, amount_msat=amount_msat)
self.run_coroutine_from_thread(coro) self.run_coroutine_from_thread(coro)
def run_swap_dialog(self, is_reverse=True, recv_amount_sat=None):
if not self.network:
self.window.show_error(_("You are offline."))
return
def get_pairs_thread():
self.network.run_from_another_thread(self.wallet.lnworker.swap_manager.get_pairs())
BlockingWaitingDialog(self, _('Please wait...'), get_pairs_thread)
d = SwapDialog(self, is_reverse=is_reverse, recv_amount_sat=recv_amount_sat)
return d.run()
def on_request_status(self, wallet, key, status): def on_request_status(self, wallet, key, status):
if wallet != self.wallet: if wallet != self.wallet:
return return

9
electrum/gui/qt/swap_dialog.py

@ -27,7 +27,6 @@ Do you want to continue?
class SwapDialog(WindowModalDialog): class SwapDialog(WindowModalDialog):
tx: Optional[PartialTransaction] tx: Optional[PartialTransaction]
update_signal = pyqtSignal()
def __init__(self, window: 'ElectrumWindow', is_reverse=True, recv_amount_sat=None): def __init__(self, window: 'ElectrumWindow', is_reverse=True, recv_amount_sat=None):
WindowModalDialog.__init__(self, window, _('Submarine Swap')) WindowModalDialog.__init__(self, window, _('Submarine Swap'))
@ -85,11 +84,9 @@ class SwapDialog(WindowModalDialog):
self.ok_button.setDefault(True) self.ok_button.setDefault(True)
self.ok_button.setEnabled(False) self.ok_button.setEnabled(False)
vbox.addLayout(Buttons(CancelButton(self), self.ok_button)) vbox.addLayout(Buttons(CancelButton(self), self.ok_button))
self.update_signal.connect(self.update)
self.update()
if recv_amount_sat: if recv_amount_sat:
self.init_recv_amount(recv_amount_sat) self.init_recv_amount(recv_amount_sat)
self.update_signal.connect(lambda: self.init_recv_amount(recv_amount_sat)) self.update()
def init_recv_amount(self, recv_amount_sat): def init_recv_amount(self, recv_amount_sat):
recv_amount_sat = max(recv_amount_sat, self.swap_manager.min_amount) recv_amount_sat = max(recv_amount_sat, self.swap_manager.min_amount)
@ -218,10 +215,6 @@ class SwapDialog(WindowModalDialog):
self.fee_label.repaint() # macOS hack for #6269 self.fee_label.repaint() # macOS hack for #6269
def run(self): def run(self):
if not self.network:
self.window.show_error(_("You are offline."))
return
self.window.run_coroutine_from_thread(self.swap_manager.get_pairs(), lambda x: self.update_signal.emit())
if not self.exec_(): if not self.exec_():
return return
if self.is_reverse: if self.is_reverse:

Loading…
Cancel
Save