Qt: run swap_manager.get_pairs() before opening SwapDialog
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user