std::unique_ptr<Workspace> JsonImporter::ImportWorkspace(FileManager& fileManager, const filesystem::path& workspaceFile) { auto json = internal::ParseJsonFile(fileManager.GetFileSystem(), workspaceFile); if (internal::IsValidWorkspace(json)) { auto workspace = std::make_unique<Workspace>(); workspace->SetName(json["workspace"]); workspace->SetFile(workspaceFile); auto& projects = json["projects"]; if (projects.is_array()) { auto workspacePath = workspaceFile.parent_path(); for (auto& project : projects) { workspace->AddProject(ImportProject(fileManager, workspacePath / project)); } } return workspace; } return nullptr; }
void ProjectsListView::LoadInitialProjects() { auto projectTypeList = this->m_projectTypeCTRL.QuerySelectList(); for(int i = 0; i < projectTypeList.length(); i++) { AddProjectType(projectTypeList[i], false); } AddProjectType(nullptr, true); auto projectList = this->m_projectCTRL.QuerySelectList(); for(int i = 0; i < projectList.length(); i++) { AddProject(projectList[i]); } }
void ProjectsListView::slotProjectAdded(const Project &project) { auto ptr = m_projectCTRL.GetProjectById(project.GetIdProject()); AddProject(ptr); }