Don't display non-existant items in the history.
[dcpomatic.git] / src / lib / config.cc
index bf4b495523cd10433e3b80549fd5ac7db67ff279..b742756b7eb55197205a85fe6a69acbbdb0cf2ce 100644 (file)
@@ -1172,12 +1172,26 @@ Config::add_to_history (boost::filesystem::path p)
        add_to_history_internal (_history, p);
 }
 
+/** Remove non-existant items from the history */
+void
+Config::clean_history ()
+{
+       clean_history_internal (_history);
+}
+
 void
 Config::add_to_player_history (boost::filesystem::path p)
 {
        add_to_history_internal (_player_history, p);
 }
 
+/** Remove non-existant items from the player history */
+void
+Config::clean_player_history ()
+{
+       clean_history_internal (_player_history);
+}
+
 void
 Config::add_to_history_internal (vector<boost::filesystem::path>& h, boost::filesystem::path p)
 {
@@ -1192,6 +1206,18 @@ Config::add_to_history_internal (vector<boost::filesystem::path>& h, boost::file
        changed (HISTORY);
 }
 
+void
+Config::clean_history_internal (vector<boost::filesystem::path>& h)
+{
+       vector<boost::filesystem::path> old = h;
+       h.clear ();
+       BOOST_FOREACH (boost::filesystem::path i, old) {
+               if (boost::filesystem::is_directory(i)) {
+                       h.push_back (i);
+               }
+       }
+}
+
 bool
 Config::have_existing (string file)
 {