/*========================================================================= Program: vv Language: C++ Author : Joel Schaerer (joel.schaerer@insa-lyon.fr) Copyright (C) 2008 Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr CREATIS-LRMN http://www.creatis.insa-lyon.fr This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . =========================================================================*/ #include #include #include #include "clitkCommon.h" #include "vvUtils.h" const std::string vv_user_file=".vv_settings.txt"; typedef std::list FileListType; ///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(); return result; } ///Adds an image to the list of recently opened images 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(); }