changeset 13664:eb03d0b39c18

Huge performance bosst by using edit blocks.
author Jacob Dawid <jacob.dawid@googlemail.com>
date Sat, 10 Sep 2011 08:11:44 +0200
parents 746c99f44c4b
children ddc3c20d0e2f
files gui/src/terminal/LinuxTerminalEmulation.cpp
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/gui/src/terminal/LinuxTerminalEmulation.cpp	Fri Sep 09 22:35:10 2011 +0200
+++ b/gui/src/terminal/LinuxTerminalEmulation.cpp	Sat Sep 10 08:11:44 2011 +0200
@@ -104,9 +104,18 @@
 {
   QByteArray data = m_pty->readAll ();
 
+  data.replace("\033[K", "");
+  data.replace("\033[9", "");
+  data.replace("\033[A", "");
+  data.replace("\033[B", "");
+  data.replace("\033[C", "");
+  data.replace("\033[D", "");
+  data.replace("\033[1", "");
+  data.replace("\033[H", "");
+  data.replace("\033[2J", "");
   int position;
   QTextCursor tc = m_terminal->textCursor ();
-  tc.movePosition (QTextCursor::End);
+  tc.beginEditBlock ();
 
   // Decode data into cursor actions.
   foreach(QChar character, data)
@@ -215,11 +224,14 @@
           qDebug ("US");
           break;
         case 127: // Delete (DEL)
+          qDebug ("DEL");
           break;
         default:
           tc.insertText (character);
           break;
         }
     }
+
+  tc.endEditBlock ();
   m_terminal->setTextCursor (tc);
 }