From 44f5fa5c8f258e8fc1f7d7e2e45e0485bd6cc490 Mon Sep 17 00:00:00 2001 From: rtk0c Date: Wed, 31 Mar 2021 20:19:18 -0700 Subject: Complete items tab (UI and serialization) --- core/src/Model/GlobalStates.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'core/src/Model/GlobalStates.cpp') diff --git a/core/src/Model/GlobalStates.cpp b/core/src/Model/GlobalStates.cpp index cd076f4..0c4e58e 100644 --- a/core/src/Model/GlobalStates.cpp +++ b/core/src/Model/GlobalStates.cpp @@ -17,8 +17,12 @@ static std::unique_ptr globalStateInstance; static fs::path globalDataPath; void GlobalStates::Init() { + Init(StandardDirectories::UserData() / "cplt"); +} + +void GlobalStates::Init(std::filesystem::path userDataDir) { globalStateInstance = std::make_unique(); - globalDataPath = StandardDirectories::UserData() / "cplt"; + globalDataPath = userDataDir; fs::create_directories(globalDataPath); // Reading recent projects @@ -79,6 +83,17 @@ void GlobalStates::AddRecentProject(const Project& project) { MarkDirty(); } +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()); + MarkDirty(); + return; + } + } + AddRecentProject(project); +} + void GlobalStates::RemoveRecentProject(int idx) { assert(idx >= 0 && idx < mRecentProjects.size()); -- cgit v1.2.3-70-g09d2