OSDN Git Service

Make Console apps check the run in terminal option
authordt <qtc-committer@nokia.com>
Thu, 12 May 2011 12:05:14 +0000 (14:05 +0200)
committerdt <qtc-committer@nokia.com>
Thu, 12 May 2011 12:05:33 +0000 (14:05 +0200)
Task-Nr: QTCREATORBUG-4877

src/plugins/qt4projectmanager/qt-desktop/qt4desktoptarget.cpp
src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h

index 19e8d66..1b9e821 100644 (file)
@@ -69,9 +69,11 @@ void Qt4DesktopTarget::createApplicationProFiles()
 
     // We use the list twice
     QList<Qt4ProFileNode *> profiles = qt4Project()->applicationProFiles();
-    QSet<QString> paths;
-    foreach (Qt4ProFileNode *pro, profiles)
-        paths << pro->path();
+    QHash<QString, bool> paths;
+    foreach (Qt4ProFileNode *pro, profiles) {
+        bool isConsole = pro->variableValue(ConfigVar).contains(QLatin1String("console"));
+        paths.insert(pro->path(), isConsole);
+    }
 
     foreach (ProjectExplorer::RunConfiguration *rc, runConfigurations())
         if (Qt4RunConfiguration *qt4rc = qobject_cast<Qt4RunConfiguration *>(rc)) {
@@ -79,8 +81,14 @@ void Qt4DesktopTarget::createApplicationProFiles()
         }
 
     // Only add new runconfigurations if there are none.
-    foreach (const QString &path, paths)
-        addRunConfiguration(new Qt4RunConfiguration(this, path));
+    QHash<QString, bool>::const_iterator it, end;
+    end = paths.constEnd();
+    for (it = paths.constBegin(); it != end; ++it) {
+        Qt4RunConfiguration *qt4rc = new Qt4RunConfiguration(this, it.key());
+        if (it.value())
+            qt4rc->setRunMode(ProjectExplorer::LocalApplicationRunConfiguration::Console);
+        addRunConfiguration(qt4rc);
+    }
 
     // Oh still none? Add a custom executable runconfiguration
     if (runConfigurations().isEmpty()) {
index b20fc4d..7187075 100644 (file)
@@ -104,6 +104,7 @@ public:
 
     Utils::OutputFormatter *createOutputFormatter() const;
 
+    void setRunMode(RunMode runMode);
 signals:
     void commandLineArgumentsChanged(const QString&);
     void baseWorkingDirectoryChanged(const QString&);
@@ -125,7 +126,6 @@ protected:
 
 private:
     void handleParseState(bool success);
-    void setRunMode(RunMode runMode);
     void setBaseWorkingDirectory(const QString &workingDirectory);
     QString baseWorkingDirectory() const;
     void setCommandLineArguments(const QString &argumentsString);