forked from qt-creator/qt-creator
Fix showoutput taskhandler
* Was broken after recent change to compileoutputwindow. * simplify logic a bit while at it.
This commit is contained in:
@@ -47,6 +47,10 @@
|
|||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
using namespace ProjectExplorer::Internal;
|
using namespace ProjectExplorer::Internal;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
const int MAX_LINECOUNT = 10000;
|
||||||
|
}
|
||||||
|
|
||||||
CompileOutputWindow::CompileOutputWindow(BuildManager * /*bm*/)
|
CompileOutputWindow::CompileOutputWindow(BuildManager * /*bm*/)
|
||||||
{
|
{
|
||||||
m_textEdit = new QPlainTextEdit();
|
m_textEdit = new QPlainTextEdit();
|
||||||
@@ -92,7 +96,7 @@ QWidget *CompileOutputWindow::outputWidget(QWidget *)
|
|||||||
|
|
||||||
void CompileOutputWindow::appendText(const QString &text, const QTextCharFormat &textCharFormat)
|
void CompileOutputWindow::appendText(const QString &text, const QTextCharFormat &textCharFormat)
|
||||||
{
|
{
|
||||||
if (m_textEdit->document()->blockCount() > 10000)
|
if (m_textEdit->document()->blockCount() > MAX_LINECOUNT)
|
||||||
return;
|
return;
|
||||||
bool shouldScroll = (m_textEdit->verticalScrollBar()->value() ==
|
bool shouldScroll = (m_textEdit->verticalScrollBar()->value() ==
|
||||||
m_textEdit->verticalScrollBar()->maximum());
|
m_textEdit->verticalScrollBar()->maximum());
|
||||||
@@ -104,7 +108,7 @@ void CompileOutputWindow::appendText(const QString &text, const QTextCharFormat
|
|||||||
cursor.beginEditBlock();
|
cursor.beginEditBlock();
|
||||||
cursor.insertText(textWithNewline, textCharFormat);
|
cursor.insertText(textWithNewline, textCharFormat);
|
||||||
|
|
||||||
if (m_textEdit->document()->blockCount() > 10000) {
|
if (m_textEdit->document()->blockCount() > MAX_LINECOUNT) {
|
||||||
QTextCharFormat tmp;
|
QTextCharFormat tmp;
|
||||||
tmp.setFontWeight(QFont::Bold);
|
tmp.setFontWeight(QFont::Bold);
|
||||||
cursor.insertText(tr("Additional output omitted\n"), tmp);
|
cursor.insertText(tr("Additional output omitted\n"), tmp);
|
||||||
@@ -160,8 +164,10 @@ bool CompileOutputWindow::canNavigate()
|
|||||||
|
|
||||||
void CompileOutputWindow::registerPositionOf(const Task &task)
|
void CompileOutputWindow::registerPositionOf(const Task &task)
|
||||||
{
|
{
|
||||||
QTextBlock block(m_textEdit->textCursor().block());
|
int blocknumber = m_textEdit->blockCount();
|
||||||
m_taskPositions.insert(task.taskId, block.position() + block.length() + 1);
|
if (blocknumber > MAX_LINECOUNT)
|
||||||
|
return;
|
||||||
|
m_taskPositions.insert(task.taskId, blocknumber - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CompileOutputWindow::knowsPositionOf(const Task &task)
|
bool CompileOutputWindow::knowsPositionOf(const Task &task)
|
||||||
@@ -172,7 +178,7 @@ bool CompileOutputWindow::knowsPositionOf(const Task &task)
|
|||||||
void CompileOutputWindow::showPositionOf(const Task &task)
|
void CompileOutputWindow::showPositionOf(const Task &task)
|
||||||
{
|
{
|
||||||
int position = m_taskPositions.value(task.taskId);
|
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);
|
newCursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
|
||||||
m_textEdit->setTextCursor(newCursor);
|
m_textEdit->setTextCursor(newCursor);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user