Browse Source

Qt: fix TumbleRestartWizard to use open/asyncio

add_frost_channel_encryption
zebra-lucky 2 months ago
parent
commit
b784ceaee9
  1. 8
      scripts/joinmarket-qt.py
  2. 14
      scripts/qtsupport.py

8
scripts/joinmarket-qt.py

@ -602,7 +602,8 @@ class SpendTab(QWidget):
lambda: asyncio.ensure_future(self.generateTumbleSchedule())) lambda: asyncio.ensure_future(self.generateTumbleSchedule()))
self.sch_startButton = QPushButton('Run schedule') self.sch_startButton = QPushButton('Run schedule')
self.sch_startButton.setEnabled(False) #not runnable until schedule chosen self.sch_startButton.setEnabled(False) #not runnable until schedule chosen
self.sch_startButton.clicked.connect(self.startMultiple) self.sch_startButton.clicked.connect(
lambda: asyncio.ensure_future(self.startMultiple()))
self.sch_abortButton = QPushButton('Abort') self.sch_abortButton = QPushButton('Abort')
self.sch_abortButton.setEnabled(False) self.sch_abortButton.setEnabled(False)
self.sch_abortButton.clicked.connect(self.abortTransactions) self.sch_abortButton.clicked.connect(self.abortTransactions)
@ -733,7 +734,7 @@ class SpendTab(QWidget):
mainWindow.statusBar().showMessage("Transaction in a block, now continuing.") mainWindow.statusBar().showMessage("Transaction in a block, now continuing.")
self.startJoin() self.startJoin()
def startMultiple(self): async def startMultiple(self):
if jm_single().bc_interface is None: if jm_single().bc_interface is None:
log.info("Cannot start join, blockchain source not available.") log.info("Cannot start join, blockchain source not available.")
return return
@ -752,7 +753,8 @@ class SpendTab(QWidget):
#is in case the user can increase success probability by changing them. #is in case the user can increase success probability by changing them.
if self.tumbler_options == True: if self.tumbler_options == True:
wizard = TumbleRestartWizard() wizard = TumbleRestartWizard()
wizard_return = wizard.exec_() wizard.open()
wizard_return = await wizard.result()
if wizard_return == QDialog.Rejected: if wizard_return == QDialog.Rejected:
return return
self.tumbler_options = wizard.getOptions() self.tumbler_options = wizard.getOptions()

14
scripts/qtsupport.py

@ -975,12 +975,25 @@ class ScheduleWizard(QWizard):
return get_tumble_schedule(self.opts, self.destaddrs, return get_tumble_schedule(self.opts, self.destaddrs,
wallet_balance_by_mixdepth, max_mixdepth_in_wallet) wallet_balance_by_mixdepth, max_mixdepth_in_wallet)
class TumbleRestartWizard(QWizard): class TumbleRestartWizard(QWizard):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.setModal(True)
self.result_fut = asyncio.get_event_loop().create_future()
self.finished.connect(self.on_finished)
self.setWindowTitle("Restart tumbler schedule") self.setWindowTitle("Restart tumbler schedule")
self.setPage(0, RestartSettingsPage(self)) self.setPage(0, RestartSettingsPage(self))
@QtCore.Slot(QMessageBox.StandardButton)
def on_finished(self, button):
self.result_fut.set_result(button)
async def result(self):
await self.result_fut
return self.result_fut.result()
def getOptions(self): def getOptions(self):
self.opts = {} self.opts = {}
self.opts['mincjamount'] = int(self.field("mincjamount")) self.opts['mincjamount'] = int(self.field("mincjamount"))
@ -991,6 +1004,7 @@ class TumbleRestartWizard(QWizard):
jm_single().mincjamount = self.opts['mincjamount'] jm_single().mincjamount = self.opts['mincjamount']
return self.opts return self.opts
class RestartSettingsPage(QWizardPage): class RestartSettingsPage(QWizardPage):
def __init__(self, parent): def __init__(self, parent):

Loading…
Cancel
Save