forked from qt-creator/qt-creator
Superfluous new lines in application output.
Fix the use of appendPlainText for automatic scrolling.
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user