OSDN Git Service

debugger: move sanity check from DebuggerRunControl::start to Factory::create
authorhjk <qtc-committer@nokia.com>
Wed, 15 Dec 2010 08:34:02 +0000 (09:34 +0100)
committerhjk <qtc-committer@nokia.com>
Wed, 15 Dec 2010 08:34:02 +0000 (09:34 +0100)
src/plugins/debugger/debuggerrunner.cpp

index 5e45d67..de3fba9 100644 (file)
@@ -455,21 +455,6 @@ bool DebuggerRunControl::checkDebugConfiguration(int toolChain,
 void DebuggerRunControl::start()
 {
     QTC_ASSERT(d->m_engine, return);
-    const DebuggerStartParameters &sp = d->m_engine->startParameters();
-
-    QString errorMessage;
-    QString settingsCategory;
-    QString settingsPage;
-
-    if (!checkDebugConfiguration(sp.toolChainType,
-            &errorMessage, &settingsCategory, &settingsPage)) {
-        emit appendMessage(this, errorMessage, true);
-        emit finished();
-        Core::ICore::instance()->showWarningWithOptions(tr("Debugger"),
-            errorMessage, QString(), settingsCategory, settingsPage);
-        return;
-    }
-
     debuggerCore()->runControlStarted(d->m_engine);
 
     // We might get a synchronous startFailed() notification on Windows,
@@ -679,6 +664,18 @@ QWidget *DebuggerRunControlFactory::createConfigurationWidget
 DebuggerRunControl *DebuggerRunControlFactory::create
     (const DebuggerStartParameters &sp, RunConfiguration *runConfiguration)
 {
+    QString errorMessage;
+    QString settingsCategory;
+    QString settingsPage;
+
+    if (!DebuggerRunControl::checkDebugConfiguration(sp.toolChainType,
+            &errorMessage, &settingsCategory, &settingsPage)) {
+        //emit appendMessage(this, errorMessage, true);
+        Core::ICore::instance()->showWarningWithOptions(tr("Debugger"),
+            errorMessage, QString(), settingsCategory, settingsPage);
+        return 0;
+    }
+
     DebuggerRunControl *runControl =
         new DebuggerRunControl(runConfiguration, m_enabledEngines, sp);
     if (runControl->d->m_engine)