Qbs: Properly initialize "Run in Terminal" based on qbs properties

"Run in Terminal" is checked/unchecked according to the consoleApplication
property found in qbs.

Rename the forceGuiMode method to better describe what it is used for.

Change-Id: I485058c85563cf4d3ced0d1a5f8cb1bf89791750
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Tobias Hunger
2013-11-19 11:30:00 +01:00
parent bde1f044bc
commit f53cac7df2
2 changed files with 8 additions and 10 deletions

View File

@@ -141,6 +141,9 @@ void QbsRunConfiguration::ctor()
connect(target(), SIGNAL(activeDeployConfigurationChanged(ProjectExplorer::DeployConfiguration*)), connect(target(), SIGNAL(activeDeployConfigurationChanged(ProjectExplorer::DeployConfiguration*)),
this, SLOT(installStepChanged())); this, SLOT(installStepChanged()));
installStepChanged(); installStepChanged();
if (isConsoleApplication())
m_runMode = Console;
} }
QWidget *QbsRunConfiguration::createConfigurationWidget() QWidget *QbsRunConfiguration::createConfigurationWidget()
@@ -206,13 +209,10 @@ QString QbsRunConfiguration::executable() const
ProjectExplorer::LocalApplicationRunConfiguration::RunMode QbsRunConfiguration::runMode() const ProjectExplorer::LocalApplicationRunConfiguration::RunMode QbsRunConfiguration::runMode() const
{ {
if (forcedGuiMode())
return LocalApplicationRunConfiguration::Gui;
return m_runMode; return m_runMode;
} }
bool QbsRunConfiguration::forcedGuiMode() const bool QbsRunConfiguration::isConsoleApplication() const
{ {
QbsProject *pro = static_cast<QbsProject *>(target()->project()); QbsProject *pro = static_cast<QbsProject *>(target()->project());
const qbs::ProductData product = findProduct(pro->qbsProjectData(), m_qbsProduct); const qbs::ProductData product = findProduct(pro->qbsProjectData(), m_qbsProduct);
@@ -388,8 +388,6 @@ QbsRunConfigurationWidget::QbsRunConfigurationWidget(QbsRunConfiguration *rc, QW
QHBoxLayout *innerBox = new QHBoxLayout(); QHBoxLayout *innerBox = new QHBoxLayout();
m_useTerminalCheck = new QCheckBox(tr("Run in terminal"), this); m_useTerminalCheck = new QCheckBox(tr("Run in terminal"), this);
m_useTerminalCheck->setChecked(m_rc->runMode() == ProjectExplorer::LocalApplicationRunConfiguration::Console);
m_useTerminalCheck->setVisible(!m_rc->forcedGuiMode());
innerBox->addWidget(m_useTerminalCheck); innerBox->addWidget(m_useTerminalCheck);
innerBox->addStretch(); innerBox->addStretch();
@@ -436,6 +434,8 @@ void QbsRunConfigurationWidget::runConfigurationEnabledChange()
m_disabledIcon->setVisible(!enabled); m_disabledIcon->setVisible(!enabled);
m_disabledReason->setVisible(!enabled); m_disabledReason->setVisible(!enabled);
m_disabledReason->setText(m_rc->disabledReason()); m_disabledReason->setText(m_rc->disabledReason());
m_useTerminalCheck->setChecked(m_rc->runMode() == ProjectExplorer::LocalApplicationRunConfiguration::Console);
targetInformationHasChanged(); targetInformationHasChanged();
} }
@@ -495,10 +495,8 @@ void QbsRunConfigurationWidget::commandLineArgumentsChanged(const QString &args)
void QbsRunConfigurationWidget::runModeChanged(ProjectExplorer::LocalApplicationRunConfiguration::RunMode runMode) void QbsRunConfigurationWidget::runModeChanged(ProjectExplorer::LocalApplicationRunConfiguration::RunMode runMode)
{ {
if (!m_ignoreChange) { if (!m_ignoreChange)
m_useTerminalCheck->setVisible(!m_rc->forcedGuiMode());
m_useTerminalCheck->setChecked(runMode == ProjectExplorer::LocalApplicationRunConfiguration::Console); m_useTerminalCheck->setChecked(runMode == ProjectExplorer::LocalApplicationRunConfiguration::Console);
}
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------

View File

@@ -78,7 +78,6 @@ public:
QString executable() const; QString executable() const;
RunMode runMode() const; RunMode runMode() const;
bool forcedGuiMode() const;
QString workingDirectory() const; QString workingDirectory() const;
QString commandLineArguments() const; QString commandLineArguments() const;
@@ -91,6 +90,7 @@ public:
void addToBaseEnvironment(Utils::Environment &env) const; void addToBaseEnvironment(Utils::Environment &env) const;
QString qbsProduct() const; QString qbsProduct() const;
bool isConsoleApplication() const;
signals: signals:
void commandLineArgumentsChanged(const QString&); void commandLineArgumentsChanged(const QString&);