diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 034dd07469e73c6c7110ed3222f2f666590ce019..887a77e764bc97eca771275011a3e036e895d120 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 6066b9e69d80582f8348d0902a84a5cb4600bdb0..33320cb4f379c9561d1ea84f913e3797eb56b59c 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);