Skip to content
Snippets Groups Projects
Commit 3a81f2a3 authored by con's avatar con
Browse files

Superfluous new lines in application output.

Fix the use of appendPlainText for automatic scrolling.
parent 33bbae9e
No related branches found
No related tags found
No related merge requests found
...@@ -351,22 +351,34 @@ OutputWindow::~OutputWindow() ...@@ -351,22 +351,34 @@ OutputWindow::~OutputWindow()
void OutputWindow::appendOutput(const QString &out) void OutputWindow::appendOutput(const QString &out)
{ {
if (out.endsWith('\n')) if (out.endsWith('\n'))
appendPlainText(out); appendPlainText(out.right(out.length()-1));
else else
appendPlainText(out + '\n'); appendPlainText(out);
} }
void OutputWindow::appendOutputInline(const QString &out) void OutputWindow::appendOutputInline(const QString &out)
{ {
moveCursor(QTextCursor::End);
int newline = out.indexOf(QLatin1Char('\n')); int newline = out.indexOf(QLatin1Char('\n'));
if (newline < 0) { if (newline < 0) {
insertPlainText(out); moveCursor(QTextCursor::End);
insertPlainText(out); // doesn't insert additional '\n' like appendPlainText
return; return;
} }
insertPlainText(out.left(newline)); int lastnewline = out.lastIndexOf(QLatin1Char('\n'));
if (newline < out.length()) // make sure that we use appendPlainText to add the last newline
appendPlainText(out.mid(newline+1)); // 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() void OutputWindow::insertLine()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment