Browse Source

Qt: fix generateTumbleSchedule to use open/asyncio

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

8
scripts/joinmarket-qt.py

@ -443,7 +443,7 @@ class SpendTab(QWidget):
return False
return True
def generateTumbleSchedule(self):
async def generateTumbleSchedule(self):
if not mainWindow.wallet_service:
asyncio.ensure_future(
JMQtMessageBox(self, "Cannot start without a loaded wallet.",
@ -452,7 +452,8 @@ class SpendTab(QWidget):
#needs a set of tumbler options and destination addresses, so needs
#a wizard
wizard = ScheduleWizard()
wizard_return = wizard.exec_()
wizard.open()
wizard_return = await wizard.result()
if wizard_return == QDialog.Rejected:
return
try:
@ -597,7 +598,8 @@ class SpendTab(QWidget):
self.schedule_set_button = QPushButton('Choose schedule file')
self.schedule_set_button.clicked.connect(self.selectSchedule)
self.schedule_generate_button = QPushButton('Generate tumble schedule')
self.schedule_generate_button.clicked.connect(self.generateTumbleSchedule)
self.schedule_generate_button.clicked.connect(
lambda: asyncio.ensure_future(self.generateTumbleSchedule()))
self.sch_startButton = QPushButton('Run schedule')
self.sch_startButton.setEnabled(False) #not runnable until schedule chosen
self.sch_startButton.clicked.connect(self.startMultiple)

13
scripts/qtsupport.py

@ -915,8 +915,12 @@ class SchIntroPage(QWizardPage):
"""
class ScheduleWizard(QWizard):
def __init__(self):
super().__init__()
self.setModal(True)
self.result_fut = asyncio.get_event_loop().create_future()
self.finished.connect(self.on_finished)
self.setWindowTitle("Joinmarket schedule generator")
self.setPage(0, SchIntroPage(self))
self.setPage(1, SchDynamicPage1(self))
@ -924,11 +928,18 @@ class ScheduleWizard(QWizard):
#self.setPage(3, SchStaticPage(self))
self.setPage(3, SchFinishPage(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 get_name(self):
#TODO de-hardcode generated name
return "TUMBLE.schedule"
def get_destaddrs(self):
return self.destaddrs

Loading…
Cancel
Save