diff --git a/scripts/joinmarket-qt.py b/scripts/joinmarket-qt.py
index 37853d5..05dc939 100644
--- a/scripts/joinmarket-qt.py
+++ b/scripts/joinmarket-qt.py
@@ -1285,30 +1285,35 @@ class JMMainWindow(QMainWindow):
def initUI(self):
self.statusBar().showMessage("Ready")
self.setGeometry(300, 300, 250, 150)
- exitAction = QAction(QIcon('exit.png'), '&Exit', self)
- exitAction.setShortcut('Ctrl+Q')
- exitAction.setStatusTip('Exit application')
- exitAction.triggered.connect(qApp.quit)
- generateAction = QAction('&Generate', self)
- generateAction.setStatusTip('Generate new wallet')
- generateAction.triggered.connect(self.generateWallet)
loadAction = QAction('&Load', self)
loadAction.setStatusTip('Load wallet from file')
loadAction.triggered.connect(self.selectWallet)
+ generateAction = QAction('&Generate', self)
+ generateAction.setStatusTip('Generate new wallet')
+ generateAction.triggered.connect(self.generateWallet)
recoverAction = QAction('&Recover', self)
- recoverAction.setStatusTip('Recover wallet from seedphrase')
+ recoverAction.setStatusTip('Recover wallet from seed phrase')
recoverAction.triggered.connect(self.recoverWallet)
- aboutAction = QAction('About Joinmarket', self)
- aboutAction.triggered.connect(self.showAboutDialog)
+ showSeedAction = QAction('&Show seed', self)
+ showSeedAction.setStatusTip('Show wallet seed phrase')
+ showSeedAction.triggered.connect(self.showSeedDialog)
exportPrivAction = QAction('&Export keys', self)
exportPrivAction.setStatusTip('Export all private keys to a file')
exportPrivAction.triggered.connect(self.exportPrivkeysJson)
- menubar = self.menuBar()
+ exitAction = QAction(QIcon('exit.png'), '&Exit', self)
+ exitAction.setShortcut('Ctrl+Q')
+ exitAction.setStatusTip('Exit application')
+ exitAction.triggered.connect(qApp.quit)
+
+ aboutAction = QAction('About Joinmarket', self)
+ aboutAction.triggered.connect(self.showAboutDialog)
+ menubar = self.menuBar()
walletMenu = menubar.addMenu('&Wallet')
walletMenu.addAction(loadAction)
walletMenu.addAction(generateAction)
walletMenu.addAction(recoverAction)
+ walletMenu.addAction(showSeedAction)
walletMenu.addAction(exportPrivAction)
walletMenu.addAction(exitAction)
aboutMenu = menubar.addMenu('&About')
@@ -1609,6 +1614,21 @@ class JMMainWindow(QMainWindow):
return
return str(text).strip()
+ def showSeedDialog(self):
+ if not self.wallet_service:
+ JMQtMessageBox(self,
+ "No wallet loaded.",
+ mbtype='crit',
+ title="Error")
+ return
+ try:
+ self.displayWords(*self.wallet_service.get_mnemonic_words())
+ except NotImplementedError:
+ JMQtMessageBox(self,
+ "Wallet does not support seed phrases",
+ mbtype='info',
+ title="Error")
+
def getPassword(self):
pd = PasswordDialog()
while True:
@@ -1644,16 +1664,16 @@ class JMMainWindow(QMainWindow):
return self.walletname
def displayWords(self, words, mnemonic_extension):
- mb = QMessageBox()
+ mb = QMessageBox(self)
seed_recovery_warning = [
"WRITE DOWN THIS WALLET RECOVERY SEED.",
"If you fail to do this, your funds are",
"at risk. Do NOT ignore this step!!!"
]
- mb.setText("\n".join(seed_recovery_warning))
- text = words
+ mb.setText("
".join(seed_recovery_warning))
+ text = "" + words + ""
if mnemonic_extension:
- text += '\n\nMnemonic extension: ' + mnemonic_extension
+ text += "
Seed extension: " + mnemonic_extension.decode("utf-8") + ""
mb.setInformativeText(text)
mb.setStandardButtons(QMessageBox.Ok)
ret = mb.exec_()