From 3a81f2a39311704b68e10b22b0fd22a43767e833 Mon Sep 17 00:00:00 2001 From: con <qtc-committer@nokia.com> Date: Tue, 4 Aug 2009 15:56:22 +0200 Subject: [PATCH] Superfluous new lines in application output. Fix the use of appendPlainText for automatic scrolling. --- src/plugins/projectexplorer/outputwindow.cpp | 26 ++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp index f5ee12607f8..157df34d988 100644 --- a/src/plugins/projectexplorer/outputwindow.cpp +++ b/src/plugins/projectexplorer/outputwindow.cpp @@ -351,22 +351,34 @@ OutputWindow::~OutputWindow() void OutputWindow::appendOutput(const QString &out) { if (out.endsWith('\n')) - appendPlainText(out); + appendPlainText(out.right(out.length()-1)); else - appendPlainText(out + '\n'); + appendPlainText(out); } + void OutputWindow::appendOutputInline(const QString &out) { - moveCursor(QTextCursor::End); int newline = out.indexOf(QLatin1Char('\n')); if (newline < 0) { - insertPlainText(out); + moveCursor(QTextCursor::End); + insertPlainText(out); // doesn't insert additional '\n' like appendPlainText return; } - insertPlainText(out.left(newline)); - if (newline < out.length()) - appendPlainText(out.mid(newline+1)); + int lastnewline = out.lastIndexOf(QLatin1Char('\n')); + // make sure that we use appendPlainText to add the last newline + // in the string, so we get automatic scrolling + // and work around the fact that appendPlainText also ensures + // a newline in front of the appended text + if (lastnewline > 0) { + moveCursor(QTextCursor::End); + insertPlainText(out.left(lastnewline)); + } + appendPlainText(""); // add the newline + if (lastnewline < out.length()-1) { // newline is not last character + moveCursor(QTextCursor::End); + insertPlainText(out.mid(lastnewline+1)); + } } void OutputWindow::insertLine() -- GitLab