From 81835b5c25521a991676605fb247f75f1f5afcc6 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Fri, 16 Jun 2006 13:21:03 +0000 Subject: [PATCH] Fixed SD2-853: Cut and paste folder removes folder and contained files git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1482 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs | 13 ++++++++----- src/Main/Base/Project/Src/Project/MSBuildEngine.cs | 3 +++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs index bbdf7e5080..dc5c3b4ef9 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs @@ -594,18 +594,21 @@ namespace ICSharpCode.SharpDevelop.Project ProjectService.SaveSolution(); } - public void CopyDirectoryHere(string fileName, bool performMove) + public void CopyDirectoryHere(string directoryName, bool performMove) { - AddExistingItemsToProject.CopyDirectory(fileName, this, true); + string copiedName = Path.Combine(Directory, Path.GetFileName(directoryName)); + if (FileUtility.IsEqualFileName(directoryName, copiedName)) + return; + AddExistingItemsToProject.CopyDirectory(directoryName, this, true); if (performMove) { foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { if (content.FileName != null && - FileUtility.IsBaseDirectory(fileName, content.FileName)) + FileUtility.IsBaseDirectory(directoryName, content.FileName)) { - content.FileName = FileUtility.RenameBaseDirectory(content.FileName, fileName, Path.Combine(this.directory, Path.GetFileName(fileName))); + content.FileName = FileUtility.RenameBaseDirectory(content.FileName, directoryName, Path.Combine(this.directory, Path.GetFileName(directoryName))); } } - FileService.RemoveFile(fileName, true); + FileService.RemoveFile(directoryName, true); } } diff --git a/src/Main/Base/Project/Src/Project/MSBuildEngine.cs b/src/Main/Base/Project/Src/Project/MSBuildEngine.cs index 0358a566a6..99f20c7040 100644 --- a/src/Main/Base/Project/Src/Project/MSBuildEngine.cs +++ b/src/Main/Base/Project/Src/Project/MSBuildEngine.cs @@ -207,6 +207,9 @@ namespace ICSharpCode.SharpDevelop.Project results.NativeCompilerReturnValue = 0; else results.NativeCompilerReturnValue = 1; + } catch (ArgumentException ex) { + results.NativeCompilerReturnValue = -2; + results.Errors.Add(new CompilerError(null, -1, -1, "", ex.Message)); } catch (InvalidProjectFileException ex) { results.NativeCompilerReturnValue = -2; results.Errors.Add(new CompilerError(ex.ProjectFile, ex.LineNumber, ex.ColumnNumber, ex.ErrorCode, ex.Message));