diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index 47446080593..5bb4845073d 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -889,8 +889,6 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm d->runId = QString::number(++toolRunCount); - RunConfiguration *runConfig = runControl->runConfiguration(); - runControl->setIcon(ProjectExplorer::Icons::DEBUG_START_SMALL_TOOLBAR); runControl->setPromptToStop([](bool *optionalPrompt) { return RunControl::showPromptToStopDialog( @@ -902,8 +900,7 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm QString(), QString(), optionalPrompt); }); - if (runConfig) - m_runParameters.displayName = runConfig->displayName(); + m_runParameters.displayName = runControl->displayName(); if (auto symbolsAspect = runControl->aspect()) m_runParameters.symbolFile = symbolsAspect->value(); @@ -938,8 +935,7 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm if (!envBinary.isEmpty()) m_runParameters.debugger.executable = QString::fromLocal8Bit(envBinary); - Project *project = runConfig ? runConfig->target()->project() : nullptr; - if (project) { + if (Project *project = runControl->project()) { m_runParameters.projectSourceDirectory = project->projectDirectory(); m_runParameters.projectSourceFiles = project->files(Project::SourceFiles); } @@ -959,6 +955,7 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm m_runParameters.validationErrors.append(t.description); } + RunConfiguration *runConfig = runControl->runConfiguration(); if (runConfig && runConfig->property("supportsDebugger").toBool()) { const QString mainScript = runConfig->property("mainScript").toString(); const QString interpreter = runConfig->property("interpreter").toString(); diff --git a/src/plugins/projectexplorer/runcontrol.cpp b/src/plugins/projectexplorer/runcontrol.cpp index c314b942278..cf1350d0840 100644 --- a/src/plugins/projectexplorer/runcontrol.cpp +++ b/src/plugins/projectexplorer/runcontrol.cpp @@ -297,6 +297,7 @@ public: QPointer runConfiguration; // Not owned. Avoid use. Kit *kit = nullptr; // Not owned. QPointer target; // Not owned. + QPointer project; // Not owned. QPointer outputFormatter = nullptr; std::function promptToStop; std::vector m_factories; @@ -339,6 +340,7 @@ void RunControl::setTarget(Target *target) QTC_CHECK(!d->target); d->target = target; setKit(target->kit()); + d->project = target->project(); } void RunControl::setKit(Kit *kit) @@ -838,7 +840,7 @@ Target *RunControl::target() const Project *RunControl::project() const { - return d->target->project(); + return d->project; } Kit *RunControl::kit() const