]> Creatis software - clitk.git/blobdiff - vv/vvUtils.cxx
- version of vv in vvCommon.h
[clitk.git] / vv / vvUtils.cxx
index 441b4b3731970f44b92e8a7a013b6f5219ebf3d8..361c7809f4fc22867c08b6771cd81f14af45549b 100644 (file)
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
 ===========================================================================**/
-#include <fstream>
+#include <sstream>
 #include <algorithm>
 #include <QDir>
-
+#include <QSettings>
 #include "clitkCommon.h"
 #include "vvUtils.h"
 
 const std::string vv_user_file=".vv_settings.txt";
 typedef std::list<std::string> FileListType;
 
+static QSettings settings(QDir::homePath()+QString::fromStdString("/"+vv_user_file), QSettings::NativeFormat);
 ///Returns the last images opened by the user
 FileListType GetRecentlyOpenedImages()
 {
-  std::ifstream in((QDir::homePath().toStdString() + "/" + vv_user_file).c_str());
-  std::string current_file;
   FileListType result;
-  in >> current_file;
-  while (in.good()) {
-    result.push_back(current_file);
-    in >> current_file;
-  }
-  in.close();
+  settings.beginGroup("recentFiles");
+    QStringList keys = settings.childKeys();
+    for(int i=0; i<keys.size(); i++){
+      std::string value=settings.value(QString::fromStdString (keys[i].toStdString())).toString().toStdString();
+      result.push_back(value);
+    }
+  settings.endGroup();
   return result;
 }
 
@@ -44,14 +44,19 @@ FileListType GetRecentlyOpenedImages()
 void AddToRecentlyOpenedImages(std::string filename)
 {
   FileListType file_list = GetRecentlyOpenedImages();
+  
   FileListType::iterator i = std::find(file_list.begin(),file_list.end(),filename);
   if (i != file_list.end()) // avoid dupes
     file_list.erase(i);
   while (file_list.size() >= 6) //keep list to a reasonable size
     file_list.pop_back();
   file_list.push_front(filename);
-  std::ofstream out((QDir::homePath().toStdString() + "/" + vv_user_file).c_str(),std::ios_base::out | std::ios_base::trunc);
-  for (FileListType::iterator j = file_list.begin() ; j != file_list.end() ; j++)
-    out << (*j) << std::endl;
-  out.close();
+  
+  settings.beginGroup("recentFiles");
+  int index=0;
+  for (FileListType::iterator j = file_list.begin() ; j != file_list.end() ; j++){
+    QString s=QString(index++);
+    settings.setValue(s, QString::fromStdString ( *j ));
+  }
+  settings.endGroup();
 }