1
0

Add a warning about harmful code to the console

This commit is contained in:
Johann Bauer
2018-01-12 00:09:06 +01:00
parent 453cc263f7
commit 7f74d21eb2

View File

@@ -7,6 +7,7 @@ from PyQt5 import QtCore
from PyQt5 import QtGui from PyQt5 import QtGui
from PyQt5 import QtWidgets from PyQt5 import QtWidgets
from electrum import util from electrum import util
from electrum.i18n import _
if platform.system() == 'Windows': if platform.system() == 'Windows':
@@ -17,6 +18,33 @@ else:
MONOSPACE_FONT = 'monospace' MONOSPACE_FONT = 'monospace'
class OverlayLabel(QtWidgets.QLabel):
STYLESHEET = '''
QLabel, QLabel link {
color: rgb(0, 0, 0);
background-color: rgb(248, 240, 200);
border: 1px solid;
border-color: rgb(255, 114, 47);
padding: 2px;
}
'''
def __init__(self, text, parent):
super().__init__(text, parent)
self.setMinimumHeight(150)
self.setGeometry(0, 0, self.width(), self.height())
self.setStyleSheet(self.STYLESHEET)
self.setMargin(0)
parent.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setWordWrap(True)
def mousePressEvent(self, e):
self.hide()
def on_resize(self, w):
padding = 2 # px, from the stylesheet above
self.setFixedWidth(w - padding)
class Console(QtWidgets.QPlainTextEdit): class Console(QtWidgets.QPlainTextEdit):
def __init__(self, prompt='>> ', startup_message='', parent=None): def __init__(self, prompt='>> ', startup_message='', parent=None):
QtWidgets.QPlainTextEdit.__init__(self, parent) QtWidgets.QPlainTextEdit.__init__(self, parent)
@@ -35,6 +63,18 @@ class Console(QtWidgets.QPlainTextEdit):
self.updateNamespace({'run':self.run_script}) self.updateNamespace({'run':self.run_script})
self.set_json(False) self.set_json(False)
warning_text = "<h1>{}</h1><br>{}<br><br>{}".format(
_("Warning!"),
_("Do not paste code here that you don't understand. Executing the wrong code could lead "
"to your coins being irreversibly lost."),
_("Click here to hide this message.")
)
self.messageOverlay = OverlayLabel(warning_text, self)
def resizeEvent(self, e):
self.messageOverlay.on_resize(self.width() - self.verticalScrollBar().width())
def set_json(self, b): def set_json(self, b):
self.is_json = b self.is_json = b