diff --git a/src/plugins/projectexplorer/compileoutputwindow.cpp b/src/plugins/projectexplorer/compileoutputwindow.cpp index 78a56462237d90e4e4247a37d2c6edda460a58c9..1238fa33f515462f9a08d5cb98c064c60456f3b2 100644 --- a/src/plugins/projectexplorer/compileoutputwindow.cpp +++ b/src/plugins/projectexplorer/compileoutputwindow.cpp @@ -92,6 +92,10 @@ QWidget *CompileOutputWindow::outputWidget(QWidget *) void CompileOutputWindow::appendText(const QString &text, const QTextCharFormat &textCharFormat) { + if (m_textEdit->document()->blockCount() > 10000) + return; + bool shouldScroll = (m_textEdit->verticalScrollBar()->value() == + m_textEdit->verticalScrollBar()->maximum()); QString textWithNewline = text; if (!textWithNewline.endsWith("\n")) textWithNewline.append("\n"); @@ -99,7 +103,17 @@ void CompileOutputWindow::appendText(const QString &text, const QTextCharFormat cursor.movePosition(QTextCursor::End); cursor.beginEditBlock(); cursor.insertText(textWithNewline, textCharFormat); + + if (m_textEdit->document()->blockCount() > 10000) { + QTextCharFormat tmp; + tmp.setFontWeight(QFont::Bold); + cursor.insertText(tr("Additional output omitted\n"), tmp); + } + cursor.endEditBlock(); + + if (shouldScroll) + m_textEdit->setTextCursor(cursor); } void CompileOutputWindow::clearContents()