From 64c23b271cc558a7c167d1c047b2292bcf4d9145 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Thu, 8 Oct 2009 16:30:17 +0200
Subject: [PATCH] Add a startRunControl() method.

For plugins that create runcontrols in unsual ways
---
 .../projectexplorer/projectexplorer.cpp       | 43 +++++++++++--------
 src/plugins/projectexplorer/projectexplorer.h |  3 ++
 2 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 034dd07469e..887a77e764b 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -1230,29 +1230,34 @@ void ProjectExplorerPlugin::executeRunConfiguration(const QSharedPointer<RunConf
         emit aboutToExecuteProject(runConfiguration->project());
 
         RunControl *control = runControlFactory->create(runConfiguration, runMode);
-        d->m_outputPane->createNewOutputWindow(control);
-        if (runMode == ProjectExplorer::Constants::RUNMODE)
-            d->m_outputPane->popup(false);
-        d->m_outputPane->showTabFor(control);
-
-        connect(control, SIGNAL(addToOutputWindow(RunControl *, const QString &)),
-                this, SLOT(addToApplicationOutputWindow(RunControl *, const QString &)));
-        connect(control, SIGNAL(addToOutputWindowInline(RunControl *, const QString &)),
-                this, SLOT(addToApplicationOutputWindowInline(RunControl *, const QString &)));
-        connect(control, SIGNAL(error(RunControl *, const QString &)),
-                this, SLOT(addErrorToApplicationOutputWindow(RunControl *, const QString &)));
-        connect(control, SIGNAL(finished()),
-                this, SLOT(runControlFinished()));
-
-        if (runMode == ProjectExplorer::Constants::DEBUGMODE)
-            d->m_debuggingRunControl = control;
-
-        control->start();
-        updateRunAction();
+        startRunControl(control, runMode);
     }
 
 }
 
+void ProjectExplorerPlugin::startRunControl(RunControl *runControl, const QString &runMode)
+{
+    d->m_outputPane->createNewOutputWindow(runControl);
+    if (runMode == ProjectExplorer::Constants::RUNMODE)
+        d->m_outputPane->popup(false);
+    d->m_outputPane->showTabFor(runControl);
+
+    connect(runControl, SIGNAL(addToOutputWindow(RunControl *, const QString &)),
+            this, SLOT(addToApplicationOutputWindow(RunControl *, const QString &)));
+    connect(runControl, SIGNAL(addToOutputWindowInline(RunControl *, const QString &)),
+            this, SLOT(addToApplicationOutputWindowInline(RunControl *, const QString &)));
+    connect(runControl, SIGNAL(error(RunControl *, const QString &)),
+            this, SLOT(addErrorToApplicationOutputWindow(RunControl *, const QString &)));
+    connect(runControl, SIGNAL(finished()),
+            this, SLOT(runControlFinished()));
+
+    if (runMode == ProjectExplorer::Constants::DEBUGMODE)
+        d->m_debuggingRunControl = runControl;
+
+    runControl->start();
+    updateRunAction();
+}
+
 void ProjectExplorerPlugin::buildQueueFinished(bool success)
 {
     if (debug)
diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h
index 6066b9e69d8..33320cb4f37 100644
--- a/src/plugins/projectexplorer/projectexplorer.h
+++ b/src/plugins/projectexplorer/projectexplorer.h
@@ -184,9 +184,12 @@ private slots:
     void loadProject(const QString &project) { openProject(project); }
     void currentModeChanged(Core::IMode *mode);
 
+    void ProjectExplorerPlugin::startRunControl(RunControl *runControl, const QString &mode);
+
 private:
     void runProjectImpl(Project *pro);
     void executeRunConfiguration(const QSharedPointer<RunConfiguration> &, const QString &mode);
+
     void setCurrent(Project *project, QString filePath, Node *node);
 
     QStringList allFilesWithDependencies(Project *pro);
-- 
GitLab