#include #include #include namespace hex { namespace { std::vector s_handlers; std::vector s_providerHandlers; std::fs::path s_currProjectPath; std::function s_loadProjectFunction; std::function, bool)> s_storeProjectFunction; } void ProjectFile::setProjectFunctions( const std::function &loadFun, const std::function, bool)> &storeFun ) { s_loadProjectFunction = loadFun; s_storeProjectFunction = storeFun; } bool ProjectFile::load(const std::fs::path &filePath) { return s_loadProjectFunction(filePath); } bool ProjectFile::store(std::optional filePath, bool updateLocation) { return s_storeProjectFunction(std::move(filePath), updateLocation); } bool ProjectFile::hasPath() { return !s_currProjectPath.empty(); } void ProjectFile::clearPath() { s_currProjectPath.clear(); } std::fs::path ProjectFile::getPath() { return s_currProjectPath; } void ProjectFile::setPath(const std::fs::path &path) { s_currProjectPath = path; } std::vector &ProjectFile::getHandlers() { return s_handlers; } std::vector &ProjectFile::getProviderHandlers() { return s_providerHandlers; } }