summaryrefslogtreecommitdiff
path: root/core/src/Model/GlobalStates.cpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2021-06-05 14:58:09 -0700
committerrtk0c <[email protected]>2021-06-05 14:58:09 -0700
commitd3fa128d5408673b0ea8d3ba3435c38b258a5e7a (patch)
tree20ff77021bae4dc69f0bba4d1b65330e0301600a /core/src/Model/GlobalStates.cpp
parentbeb1f3969e13af72bd9098d484b693e397cf7235 (diff)
Merge UIState into GlobalStates
Diffstat (limited to 'core/src/Model/GlobalStates.cpp')
-rw-r--r--core/src/Model/GlobalStates.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/core/src/Model/GlobalStates.cpp b/core/src/Model/GlobalStates.cpp
index 2230367..a449afb 100644
--- a/core/src/Model/GlobalStates.cpp
+++ b/core/src/Model/GlobalStates.cpp
@@ -56,6 +56,9 @@ void GlobalStates::Init(std::filesystem::path userDataDir)
void GlobalStates::Shutdown()
{
if (!globalStateInstance) return;
+
+ globalStateInstance->SetCurrentProject(nullptr);
+
if (globalStateInstance->mDirty) {
globalStateInstance->WriteToDisk();
}
@@ -111,6 +114,28 @@ void GlobalStates::RemoveRecentProject(int idx)
MarkDirty();
}
+bool GlobalStates::HasCurrentProject() const
+{
+ return mCurrentProject != nullptr;
+}
+
+Project* GlobalStates::GetCurrentProject() const
+{
+ return mCurrentProject.get();
+}
+
+void GlobalStates::SetCurrentProject(std::unique_ptr<Project> project)
+{
+ if (mCurrentProject) {
+ mCurrentProject->WriteToDisk();
+ mCurrentProject = nullptr;
+ }
+ if (project) {
+ MoveProjectToTop(*project);
+ }
+ mCurrentProject = std::move(project);
+}
+
void GlobalStates::WriteToDisk() const
{
Json::Value root;