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;
}