From cdf2f70c60daa6c5ab8f6719c5de9d51a14ded84 Mon Sep 17 00:00:00 2001 From: Pierre Rossi <pierre.rossi@nokia.com> Date: Tue, 8 Dec 2009 21:13:58 +0100 Subject: [PATCH] "Grayout" the background of the output window on re-run configuration Maybe we'll need to add an option to toggle that on, or tweak the blending (50:50 at the moment) Reviewed-by: dt --- src/plugins/projectexplorer/outputwindow.cpp | 28 +++++++++++++++++--- src/plugins/projectexplorer/outputwindow.h | 1 + 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp index 45bdbad7431..7bacf493365 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 ce81025bdbd..e2175deaa5f 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 *); -- GitLab