diff --git a/src/plugins/projectexplorer/compileoutputwindow.cpp b/src/plugins/projectexplorer/compileoutputwindow.cpp index 1238fa33f515462f9a08d5cb98c064c60456f3b2..95e12558ad6caa1ff2035e0ed3afa19057fd41de 100644 --- a/src/plugins/projectexplorer/compileoutputwindow.cpp +++ b/src/plugins/projectexplorer/compileoutputwindow.cpp @@ -47,6 +47,10 @@ using namespace ProjectExplorer; using namespace ProjectExplorer::Internal; +namespace { +const int MAX_LINECOUNT = 10000; +} + CompileOutputWindow::CompileOutputWindow(BuildManager * /*bm*/) { m_textEdit = new QPlainTextEdit(); @@ -92,7 +96,7 @@ QWidget *CompileOutputWindow::outputWidget(QWidget *) void CompileOutputWindow::appendText(const QString &text, const QTextCharFormat &textCharFormat) { - if (m_textEdit->document()->blockCount() > 10000) + if (m_textEdit->document()->blockCount() > MAX_LINECOUNT) return; bool shouldScroll = (m_textEdit->verticalScrollBar()->value() == m_textEdit->verticalScrollBar()->maximum()); @@ -104,7 +108,7 @@ void CompileOutputWindow::appendText(const QString &text, const QTextCharFormat cursor.beginEditBlock(); cursor.insertText(textWithNewline, textCharFormat); - if (m_textEdit->document()->blockCount() > 10000) { + if (m_textEdit->document()->blockCount() > MAX_LINECOUNT) { QTextCharFormat tmp; tmp.setFontWeight(QFont::Bold); cursor.insertText(tr("Additional output omitted\n"), tmp); @@ -160,8 +164,10 @@ bool CompileOutputWindow::canNavigate() void CompileOutputWindow::registerPositionOf(const Task &task) { - QTextBlock block(m_textEdit->textCursor().block()); - m_taskPositions.insert(task.taskId, block.position() + block.length() + 1); + int blocknumber = m_textEdit->blockCount(); + if (blocknumber > MAX_LINECOUNT) + return; + m_taskPositions.insert(task.taskId, blocknumber - 1); } bool CompileOutputWindow::knowsPositionOf(const Task &task) @@ -172,7 +178,7 @@ bool CompileOutputWindow::knowsPositionOf(const Task &task) void CompileOutputWindow::showPositionOf(const Task &task) { int position = m_taskPositions.value(task.taskId); - QTextCursor newCursor(m_textEdit->document()->findBlock(position)); + QTextCursor newCursor(m_textEdit->document()->findBlockByNumber(position)); newCursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); m_textEdit->setTextCursor(newCursor); }