diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp index 45bdbad7431ddc1542102aedb70f007c03f2c329..7bacf4933651ea295aab281ac51a98fa9746adb5 100644 --- a/src/plugins/projectexplorer/outputwindow.cpp +++ b/src/plugins/projectexplorer/outputwindow.cpp @@ -200,7 +200,8 @@ void OutputPane::createNewOutputWindow(RunControl *rc) delete old; m_outputWindows.remove(old); OutputWindow *ow = static_cast<OutputWindow *>(m_tabWidget->widget(i)); - ow->appendOutput("");//New line + ow->grayOutOldContent(); + ow->verticalScrollBar()->setValue(ow->verticalScrollBar()->maximum()); m_outputWindows.insert(rc, ow); found = true; break; @@ -243,9 +244,14 @@ void OutputPane::insertLine() void OutputPane::reRunRunControl() { - RunControl *rc = runControlForTab(m_tabWidget->currentIndex()); - if (rc->runConfiguration()->project() != 0) + int index = m_tabWidget->currentIndex(); + RunControl *rc = runControlForTab(index); + if (rc->runConfiguration() && rc->runConfiguration()->project() != 0) { + OutputWindow *ow = static_cast<OutputWindow *>(m_tabWidget->widget(index)); + ow->grayOutOldContent(); + ow->verticalScrollBar()->setValue(ow->verticalScrollBar()->maximum()); rc->start(); + } } void OutputPane::stopRunControl() @@ -458,6 +464,22 @@ void OutputWindow::insertLine() enableUndoRedo(); } +void OutputWindow::grayOutOldContent() +{ + QTextCursor cursor = textCursor(); + cursor.select(QTextCursor::Document); + QTextBlockFormat tbf; + const QColor bkgColor = palette().window().color(); + const QColor fgdColor = palette().windowText().color(); + tbf.setBackground(QColor((0.5 * bkgColor.red() + 0.5* fgdColor.red()),\ + (0.5 * bkgColor.green() + 0.5* fgdColor.green()),\ + (0.5 * bkgColor.blue() + 0.5* fgdColor.blue()) )); + cursor.mergeBlockFormat(tbf); + + cursor.movePosition(QTextCursor::End); + cursor.insertBlock(QTextBlockFormat()); +} + void OutputWindow::enableUndoRedo() { setMaximumBlockCount(0); diff --git a/src/plugins/projectexplorer/outputwindow.h b/src/plugins/projectexplorer/outputwindow.h index ce81025bdbda87623d56710547b88eb979307213..e2175deaa5fc9b2c1ef21420881ecaf076e5a8f6 100644 --- a/src/plugins/projectexplorer/outputwindow.h +++ b/src/plugins/projectexplorer/outputwindow.h @@ -125,6 +125,7 @@ public: void appendOutput(const QString &out); void appendOutputInline(const QString &out); void insertLine(); + void grayOutOldContent(); void showEvent(QShowEvent *);