public static FileObject <PerhapsProject>[] GetRecentProjects() { if (cachedRecentProjects != null) { return(cachedRecentProjects); } FileObject <RecentProjectsContainer> recentProjectsFile = new FileObject <RecentProjectsContainer>(recentProjFilePath); if (recentProjectsFile.Load()) { List <FileObject <PerhapsProject> > loaded = new List <FileObject <PerhapsProject> >(); Deque <string> paths = recentProjectsFile.Object.recentProjectPaths; for (int i = 0; i < paths.Count; i++) { FileObject <PerhapsProject> file = new FileObject <PerhapsProject>(paths[i]); if (file.Load()) { loaded.Add(file); } } cachedRecentProjects = loaded.ToArray(); recentProjectsFile.Save(); } else { cachedRecentProjects = new FileObject <PerhapsProject> [0]; } return(cachedRecentProjects); }
public static bool OpenProject(string filePath) { FileObject <PerhapsProject> proj = new FileObject <PerhapsProject>(filePath); if (proj.Load()) { CurrentProjectFile = proj; AppendRecentProject(filePath); return(true); } return(false); }
static void AppendRecentProject(string path) { FileObject <RecentProjectsContainer> container = new FileObject <RecentProjectsContainer>(recentProjFilePath); if (!container.Load()) { container.Object = new RecentProjectsContainer(); } container.Object.recentProjectPaths.AddFront(path); container.Object.recentProjectPaths = container.Object.recentProjectPaths.Distinct().ToDeque(); container.Save(); }