Browse Source

SD2-1000: Deleting the ".." folder visible when the project contains incorrectly linked files deletes the whole parent directory

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1708 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
d52c09180f
  1. 6
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 11
      src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs

6
AddIns/ICSharpCode.SharpDevelop.addin

@ -495,7 +495,7 @@ @@ -495,7 +495,7 @@
label = "${res:Global.RemoveButtonText}"
type = "Item"
icon = "Icons.16x16.DeleteIcon"
class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
</Condition>
<ComplexCondition>
<Not>
@ -546,7 +546,7 @@ @@ -546,7 +546,7 @@
label = "${res:Global.RemoveButtonText}"
type = "Item"
icon = "Icons.16x16.DeleteIcon"
class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
</Condition>
<ComplexCondition>
<Not>
@ -574,7 +574,7 @@ @@ -574,7 +574,7 @@
label = "${res:Global.RemoveButtonText}"
type = "Item"
icon = "Icons.16x16.DeleteIcon"
class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
</Condition>
<ComplexCondition>
<Not>

11
src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs

@ -1,13 +1,14 @@ @@ -1,13 +1,14 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
using System.ComponentModel;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.SharpDevelop.Project
@ -108,7 +109,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -108,7 +109,7 @@ namespace ICSharpCode.SharpDevelop.Project
[Browsable(false)]
public bool IsLink {
get {
return base.Properties.IsSet("Link");
return base.Properties.IsSet("Link") || !FileUtility.IsBaseDirectory(this.Project.Directory, this.FileName);
}
}
@ -120,10 +121,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -120,10 +121,12 @@ namespace ICSharpCode.SharpDevelop.Project
/// </summary>
public string VirtualName {
get {
if (IsLink)
if (base.Properties.IsSet("Link"))
return base.Properties["Link"];
else
else if (FileUtility.IsBaseDirectory(this.Project.Directory, this.FileName))
return this.Include;
else
return Path.GetFileName(this.Include);
}
}

Loading…
Cancel
Save