diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp index 59e8a64b5bf..fbc44cd246c 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp @@ -53,6 +53,7 @@ #include #include #include +#include using namespace CMakeProjectManager; using namespace CMakeProjectManager::Internal; @@ -138,6 +139,11 @@ ProjectExplorer::LocalApplicationRunConfiguration::RunMode CMakeRunConfiguration return m_runMode; } +void CMakeRunConfiguration::setRunMode(RunMode runMode) +{ + m_runMode = runMode; +} + QString CMakeRunConfiguration::workingDirectory() const { return QDir::cleanPath(environment().expandVariables( @@ -347,6 +353,10 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration * fl->addRow(tr("Working directory:"), boxlayout); + QCheckBox *runInTerminal = new QCheckBox; + fl->addRow(tr("Run in Terminal"), runInTerminal); + + QWidget *debuggerLabelWidget = new QWidget(this); QVBoxLayout *debuggerLabelLayout = new QVBoxLayout(debuggerLabelWidget); debuggerLabelLayout->setMargin(0); @@ -411,6 +421,9 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration * connect(resetButton, SIGNAL(clicked()), this, SLOT(resetWorkingDirectory())); + connect(runInTerminal, SIGNAL(toggled(bool)), + this, SLOT(runInTerminalToggled(bool))); + connect(m_debuggerLanguageChooser, SIGNAL(cppLanguageToggled(bool)), this, SLOT(useCppDebuggerToggled(bool))); connect(m_debuggerLanguageChooser, SIGNAL(qmlLanguageToggled(bool)), @@ -455,6 +468,12 @@ void CMakeRunConfigurationWidget::resetWorkingDirectory() m_cmakeRunConfiguration->setUserWorkingDirectory(QString()); } +void CMakeRunConfigurationWidget::runInTerminalToggled(bool toggled) +{ + m_cmakeRunConfiguration->setRunMode(toggled ? ProjectExplorer::LocalApplicationRunConfiguration::Console + : ProjectExplorer::LocalApplicationRunConfiguration::Gui); +} + void CMakeRunConfigurationWidget::useCppDebuggerToggled(bool toggled) { m_cmakeRunConfiguration->setUseCppDebugger(toggled); diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h index 0dfaf349a57..abacd6cd8c4 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h @@ -72,6 +72,7 @@ public: QString executable() const; RunMode runMode() const; + void setRunMode(RunMode runMode); QString workingDirectory() const; QString commandLineArguments() const; Utils::Environment environment() const; @@ -145,11 +146,11 @@ private slots: void userChangesChanged(); void setWorkingDirectory(); void resetWorkingDirectory(); + void runInTerminalToggled(bool toggled); void useCppDebuggerToggled(bool toggled); void useQmlDebuggerToggled(bool toggled); void qmlDebugServerPortChanged(uint port); -private slots: void baseEnvironmentComboBoxChanged(int index); void workingDirectoryChanged(const QString &workingDirectory);