summaryrefslogtreecommitdiff
path: root/core/src/Model/GlobalStates.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/Model/GlobalStates.cpp')
-rw-r--r--core/src/Model/GlobalStates.cpp39
1 files changed, 26 insertions, 13 deletions
diff --git a/core/src/Model/GlobalStates.cpp b/core/src/Model/GlobalStates.cpp
index 0c4e58e..4004f4a 100644
--- a/core/src/Model/GlobalStates.cpp
+++ b/core/src/Model/GlobalStates.cpp
@@ -16,11 +16,13 @@ namespace fs = std::filesystem;
static std::unique_ptr<GlobalStates> globalStateInstance;
static fs::path globalDataPath;
-void GlobalStates::Init() {
+void GlobalStates::Init()
+{
Init(StandardDirectories::UserData() / "cplt");
}
-void GlobalStates::Init(std::filesystem::path userDataDir) {
+void GlobalStates::Init(std::filesystem::path userDataDir)
+{
globalStateInstance = std::make_unique<GlobalStates>();
globalDataPath = userDataDir;
fs::create_directories(globalDataPath);
@@ -51,31 +53,37 @@ void GlobalStates::Init(std::filesystem::path userDataDir) {
}();
}
-void GlobalStates::Shutdown() {
+void GlobalStates::Shutdown()
+{
if (!globalStateInstance) return;
if (globalStateInstance->mDirty) {
globalStateInstance->WriteToDisk();
}
}
-GlobalStates& GlobalStates::GetInstance() {
+GlobalStates& GlobalStates::GetInstance()
+{
return *globalStateInstance;
}
-const std::filesystem::path& GlobalStates::GetUserDataPath() {
+const std::filesystem::path& GlobalStates::GetUserDataPath()
+{
return globalDataPath;
}
-const std::vector<GlobalStates::RecentProject>& GlobalStates::GetRecentProjects() const {
+const std::vector<GlobalStates::RecentProject>& GlobalStates::GetRecentProjects() const
+{
return mRecentProjects;
}
-void GlobalStates::ClearRecentProjects() {
+void GlobalStates::ClearRecentProjects()
+{
mRecentProjects.clear();
MarkDirty();
}
-void GlobalStates::AddRecentProject(const Project& project) {
+void GlobalStates::AddRecentProject(const Project& project)
+{
mRecentProjects.push_back(RecentProject{
.path = project.GetPath(),
.cachedUtf8String = project.GetPath().string(),
@@ -83,7 +91,8 @@ void GlobalStates::AddRecentProject(const Project& project) {
MarkDirty();
}
-void GlobalStates::MoveProjectToTop(const Project& project) {
+void GlobalStates::MoveProjectToTop(const Project& project)
+{
for (auto it = mRecentProjects.begin(); it != mRecentProjects.end(); ++it) {
if (it->path == project.GetPath()) {
std::rotate(it, it + 1, mRecentProjects.end());
@@ -94,14 +103,16 @@ void GlobalStates::MoveProjectToTop(const Project& project) {
AddRecentProject(project);
}
-void GlobalStates::RemoveRecentProject(int idx) {
+void GlobalStates::RemoveRecentProject(int idx)
+{
assert(idx >= 0 && idx < mRecentProjects.size());
mRecentProjects.erase(mRecentProjects.begin() + idx);
MarkDirty();
}
-void GlobalStates::WriteToDisk() const {
+void GlobalStates::WriteToDisk() const
+{
Json::Value root;
auto& recentProjects = root["RecentProjects"] = Json::Value(Json::arrayValue);
@@ -115,11 +126,13 @@ void GlobalStates::WriteToDisk() const {
mDirty = false;
}
-bool GlobalStates::IsDirty() const {
+bool GlobalStates::IsDirty() const
+{
return mDirty;
}
-void GlobalStates::MarkDirty() {
+void GlobalStates::MarkDirty()
+{
mDirty = true;
OnModified();
}