From aa8e2e8e0f55e1a4da23197b9db272e802c2944b Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Fri, 17 Sep 2010 14:58:07 +0200
Subject: [PATCH] Allow relative paths in Build directories, Working
 Directories

Relative to the project's directory.
---
 src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp      | 1 +
 src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp       | 1 +
 src/plugins/genericprojectmanager/genericproject.cpp            | 1 +
 .../projectexplorer/customexecutablerunconfiguration.cpp        | 2 ++
 src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp        | 1 +
 src/plugins/qt4projectmanager/qt4runconfiguration.cpp           | 1 +
 6 files changed, 7 insertions(+)

diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
index ffbf7b2788b..d05c672c269 100644
--- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
@@ -251,6 +251,7 @@ ShadowBuildPage::ShadowBuildPage(CMakeOpenProjectWizard *cmakeWizard, bool chang
                           "with different settings."));
     fl->addWidget(label);
     m_pc = new Utils::PathChooser(this);
+    m_pc->setBaseDirectory(m_cmakeWizard->sourceDirectory());
     m_pc->setPath(m_cmakeWizard->buildDirectory());
     connect(m_pc, SIGNAL(changed(QString)), this, SLOT(buildDirectoryChanged()));
     fl->addRow(tr("Build directory:"), m_pc);
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index 8daf3947d99..8549e05359a 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -333,6 +333,7 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *
     fl->addRow(tr("Arguments:"), argumentsLineEdit);
 
     m_workingDirectoryEdit = new Utils::PathChooser();
+    m_workingDirectoryEdit->setBaseDirectory(m_cmakeRunConfiguration->target()->project()->projectDirectory());
     m_workingDirectoryEdit->setPath(m_cmakeRunConfiguration->workingDirectory());
     m_workingDirectoryEdit->setExpectedKind(Utils::PathChooser::Directory);
     m_workingDirectoryEdit->setPromptDialogTitle(tr("Select Working Directory"));
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index 64e2674f139..0f85ca928fd 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -478,6 +478,7 @@ GenericBuildSettingsWidget::GenericBuildSettingsWidget(GenericProject *project)
     // build directory
     m_pathChooser = new Utils::PathChooser(this);
     m_pathChooser->setEnabled(true);
+    m_pathChooser->setBaseDirectory(project->projectDirectory());
     fl->addRow(tr("Build directory:"), m_pathChooser);
     connect(m_pathChooser, SIGNAL(changed(QString)), this, SLOT(buildDirectoryChanged()));
 
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
index 8ad1bf897d1..8dffa826eb0 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
@@ -35,6 +35,7 @@
 #include <projectexplorer/environmenteditmodel.h>
 #include <projectexplorer/debugginghelper.h>
 #include <projectexplorer/target.h>
+#include <projectexplorer/project.h>
 #include <utils/detailswidget.h>
 #include <utils/pathchooser.h>
 #include <utils/debuggerlanguagechooser.h>
@@ -98,6 +99,7 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE
 
     m_workingDirectory = new CustomDirectoryPathChooser(this);
     m_workingDirectory->setExpectedKind(Utils::PathChooser::Directory);
+    m_workingDirectory->setBaseDirectory(rc->target()->project()->projectDirectory());
     layout->addRow(tr("Working directory:"), m_workingDirectory);
 
     m_useTerminalCheck = new QCheckBox(tr("Run in &Terminal"), this);
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
index 374806bd01b..3734bcad1a8 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
@@ -77,6 +77,7 @@ Qt4ProjectConfigWidget::Qt4ProjectConfigWidget(Qt4Project *project)
 
     m_ui->shadowBuildDirEdit->setPromptDialogTitle(tr("Shadow Build Directory"));
     m_ui->shadowBuildDirEdit->setExpectedKind(Utils::PathChooser::Directory);
+    m_ui->shadowBuildDirEdit->setBaseDirectory(project->projectDirectory());
 
     connect(m_ui->shadowBuildCheckBox, SIGNAL(clicked(bool)),
             this, SLOT(shadowBuildClicked(bool)));
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
index 601f292efe8..0c672b20913 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
@@ -207,6 +207,7 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
 
     m_workingDirectoryEdit = new Utils::PathChooser(this);
     m_workingDirectoryEdit->setPath(m_qt4RunConfiguration->workingDirectory());
+    m_workingDirectoryEdit->setBaseDirectory(m_qt4RunConfiguration->target()->project()->projectDirectory());
     m_workingDirectoryEdit->setExpectedKind(Utils::PathChooser::Directory);
     m_workingDirectoryEdit->setPromptDialogTitle(tr("Select Working Directory"));
 
-- 
GitLab