diff --git a/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ProjectNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ProjectNode.cs index ac1c4f2518..33906d6130 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ProjectNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ProjectNode.cs @@ -36,8 +36,6 @@ namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser public override void UpdateParseInformation(ICompilationUnit oldUnit, ICompilationUnit unit) { - LoggingService.Debug("UpdateParseInformation: old=" + oldUnit + " new=" + unit); - Dictionary classDictionary = new Dictionary(); Dictionary wasUpdatedDictionary = new Dictionary(); diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs index 0c0238c5e3..9fb71d9f7e 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs @@ -206,10 +206,16 @@ namespace ICSharpCode.SharpDevelop.Project Project.Save(); } } else if (!File.Exists(FileName)) { - FileService.RemoveFile(FileName, false); + // exclude this node, then remove it + Commands.ExcludeFileFromProject.ExcludeFileNode(this); + this.Remove(); Project.Save(); } else if (MessageService.AskQuestion(GetQuestionText("${res:ProjectComponent.ContextMenu.Delete.Question}"))) { FileService.RemoveFile(FileName, false); + if (IsLink) { + // we need to manually remove the link + Commands.ExcludeFileFromProject.ExcludeFileNode(this); + } Project.Save(); } } diff --git a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs index 542fb390b1..5f76eb7505 100644 --- a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs +++ b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs @@ -220,6 +220,7 @@ namespace ICSharpCode.SharpDevelop.Project /// /// Removes a project item from the project, raising the ProjectItemRemoved event. /// Make sure you call project.Save() after removing items! + /// No action (not even raising the event) is taken when the item was already removed form the project. /// public static void RemoveProjectItem(IProject project, ProjectItem item) { @@ -227,10 +228,9 @@ namespace ICSharpCode.SharpDevelop.Project if (item == null) throw new ArgumentNullException("item"); IProjectItemListProvider provider = project as IProjectItemListProvider; if (provider != null) { - if (!provider.RemoveProjectItem(item)) { - throw new ArgumentException("The item was not found in the project!"); + if (provider.RemoveProjectItem(item)) { + OnProjectItemRemoved(new ProjectItemEventArgs(project, item)); } - OnProjectItemRemoved(new ProjectItemEventArgs(project, item)); } }