diff options
Diffstat (limited to 'core/src/Model/GlobalStates.hpp')
-rw-r--r-- | core/src/Model/GlobalStates.hpp | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/core/src/Model/GlobalStates.hpp b/core/src/Model/GlobalStates.hpp deleted file mode 100644 index cc41bd5..0000000 --- a/core/src/Model/GlobalStates.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once - -#include "Utils/Sigslot.hpp" -#include "cplt_fwd.hpp" - -#include <filesystem> -#include <string> -#include <vector> - -class GlobalStates -{ -public: - static void Init(); - static void Init(std::filesystem::path userDataDir); - static void Shutdown(); - - static GlobalStates& GetInstance(); - static const std::filesystem::path& GetUserDataPath(); - - struct RecentProject - { - std::filesystem::path Path; - std::string CachedUtf8String; - }; - -public: - Signal<> OnModified; - -private: - std::vector<RecentProject> mRecentProjects; - std::unique_ptr<Project> mCurrentProject; - mutable bool mDirty = false; - -public: - const std::vector<RecentProject>& GetRecentProjects() const; - void ClearRecentProjects(); - void AddRecentProject(const Project& project); - /// Move or add the project to end of the recent projects list. - /// If the project is not in the list of recently used projects, it will be appended, otherwise - /// it will be moved to the end. - void MoveProjectToTop(const Project& project); - void RemoveRecentProject(int idx); - - bool HasCurrentProject() const; - Project* GetCurrentProject() const; - void SetCurrentProject(std::unique_ptr<Project> project); - - // TODO async autosaving to prevent data loss on crash - void WriteToDisk() const; - - bool IsDirty() const; - -private: - void MarkDirty(); -}; |