From db5d5183d7d227cffeb52747e25a7a800ac40378 Mon Sep 17 00:00:00 2001 From: Benoit Verret Date: Tue, 14 Jul 2020 12:00:54 -0400 Subject: [PATCH] Keep current input when clearing Python console Ctrl+L should clear the whole console except the current line like a standard Python console. --- electrum/gui/qt/console.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/electrum/gui/qt/console.py b/electrum/gui/qt/console.py index 3971ad696..b2de7e307 100644 --- a/electrum/gui/qt/console.py +++ b/electrum/gui/qt/console.py @@ -91,17 +91,18 @@ class Console(QtWidgets.QPlainTextEdit): def showMessage(self, message): self.appendPlainText(message) - self.newPrompt() + self.newPrompt('') def clear(self): + curr_line = self.getCommand() self.setPlainText('') - self.newPrompt() + self.newPrompt(curr_line) - def newPrompt(self): + def newPrompt(self, curr_line): if self.construct: prompt = '.' * len(self.prompt) else: - prompt = self.prompt + prompt = self.prompt + curr_line self.completions_pos = self.textCursor().position() self.completions_visible = False @@ -244,7 +245,7 @@ class Console(QtWidgets.QPlainTextEdit): if type(self.namespace.get(command)) == type(lambda:None): self.appendPlainText("'{}' is a function. Type '{}()' to use it in the Python console." .format(command, command)) - self.newPrompt() + self.newPrompt('') return sys.stdout = stdoutProxy(self.appendPlainText) @@ -269,7 +270,7 @@ class Console(QtWidgets.QPlainTextEdit): traceback_lines.pop(i) self.appendPlainText('\n'.join(traceback_lines)) sys.stdout = tmp_stdout - self.newPrompt() + self.newPrompt('') self.set_json(False)