aboutsummaryrefslogtreecommitdiff
path: root/core/src/Model/GlobalStates.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/Model/GlobalStates.hpp')
-rw-r--r--core/src/Model/GlobalStates.hpp55
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();
-};