fix history in console
authorecdsa <ecdsa@github>
Mon, 4 Mar 2013 16:18:48 +0000 (17:18 +0100)
committerecdsa <ecdsa@github>
Mon, 4 Mar 2013 16:18:48 +0000 (17:18 +0100)
gui/qt_console.py

index c61251c..bb7f0b1 100644 (file)
@@ -69,10 +69,13 @@ class Console(QtGui.QPlainTextEdit):
     def setCommand(self, command):
         if self.getCommand() == command:
             return
+
+        doc = self.document()
+        curr_line = unicode(doc.findBlockByLineNumber(doc.lineCount() - 1).text())
         self.moveCursor(QtGui.QTextCursor.End)
-        self.moveCursor(QtGui.QTextCursor.StartOfLine, QtGui.QTextCursor.KeepAnchor)
-        for i in range(len(self.prompt)):
-            self.moveCursor(QtGui.QTextCursor.Right, QtGui.QTextCursor.KeepAnchor)
+        for i in range(len(curr_line) - len(self.prompt)):
+            self.moveCursor(QtGui.QTextCursor.Left, QtGui.QTextCursor.KeepAnchor)
+
         self.textCursor().removeSelectedText()
         self.textCursor().insertText(command)
         self.moveCursor(QtGui.QTextCursor.End)
@@ -151,7 +154,8 @@ class Console(QtGui.QPlainTextEdit):
         return ''
 
     def getCursorPosition(self):
-        return self.textCursor().columnNumber() - len(self.prompt)
+        c = self.textCursor()
+        return c.position() - c.block().position() - len(self.prompt)
 
     def setCursorPosition(self, position):
         self.moveCursor(QtGui.QTextCursor.StartOfLine)