QbsProjectManager: Set the default working directory in the run config

... rather than in the run config widget. Otherwise merely opening the
run settings can change the behavior of applications.

Task-number: QTCREATORBUG-19374
Change-Id: Ib227ab07d09b7a8ce34909ae0b08b6b222bcee14
Reviewed-by: Georger Araujo <georger_br@yahoo.com.br>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
This commit is contained in:
Christian Kandeler
2017-11-28 16:31:13 +01:00
parent 173ed5b6fd
commit 9488b7e604

View File

@@ -131,8 +131,14 @@ QbsRunConfiguration::QbsRunConfiguration(Target *target)
}); });
connect(BuildManager::instance(), &BuildManager::buildStateChanged, this, connect(BuildManager::instance(), &BuildManager::buildStateChanged, this,
[this, project](Project *p) { [this, project](Project *p) {
if (p == project && !BuildManager::isBuilding(p)) if (p == project && !BuildManager::isBuilding(p)) {
const QString defaultWorkingDir = baseWorkingDirectory();
if (!defaultWorkingDir.isEmpty()) {
extraAspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(
Utils::FileName::fromString(defaultWorkingDir));
}
emit enabledChanged(); emit enabledChanged();
}
} }
); );
@@ -334,7 +340,6 @@ void QbsRunConfigurationWidget::targetInformationHasChanged()
setExecutableLineText(m_rc->executable()); setExecutableLineText(m_rc->executable());
WorkingDirectoryAspect *aspect = m_rc->extraAspect<WorkingDirectoryAspect>(); WorkingDirectoryAspect *aspect = m_rc->extraAspect<WorkingDirectoryAspect>();
aspect->setDefaultWorkingDirectory(Utils::FileName::fromString(m_rc->baseWorkingDirectory()));
aspect->pathChooser()->setBaseFileName(m_rc->target()->project()->projectDirectory()); aspect->pathChooser()->setBaseFileName(m_rc->target()->project()->projectDirectory());
m_ignoreChange = false; m_ignoreChange = false;
} }