Skip to content

Commit 29ed401

Browse files
committed
Merge pull request #311 from slarosa/master
python console: add splitter and scrollbars, fix for DEL and Backspace key
2 parents 98e8ba4 + 66368f9 commit 29ed401

File tree

3 files changed

+23
-20
lines changed

3 files changed

+23
-20
lines changed

python/console.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ def __init__(self, parent=None):
8888

8989
self.options = optionsDialog(self)
9090

91+
self.splitter = QSplitter(self)
92+
self.splitter.setOrientation(Qt.Vertical)
93+
self.splitter.setHandleWidth(3)
94+
self.splitter.setChildrenCollapsible(False)
95+
9196
self.toolBar = QToolBar()
9297
self.toolBar.setEnabled(True)
9398
self.toolBar.setFocusPolicy(Qt.NoFocus)
@@ -262,25 +267,23 @@ def __init__(self, parent=None):
262267
sizePolicy.setHeightForWidth(self.widgetButton.sizePolicy().hasHeightForWidth())
263268
self.widgetButton.setSizePolicy(sizePolicy)
264269

265-
self.consoleFrame = QFrame(self)
266-
self.consoleFrame.setObjectName("consoleFrame")
267-
self.consoleLayout = QVBoxLayout(self.consoleFrame)
268-
self.consoleLayout.setSpacing(0)
269-
self.consoleLayout.setMargin(0)
270+
self.splitter.addWidget(self.textEditOut)
271+
self.splitter.addWidget(self.edit)
272+
273+
sizes = self.splitter.sizes()
274+
self.splitter.setSizes(sizes)
275+
276+
self.f.addWidget(self.widgetButton, 0, 0)
277+
self.f.addWidget(self.splitter, 0, 1)
270278

271279
sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
272280
sizePolicy.setHorizontalStretch(0)
273281
sizePolicy.setVerticalStretch(0)
274282
sizePolicy.setHeightForWidth(self.textEditOut.sizePolicy().hasHeightForWidth())
275283
self.textEditOut.setSizePolicy(sizePolicy)
276-
self.consoleLayout.addWidget(self.textEditOut)
277284

278-
self.edit.setMinimumSize(QSize(0, 32))
279-
self.edit.setMaximumSize(QSize(16777215, 32))
280-
self.consoleLayout.addWidget(self.edit)
281-
282-
self.f.addWidget(self.widgetButton, 0, 0)
283-
self.f.addWidget(self.consoleFrame, 0, 1)
285+
self.textEditOut.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
286+
self.edit.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
284287

285288
self.clearButton.triggered.connect(self.textEditOut.clearConsole)
286289
self.optionsButton.triggered.connect(self.openSettings)

python/console_output.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ def __init__(self, parent=None):
9494
self.setCaretLineVisible(True)
9595
self.setCaretLineBackgroundColor(QColor("#fcf3ed"))
9696

97+
self.setMinimumHeight(80)
9798

9899
# Folding
99100
#self.setFolding(QsciScintilla.BoxedTreeFoldStyle)
@@ -105,7 +106,7 @@ def __init__(self, parent=None):
105106
#self.setEdgeColumn(80)
106107
#self.setEdgeColor(QColor("#FF0000"))
107108

108-
self.SendScintilla(QsciScintilla.SCI_SETWRAPMODE, 2)
109+
self.setWrapMode(QsciScintilla.WrapCharacter)
109110
self.SendScintilla(QsciScintilla.SCI_SETHSCROLLBAR, 0)
110111

111112
self.runShortcut = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_E), self)

python/console_sci.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def __init__(self, parent=None):
5050

5151
self.buffer = []
5252

53-
#self.insertInitText()
53+
self.insertInitText()
5454
self.displayPrompt(False)
5555

5656
for line in _init_commands:
@@ -92,14 +92,12 @@ def __init__(self, parent=None):
9292
# Use raw message to Scintilla here (all messages are documented
9393
# here: http://www.scintilla.org/ScintillaDoc.html)
9494
self.SendScintilla(QsciScintilla.SCI_SETHSCROLLBAR, 0)
95-
self.SendScintilla(QsciScintilla.SCI_SETVSCROLLBAR, 0)
9695

97-
9896
# not too small
9997
#self.setMinimumSize(500, 300)
100-
self.setMinimumHeight(32)
101-
102-
self.SendScintilla(QsciScintilla.SCI_SETWRAPMODE, 2)
98+
self.setMinimumHeight(50)
99+
100+
self.setWrapMode(QsciScintilla.WrapCharacter)
103101
self.SendScintilla(QsciScintilla.SCI_EMPTYUNDOBUFFER)
104102

105103
## Disable command key
@@ -394,6 +392,7 @@ def keyPressEvent(self, e):
394392
# fix the cursor position
395393
self.insert( cmd[:3-newindex] + " " )
396394
self.setCursorPosition(line, 4)
395+
self.recolor()
397396

398397
elif e.modifiers() & (Qt.ControlModifier | Qt.MetaModifier) and \
399398
e.key() == Qt.Key_V:
@@ -553,6 +552,6 @@ def write(self, txt):
553552

554553
def write_stdout(self, txt):
555554
if len(txt) > 0:
556-
getCmdString = self.text()
555+
getCmdString = self.text(2)
557556
prompt = getCmdString[0:4]
558557
sys.stdout.write(prompt+txt+'\n')

0 commit comments

Comments
 (0)