commit 99f9a1b4847422ab78799f187c46a4bde7ed34dd
parent 162d81c156acd365b4f4888f5edb6893e6bbe20b
Author: SomberNight <somber.night@protonmail.com>
Date: Sun, 28 Apr 2019 06:31:01 +0200
qt: warn user if in testnet mode
closes #5295
Diffstat:
3 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/electrum/gui/qt/__init__.py b/electrum/gui/qt/__init__.py
@@ -198,6 +198,7 @@ class ElectrumGui(PrintError):
self.build_tray_menu()
# FIXME: Remove in favour of the load_wallet hook
run_hook('on_new_window', w)
+ w.warn_if_testnet()
w.warn_if_watching_only()
return w
diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py
@@ -468,7 +468,32 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
_("This means you will not be able to spend Bitcoins with it."),
_("Make sure you own the seed phrase or the private keys, before you request Bitcoins to be sent to this wallet.")
])
- self.show_warning(msg, title=_('Information'))
+ self.show_warning(msg, title=_('Watch-only wallet'))
+
+ def warn_if_testnet(self):
+ if not constants.net.TESTNET:
+ return
+ # user might have opted out already
+ if self.config.get('dont_show_testnet_warning', False):
+ return
+ # only show once per process lifecycle
+ if getattr(self.gui_object, '_warned_testnet', False):
+ return
+ self.gui_object._warned_testnet = True
+ msg = ''.join([
+ _("You are in testnet mode."), ' ',
+ _("Testnet coins are worthless."), '\n',
+ _("Testnet is separate from the main Bitcoin network. It is used for testing.")
+ ])
+ cb = QCheckBox(_("Don't show this again."))
+ cb_checked = False
+ def on_cb(x):
+ nonlocal cb_checked
+ cb_checked = x == Qt.Checked
+ cb.stateChanged.connect(on_cb)
+ self.show_warning(msg, title=_('Testnet'), checkbox=cb)
+ if cb_checked:
+ self.config.set_key('dont_show_testnet_warning', True)
def open_wallet(self):
try:
diff --git a/electrum/gui/qt/util.py b/electrum/gui/qt/util.py
@@ -218,7 +218,8 @@ class MessageBoxMixin(object):
title or _('Information'), msg, **kwargs)
def msg_box(self, icon, parent, title, text, buttons=QMessageBox.Ok,
- defaultButton=QMessageBox.NoButton, rich_text=False):
+ defaultButton=QMessageBox.NoButton, *, rich_text=False,
+ checkbox=None):
parent = parent or self.top_level_window()
if type(icon) is QPixmap:
d = QMessageBox(QMessageBox.Information, title, str(text), buttons, parent)
@@ -233,6 +234,8 @@ class MessageBoxMixin(object):
else:
d.setTextInteractionFlags(Qt.TextSelectableByMouse)
d.setTextFormat(Qt.PlainText)
+ if checkbox is not None:
+ d.setCheckBox(checkbox)
return d.exec_()
class WindowModalDialog(QDialog, MessageBoxMixin):