diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptarget.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptarget.cpp index 19e8d662a0de6cf3a497bc9b5aa089331b75d60e..1b9e8216ff497ab00f01be0d6614b59748fe8931 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptarget.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptarget.cpp @@ -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()) { diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h index b20fc4d5c3a0b32bfb93c29f3483cf5f1f09445b..71870757e9ef2ccbda0f4e037dfd56b1347c5605 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h @@ -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);