Fix console input up/down arrows

In some cases, pressing down past the end of the command history would not clear the input
This commit is contained in:
Luke Campagnola 2018-06-20 13:01:52 -07:00
parent 7bfc5106b2
commit f2baf31d51

View File

@ -9,19 +9,18 @@ class CmdInput(QtGui.QLineEdit):
QtGui.QLineEdit.__init__(self, parent) QtGui.QLineEdit.__init__(self, parent)
self.history = [""] self.history = [""]
self.ptr = 0 self.ptr = 0
#self.lastCmd = None
#self.setMultiline(False)
def keyPressEvent(self, ev): def keyPressEvent(self, ev):
#print "press:", ev.key(), QtCore.Qt.Key_Up, QtCore.Qt.Key_Down, QtCore.Qt.Key_Enter if ev.key() == QtCore.Qt.Key_Up:
if ev.key() == QtCore.Qt.Key_Up and self.ptr < len(self.history) - 1: if self.ptr < len(self.history) - 1:
self.setHistory(self.ptr+1) self.setHistory(self.ptr+1)
ev.accept() ev.accept()
return return
elif ev.key() == QtCore.Qt.Key_Down and self.ptr > 0: elif ev.key() == QtCore.Qt.Key_Down:
self.setHistory(self.ptr-1) if self.ptr > 0:
ev.accept() self.setHistory(self.ptr-1)
return ev.accept()
return
elif ev.key() == QtCore.Qt.Key_Return: elif ev.key() == QtCore.Qt.Key_Return:
self.execCmd() self.execCmd()
else: else:
@ -32,7 +31,6 @@ class CmdInput(QtGui.QLineEdit):
cmd = asUnicode(self.text()) cmd = asUnicode(self.text())
if len(self.history) == 1 or cmd != self.history[1]: if len(self.history) == 1 or cmd != self.history[1]:
self.history.insert(1, cmd) self.history.insert(1, cmd)
#self.lastCmd = cmd
self.history[0] = "" self.history[0] = ""
self.setHistory(0) self.setHistory(0)
self.sigExecuteCmd.emit(cmd) self.sigExecuteCmd.emit(cmd)
@ -40,23 +38,3 @@ class CmdInput(QtGui.QLineEdit):
def setHistory(self, num): def setHistory(self, num):
self.ptr = num self.ptr = num
self.setText(self.history[self.ptr]) self.setText(self.history[self.ptr])
#def setMultiline(self, m):
#height = QtGui.QFontMetrics(self.font()).lineSpacing()
#if m:
#self.setFixedHeight(height*5)
#else:
#self.setFixedHeight(height+15)
#self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
#self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
#def sizeHint(self):
#hint = QtGui.QPlainTextEdit.sizeHint(self)
#height = QtGui.QFontMetrics(self.font()).lineSpacing()
#hint.setHeight(height)
#return hint