private bool RemoveProject(Project project, bool saveConfirmation)
{
if (saveConfirmation && project.IsDirty)
{
DialogResult result = MessageBox.Show(
Strings.AskSaveChanges, Strings.Confirmation,
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
if (!SaveProject(project))
return false;
}
else if (result == DialogResult.Cancel)
{
return false;
}
}
if (projects.Remove(project))
{
project.CloseItems();
project.Modified -= new EventHandler(project_StateChanged);
project.FileStateChanged -= new EventHandler(project_StateChanged);
OnProjectRemoved(new ProjectEventArgs(project));
if (ActiveProject == project)
ActiveProject = null;
return true;
}
return false;
}