From 9488b7e604d081552a97f66fe08bbdd38be38e6b Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 28 Nov 2017 16:31:13 +0100 Subject: [PATCH] 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 Reviewed-by: Jake Petroules --- src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp index 12d7549b9a8..e69089bbde5 100644 --- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp @@ -131,8 +131,14 @@ QbsRunConfiguration::QbsRunConfiguration(Target *target) }); connect(BuildManager::instance(), &BuildManager::buildStateChanged, this, [this, project](Project *p) { - if (p == project && !BuildManager::isBuilding(p)) + if (p == project && !BuildManager::isBuilding(p)) { + const QString defaultWorkingDir = baseWorkingDirectory(); + if (!defaultWorkingDir.isEmpty()) { + extraAspect()->setDefaultWorkingDirectory( + Utils::FileName::fromString(defaultWorkingDir)); + } emit enabledChanged(); + } } ); @@ -334,7 +340,6 @@ void QbsRunConfigurationWidget::targetInformationHasChanged() setExecutableLineText(m_rc->executable()); WorkingDirectoryAspect *aspect = m_rc->extraAspect(); - aspect->setDefaultWorkingDirectory(Utils::FileName::fromString(m_rc->baseWorkingDirectory())); aspect->pathChooser()->setBaseFileName(m_rc->target()->project()->projectDirectory()); m_ignoreChange = false; }