From dbe8efc5060a737bfa999b61e8d1c3174675945f Mon Sep 17 00:00:00 2001
From: Mathieu Doucet <doucetm@ornl.gov>
Date: Wed, 28 Sep 2011 14:14:08 +0000
Subject: [PATCH] Pick proper default for default save directory Re #2901

---
 Code/Mantid/Framework/Kernel/src/ConfigService.cpp     | 9 +++++++--
 Code/Mantid/MantidQt/API/src/ManageUserDirectories.cpp | 4 +++-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/Code/Mantid/Framework/Kernel/src/ConfigService.cpp b/Code/Mantid/Framework/Kernel/src/ConfigService.cpp
index cb63f219f42..d6fabadf095 100644
--- a/Code/Mantid/Framework/Kernel/src/ConfigService.cpp
+++ b/Code/Mantid/Framework/Kernel/src/ConfigService.cpp
@@ -175,7 +175,6 @@ ConfigServiceImpl::ConfigServiceImpl() :
   m_ConfigPaths.insert(std::make_pair("pythonscripts.directory", true));
   m_ConfigPaths.insert(std::make_pair("pythonscripts.directories", true));
   m_ConfigPaths.insert(std::make_pair("ManagedWorkspace.FilePath", true));
-  m_ConfigPaths.insert(std::make_pair("defaultsave.directory", false));
   m_ConfigPaths.insert(std::make_pair("datasearch.directories", true));
   m_ConfigPaths.insert(std::make_pair("pythonalgorithms.directories", true));
   m_ConfigPaths.insert(std::make_pair("icatDownload.directory", true));
@@ -662,8 +661,14 @@ std::string ConfigServiceImpl::defaultConfig() const
 void ConfigServiceImpl::updateConfig(const std::string& filename, const bool append,
     const bool update_caches)
 {
-  //std::cout << "Properties file loaded: " <<  filename << std::endl;
   loadConfig(filename, append);
+
+  //Ensure that the default save directory makes sense
+  std::string save_dir = getString("defaultsave.directory");
+  if (Poco::trimInPlace(save_dir).size() == 0) {
+    setString("defaultsave.directory", Poco::Path::home());
+  }
+
   if (update_caches)
   {
     // Only configure logging once
diff --git a/Code/Mantid/MantidQt/API/src/ManageUserDirectories.cpp b/Code/Mantid/MantidQt/API/src/ManageUserDirectories.cpp
index 7c239e63465..6fd4e74b470 100644
--- a/Code/Mantid/MantidQt/API/src/ManageUserDirectories.cpp
+++ b/Code/Mantid/MantidQt/API/src/ManageUserDirectories.cpp
@@ -215,7 +215,9 @@ void ManageUserDirectories::moveDown()
 void ManageUserDirectories::selectSaveDir()
 {
   QSettings settings;
-  QString lastDirectory = settings.value("ManageUserSettings/last_directory", "").toString();
+  QString lastDirectory = m_uiForm.leDefaultSave->text();
+  if ( lastDirectory.trimmed() == "" )
+    lastDirectory = settings.value("ManageUserSettings/last_directory", "").toString();
 
   QString newDir = QFileDialog::getExistingDirectory(this,
     tr("Select New Default Save Directory"),
-- 
GitLab