From bf80aca8317fedb441a297c6948d21785d9b556a Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Thu, 20 Oct 2011 12:59:13 +0000 Subject: [PATCH] Add runControl started/finished signals to the projectexplorer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I17e6f09af61d4acf490eb48be690ddeacc10aac3 Reviewed-by: Paweł Polański --- src/plugins/projectexplorer/appoutputpane.cpp | 11 +++++++---- src/plugins/projectexplorer/appoutputpane.h | 6 ++++-- src/plugins/projectexplorer/projectexplorer.cpp | 5 +++++ src/plugins/projectexplorer/projectexplorer.h | 2 ++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp index dd1e285eb6c..aa6f9ffd084 100644 --- a/src/plugins/projectexplorer/appoutputpane.cpp +++ b/src/plugins/projectexplorer/appoutputpane.cpp @@ -299,9 +299,9 @@ void AppOutputPane::setFocus() void AppOutputPane::createNewOutputWindow(RunControl *rc) { connect(rc, SIGNAL(started()), - this, SLOT(runControlStarted())); + this, SLOT(slotRunControlStarted())); connect(rc, SIGNAL(finished()), - this, SLOT(runControlFinished()), Qt::QueuedConnection); + this, SLOT(slotRunControlFinished()), Qt::QueuedConnection); connect(rc, SIGNAL(applicationProcessHandleChanged()), this, SLOT(enableButtons())); connect(rc, SIGNAL(appendMessage(ProjectExplorer::RunControl*,QString,Utils::OutputFormat)), @@ -531,14 +531,15 @@ void AppOutputPane::contextMenuRequested(const QPoint &pos, int index) } } -void AppOutputPane::runControlStarted() +void AppOutputPane::slotRunControlStarted() { RunControl *current = currentRunControl(); if (current && current == sender()) enableButtons(current, true); // RunControl::isRunning() cannot be trusted in signal handler. + emit runControlStarted(current); } -void AppOutputPane::runControlFinished() +void AppOutputPane::slotRunControlFinished() { RunControl *senderRunControl = qobject_cast(sender()); const int senderIndex = indexOf(senderRunControl); @@ -559,6 +560,8 @@ void AppOutputPane::runControlFinished() if (m_runControlTabs.at(senderIndex).asyncClosing) closeTab(tabWidgetIndexOf(senderIndex), CloseTabNoPrompt); + emit runControlFinished(senderRunControl); + if (!isRunning()) emit allRunControlsFinished(); } diff --git a/src/plugins/projectexplorer/appoutputpane.h b/src/plugins/projectexplorer/appoutputpane.h index 397bc02dd03..f9be8b7cee3 100644 --- a/src/plugins/projectexplorer/appoutputpane.h +++ b/src/plugins/projectexplorer/appoutputpane.h @@ -88,6 +88,8 @@ public: signals: void allRunControlsFinished(); + void runControlStarted(ProjectExplorer::RunControl *rc); + void runControlFinished(ProjectExplorer::RunControl *rc); public slots: // ApplicationOutput specifics @@ -103,8 +105,8 @@ private slots: bool closeTab(int index); void tabChanged(int); void contextMenuRequested(const QPoint &pos, int index); - void runControlStarted(); - void runControlFinished(); + void slotRunControlStarted(); + void slotRunControlFinished(); void aboutToUnloadSession(); void updateFromSettings(); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 14798a08048..9a2979f2849 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -385,6 +385,11 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er connect(d->m_session, SIGNAL(projectRemoved(ProjectExplorer::Project *)), d->m_outputPane, SLOT(projectRemoved())); + connect(d->m_outputPane, SIGNAL(runControlStarted(ProjectExplorer::RunControl*)), + this, SIGNAL(runControlStarted(ProjectExplorer::RunControl*))); + connect(d->m_outputPane, SIGNAL(runControlFinished(ProjectExplorer::RunControl*)), + this, SIGNAL(runControlFinished(ProjectExplorer::RunControl*))); + AllProjectsFilter *allProjectsFilter = new AllProjectsFilter(this); addAutoReleasedObject(allProjectsFilter); diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h index 48979495fdd..b438e53c102 100644 --- a/src/plugins/projectexplorer/projectexplorer.h +++ b/src/plugins/projectexplorer/projectexplorer.h @@ -128,6 +128,8 @@ public: QList runControls() const; signals: + void runControlStarted(ProjectExplorer::RunControl *rc); + void runControlFinished(ProjectExplorer::RunControl *rc); void aboutToShowContextMenu(ProjectExplorer::Project *project, ProjectExplorer::Node *node);