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

View File

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