From 807c3a5ad2c79a3da28c6740b36401a3960e9226 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 10 Feb 2015 13:02:46 +0100 Subject: [PATCH] Debugger: Start to disentangle DebuggerStartParameter setup Change-Id: Ife19d506146806d965a2552b1390fae4545b3459 Reviewed-by: Christian Stenger --- src/plugins/debugger/debuggerruncontrol.cpp | 64 +++++++++------------ 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index 81c0e73d867..a7e667d636b 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -381,41 +381,6 @@ RunControl *DebuggerRunControlFactory::create return doCreate(sp, runConfiguration, errorMessage); } -static bool fixupEngineTypes(DebuggerStartParameters &sp, RunConfiguration *rc, QString *errorMessage) -{ - if (sp.masterEngineType != NoEngineType) - return true; - - if (sp.executable.endsWith(_(".py"))) { - sp.masterEngineType = PdbEngineType; - return true; - } - - if (rc) { - DebuggerRunConfigurationAspect *aspect - = rc->extraAspect(); - if (const Target *target = rc->target()) - if (!DebuggerRunControlFactory::fillParametersFromKit(&sp, target->kit(), errorMessage)) - return false; - const bool useCppDebugger = aspect->useCppDebugger() && (sp.languages & CppLanguage); - const bool useQmlDebugger = aspect->useQmlDebugger() && (sp.languages & QmlLanguage); - if (useQmlDebugger) { - if (useCppDebugger) { - sp.masterEngineType = QmlCppEngineType; - sp.firstSlaveEngineType = sp.cppEngineType; - sp.secondSlaveEngineType = QmlCppEngineType; - } else { - sp.masterEngineType = QmlEngineType; - } - } else { - sp.masterEngineType = sp.cppEngineType; - } - return true; - } - sp.masterEngineType = sp.cppEngineType; - return true; -} - DebuggerRunControl *DebuggerRunControlFactory::doCreate (const DebuggerStartParameters &sp0, RunConfiguration *rc, QString *errorMessage) { @@ -435,9 +400,36 @@ DebuggerRunControl *DebuggerRunControlFactory::doCreate } } - if (!fixupEngineTypes(sp, rc, errorMessage)) + if (sp.masterEngineType == NoEngineType) return 0; + if (sp.executable.endsWith(_(".py"))) { + sp.masterEngineType = PdbEngineType; + } else { + if (rc) { + DebuggerRunConfigurationAspect *aspect + = rc->extraAspect(); + if (const Target *target = rc->target()) + if (!DebuggerRunControlFactory::fillParametersFromKit(&sp, target->kit(), errorMessage)) + return 0; + const bool useCppDebugger = aspect->useCppDebugger() && (sp.languages & CppLanguage); + const bool useQmlDebugger = aspect->useQmlDebugger() && (sp.languages & QmlLanguage); + if (useQmlDebugger) { + if (useCppDebugger) { + sp.masterEngineType = QmlCppEngineType; + sp.firstSlaveEngineType = sp.cppEngineType; + sp.secondSlaveEngineType = QmlCppEngineType; + } else { + sp.masterEngineType = QmlEngineType; + } + } else { + sp.masterEngineType = sp.cppEngineType; + } + } else { + sp.masterEngineType = sp.cppEngineType; + } + } + QString error; DebuggerEngine *engine = createEngine(sp.masterEngineType, sp, &error); if (!engine) {