##// END OF EJS Templates
Qt console: Fix _prompt_pos accounting on timer flush output....
Pankaj Pandey -
Show More
@@ -315,7 +315,7 b" class ConsoleWidget(MetaQObjectHasTraits('NewBase', (LoggingConfigurable, QtGui."
315 315 self._pending_text_flush_interval.setInterval(100)
316 316 self._pending_text_flush_interval.setSingleShot(True)
317 317 self._pending_text_flush_interval.timeout.connect(
318 self._flush_pending_stream)
318 self._on_flush_pending_stream_timer)
319 319
320 320 # Set a monospaced font.
321 321 self.reset_font()
@@ -1491,6 +1491,20 b" class ConsoleWidget(MetaQObjectHasTraits('NewBase', (LoggingConfigurable, QtGui."
1491 1491
1492 1492 return False
1493 1493
1494 def _on_flush_pending_stream_timer(self):
1495 """ Flush the pending stream output and change the
1496 prompt position appropriately.
1497 """
1498 cursor = self._control.textCursor()
1499 cursor.movePosition(QtGui.QTextCursor.End)
1500 pos = cursor.position()
1501 self._flush_pending_stream()
1502 cursor.movePosition(QtGui.QTextCursor.End)
1503 diff = cursor.position() - pos
1504 if diff > 0:
1505 self._prompt_pos += diff
1506 self._append_before_prompt_pos += diff
1507
1494 1508 def _flush_pending_stream(self):
1495 1509 """ Flush out pending text into the widget. """
1496 1510 text = self._pending_insert_text
@@ -2044,6 +2058,7 b" class ConsoleWidget(MetaQObjectHasTraits('NewBase', (LoggingConfigurable, QtGui."
2044 2058 there is not already a newline at the end of the buffer.
2045 2059 """
2046 2060 # Save the current end position to support _append*(before_prompt=True).
2061 self._flush_pending_stream()
2047 2062 cursor = self._get_end_cursor()
2048 2063 self._append_before_prompt_pos = cursor.position()
2049 2064
@@ -2053,6 +2068,7 b" class ConsoleWidget(MetaQObjectHasTraits('NewBase', (LoggingConfigurable, QtGui."
2053 2068 QtGui.QTextCursor.KeepAnchor)
2054 2069 if cursor.selection().toPlainText() != '\n':
2055 2070 self._append_block()
2071 self._append_before_prompt_pos += 1
2056 2072
2057 2073 # Write the prompt.
2058 2074 self._append_plain_text(self._prompt_sep)
@@ -2070,7 +2086,6 b" class ConsoleWidget(MetaQObjectHasTraits('NewBase', (LoggingConfigurable, QtGui."
2070 2086 self._prompt = prompt
2071 2087 self._prompt_html = None
2072 2088
2073 self._flush_pending_stream()
2074 2089 self._prompt_pos = self._get_end_cursor().position()
2075 2090 self._prompt_started()
2076 2091
General Comments 0
You need to be logged in to leave comments. Login now