OSDN Git Service

Run/Debug: Do not launch on a library project if user cancels
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Mon, 18 Apr 2011 11:01:12 +0000 (13:01 +0200)
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>
Mon, 18 Apr 2011 11:01:12 +0000 (13:01 +0200)
the executable dialog that pops up.

Reviewed-by: dt
src/plugins/debugger/debuggerrunner.cpp
src/plugins/projectexplorer/localapplicationruncontrol.cpp

index b0b2b60..782343b 100644 (file)
@@ -237,6 +237,15 @@ void DebuggerRunControl::setCustomEnvironment(Utils::Environment env)
 void DebuggerRunControl::start()
 {
     QTC_ASSERT(d->m_engine, return);
+    // User canceled input dialog asking for executable when working on library project.
+    if (d->m_engine->startParameters().startMode == StartInternal
+        && d->m_engine->startParameters().executable.isEmpty()) {
+        appendMessage(tr("No executable specified.\n"), ErrorMessageFormat);
+        emit started();
+        emit finished();
+        return;
+    }
+
     debuggerCore()->runControlStarted(d->m_engine);
 
     // We might get a synchronous startFailed() notification on Windows,
index 6370702..95010da 100644 (file)
@@ -103,11 +103,15 @@ LocalApplicationRunControl::~LocalApplicationRunControl()
 
 void LocalApplicationRunControl::start()
 {
-    m_applicationLauncher.start(m_runMode, m_executable, m_commandLineArguments);
     emit started();
-
-    QString msg = tr("Starting %1...\n").arg(QDir::toNativeSeparators(m_executable));
-    appendMessage(msg, NormalMessageFormat);
+    if (m_executable.isEmpty()) {
+        appendMessage(tr("No executable specified.\n"), ErrorMessageFormat);
+        emit finished();
+    }  else {
+        m_applicationLauncher.start(m_runMode, m_executable, m_commandLineArguments);
+        QString msg = tr("Starting %1...\n").arg(QDir::toNativeSeparators(m_executable));
+        appendMessage(msg, NormalMessageFormat);
+    }
 }
 
 LocalApplicationRunControl::StopResult LocalApplicationRunControl::stop()