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('')
h.addWidget(self.can_send_label)
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.setDisabled(True)
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)
return d.run()
def swap_dialog(self):
from .swap_dialog import SwapDialog
d = SwapDialog(self.parent)
d.run()
class ChannelFeature(ABC):
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):
self.wallet.lnworker.set_invoice_status(key, PR_SCHEDULED)
elif r == 2:
d = SwapDialog(self, is_reverse=False, recv_amount_sat=swap_recv_amount_sat)
if d.run():
if self.run_swap_dialog(is_reverse=False, recv_amount_sat=swap_recv_amount_sat):
self.wallet.lnworker.set_invoice_status(key, PR_SCHEDULED)
return
@ -1735,6 +1734,16 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
coro = self.wallet.lnworker.pay_invoice(invoice.lightning_invoice, amount_msat=amount_msat)
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):
if wallet != self.wallet:
return

9
electrum/gui/qt/swap_dialog.py

@ -27,7 +27,6 @@ Do you want to continue?
class SwapDialog(WindowModalDialog):
tx: Optional[PartialTransaction]
update_signal = pyqtSignal()
def __init__(self, window: 'ElectrumWindow', is_reverse=True, recv_amount_sat=None):
WindowModalDialog.__init__(self, window, _('Submarine Swap'))
@ -85,11 +84,9 @@ class SwapDialog(WindowModalDialog):
self.ok_button.setDefault(True)
self.ok_button.setEnabled(False)
vbox.addLayout(Buttons(CancelButton(self), self.ok_button))
self.update_signal.connect(self.update)
self.update()
if 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):
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
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_():
return
if self.is_reverse:

Loading…
Cancel
Save