diff --git a/include/library/recentfiles.hpp b/include/library/recentfiles.hpp index 736a4542..ff44d8e5 100644 --- a/include/library/recentfiles.hpp +++ b/include/library/recentfiles.hpp @@ -41,6 +41,21 @@ public: std::vector files; }; +class namedobj +{ +public: + namedobj(); + std::string serialize() const; + static namedobj deserialize(const std::string& s); + bool check() const; + std::string display() const; + bool operator==(const namedobj& p) const; + + std::string _id; + std::string _filename; + std::string _display; +}; + struct hook { virtual ~hook(); diff --git a/src/library/recentfiles.cpp b/src/library/recentfiles.cpp index d89c40ab..369fae26 100644 --- a/src/library/recentfiles.cpp +++ b/src/library/recentfiles.cpp @@ -38,7 +38,6 @@ bool path::check() const return false; try { return zip::file_exists(pth); - return true; } catch(...) { return false; } @@ -170,6 +169,45 @@ bool multirom::operator==(const multirom& p) const return true; } +namedobj::namedobj() +{ +} + +std::string namedobj::serialize() const +{ + if(_id == "" && _filename == "" && _display == "") return ""; + JSON::node output(JSON::object); + output["id"] = JSON::string(_id); + output["filename"] = JSON::string(_filename); + output["display"] = JSON::string(_display); + return output.serialize(); +} + +namedobj namedobj::deserialize(const std::string& s) +{ + namedobj obj; + JSON::node d(s); + if(d.field_exists("id")) obj._id = d["id"].as_string8(); + if(d.field_exists("filename")) obj._filename = d["filename"].as_string8(); + if(d.field_exists("display")) obj._display = d["display"].as_string8(); + return obj; +} + +bool namedobj::check() const +{ + return zip::file_exists(_filename); +} + +std::string namedobj::display() const +{ + return _display; +} + +bool namedobj::operator==(const namedobj& p) const +{ + return (_id == p._id); +} + template set::set(const std::string& _cfgfile, size_t _maxcount) { cfgfile = _cfgfile; @@ -269,5 +307,10 @@ void _dummy_63263632747434353545() eat_argument(&set::add_hook); eat_argument(&set::remove_hook); eat_argument(&set::get); + set z("", 0); + eat_argument(&set::add); + eat_argument(&set::add_hook); + eat_argument(&set::remove_hook); + eat_argument(&set::get); } }