예제 #1
0
        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);
        }
예제 #2
0
        public static bool OpenProject(string filePath)
        {
            FileObject <PerhapsProject> proj = new FileObject <PerhapsProject>(filePath);

            if (proj.Load())
            {
                CurrentProjectFile = proj;
                AppendRecentProject(filePath);

                return(true);
            }

            return(false);
        }
예제 #3
0
        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();
        }