summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin/outputwindow.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2019-12-06 13:04:17 +0200
committerOrgad Shaneh <orgad.shaneh@audiocodes.com>2019-12-07 18:39:54 +0200
commit49f6b0146a520e61477aacdf8d1f4e7048f569dd (patch)
tree1bc5b9a7f72bfe25b70109190b018c6549403813 /src/plugins/coreplugin/outputwindow.cpp
parent3c41b91d44838fcadfa50c4044e338d43a27cc10 (diff)
parent9eed77fe86ed91b08d4f9dc23d3534eeb3dfff6a (diff)
downloadqt-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.cpp29
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();