Example #1
0
        bool SetProject(ProjectLongoMatch project, ProjectType projectType, CaptureSettings props)
        {
            if (OpenedProject != null) {
                CloseOpenedProject (true);
            }

            Log.Debug ("Loading project " + project.ID + " " + projectType);

            PlaysFilter = new EventsFilter (project);
            project.CleanupTimers ();
            project.ProjectType = projectType;
            guiToolkit.OpenProject (project, projectType, props, PlaysFilter,
                out analysisWindow);
            Player = analysisWindow.Player;
            Capturer = analysisWindow.Capturer;
            OpenedProject = project;
            OpenedProjectType = projectType;

            if (projectType == ProjectType.FileProject) {
                // Check if the file associated to the project exists
                if (!project.Description.FileSet.CheckFiles ()) {
                    if (!guiToolkit.SelectMediaFiles (project.Description.FileSet)) {
                        CloseOpenedProject (true);
                        return false;
                    }
                }
                try {
                    Player.Open (project.Description.FileSet);
                } catch (Exception ex) {
                    Log.Exception (ex);
                    App.Current.Dialogs.ErrorMessage (Catalog.GetString ("An error occurred opening this project:") + "\n" + ex.Message);
                    CloseOpenedProject (false);
                    return false;
                }

            } else if (projectType == ProjectType.CaptureProject ||
                       projectType == ProjectType.URICaptureProject ||
                       projectType == ProjectType.FakeCaptureProject) {
                try {
                    Capturer.Run (props, project.Description.FileSet.First ());
                } catch (Exception ex) {
                    Log.Exception (ex);
                    App.Current.Dialogs.ErrorMessage (ex.Message);
                    CloseOpenedProject (false);
                    return false;
                }
            }

            EmitProjectChanged ();
            return true;
        }