diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-02-19 14:32:16 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-02-19 14:32:16 +0000 |
| commit | 86bbc0981a60ad9ba7b7bdbf28a34f197f83f6cb (patch) | |
| tree | f59beeef8d2201de265e916292b025860f3032e3 /src/lib | |
| parent | 8c397a895b1204473ebd8df5108563b1dd0a4e1c (diff) | |
Don't display non-existant items in the history.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 26 | ||||
| -rw-r--r-- | src/lib/config.h | 3 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index bf4b49552..b742756b7 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -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) { diff --git a/src/lib/config.h b/src/lib/config.h index 21463fdb5..3518dc63f 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -861,7 +861,9 @@ public: } void add_to_history (boost::filesystem::path p); + void clean_history (); void add_to_player_history (boost::filesystem::path p); + void clean_player_history (); void set_jump_to_selected (bool j) { maybe_set (_jump_to_selected, j); @@ -1099,6 +1101,7 @@ private: boost::shared_ptr<dcp::CertificateChain> create_certificate_chain (); boost::filesystem::path directory_or (boost::optional<boost::filesystem::path> dir, boost::filesystem::path a) const; void add_to_history_internal (std::vector<boost::filesystem::path>& h, boost::filesystem::path p); + void clean_history_internal (std::vector<boost::filesystem::path>& h); void backup (); template <class T> |
