diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2019-12-06 13:04:17 +0200 |
---|---|---|
committer | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2019-12-07 18:39:54 +0200 |
commit | 49f6b0146a520e61477aacdf8d1f4e7048f569dd (patch) | |
tree | 1bc5b9a7f72bfe25b70109190b018c6549403813 /src/plugins/coreplugin/outputwindow.cpp | |
parent | 3c41b91d44838fcadfa50c4044e338d43a27cc10 (diff) | |
parent | 9eed77fe86ed91b08d4f9dc23d3534eeb3dfff6a (diff) | |
download | qt-creator-49f6b0146a520e61477aacdf8d1f4e7048f569dd.tar.gz |
Merge remote-tracking branch 'origin/4.11'
Conflicts:
cmake/QtCreatorIDEBranding.cmake
qbs/modules/qtc/qtc.qbs
qtcreator_ide_branding.pri
src/plugins/mcusupport/mcusupportrunconfiguration.cpp
src/plugins/python/pythonproject.cpp
src/plugins/qmakeprojectmanager/qmakestep.cpp
src/plugins/qmlprojectmanager/qmlproject.cpp
src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
Change-Id: I22507be28fd80c49c9fee0dff5937a40db176a82
Diffstat (limited to 'src/plugins/coreplugin/outputwindow.cpp')
-rw-r--r-- | src/plugins/coreplugin/outputwindow.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp index cb5c6ac843..7c3f2f6e13 100644 --- a/src/plugins/coreplugin/outputwindow.cpp +++ b/src/plugins/coreplugin/outputwindow.cpp @@ -62,6 +62,7 @@ public: QString settingsKey; bool enforceNewline = false; + bool prependCarriageReturn = false; bool scrollToBottom = true; bool linksActive = true; bool zoomEnabled = false; @@ -390,7 +391,16 @@ int OutputWindow::maxCharCount() const void OutputWindow::appendMessage(const QString &output, OutputFormat format) { - QString out = SynchronousProcess::normalizeNewlines(output); + QString out = output; + if (d->prependCarriageReturn) { + d->prependCarriageReturn = false; + out.prepend('\r'); + } + out = SynchronousProcess::normalizeNewlines(out); + if (out.endsWith('\r')) { + d->prependCarriageReturn = true; + out.chop(1); + } if (out.size() > d->maxCharCount) { // Current line alone exceeds limit, we need to cut it. @@ -435,20 +445,22 @@ void OutputWindow::appendMessage(const QString &output, OutputFormat format) } else { newline = out.indexOf(QLatin1Char('\n')); moveCursor(QTextCursor::End); - if (newline != -1 && d->formatter) - d->formatter->appendMessage(out.left(newline), format);// doesn't enforce new paragraph like appendPlainText + if (newline != -1) { + if (d->formatter) + d->formatter->appendMessage(out.left(newline), format);// doesn't enforce new paragraph like appendPlainText + out = out.mid(newline); + } } - QString s = out.mid(newline+1); - if (s.isEmpty()) { + if (out.isEmpty()) { d->enforceNewline = true; } else { - if (s.endsWith(QLatin1Char('\n'))) { + if (out.endsWith(QLatin1Char('\n'))) { d->enforceNewline = true; - s.chop(1); + out.chop(1); } if (d->formatter) - d->formatter->appendMessage(s, format); + d->formatter->appendMessage(out, format); } } else { if (d->formatter) @@ -502,6 +514,7 @@ bool OutputWindow::isScrollbarAtBottom() const void OutputWindow::clear() { d->enforceNewline = false; + d->prependCarriageReturn = false; QPlainTextEdit::clear(); if (d->formatter) d->formatter->clear(); |