Browse Source

Fixed SD2-782: Null reference when adding existing item/new folder to project

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1349 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
c1b98264a4
  1. 18
      src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs
  2. 5
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs
  3. 1
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs

18
src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs

@ -249,6 +249,20 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -249,6 +249,20 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
bool canClearSelection = true;
/// <summary>
/// Gets/Sets whether the user can clear the selection by clicking in the empty area.
/// </summary>
public bool CanClearSelection {
get {
return canClearSelection;
}
set {
canClearSelection = value;
}
}
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
@ -258,7 +272,9 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -258,7 +272,9 @@ namespace ICSharpCode.SharpDevelop.Gui
SelectedNode = node;
}
} else {
SelectedNode = null;
if (canClearSelection) {
SelectedNode = null;
}
}
}

5
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs

@ -117,7 +117,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -117,7 +117,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
{
public override void Run()
{
AbstractProjectBrowserTreeNode node = Owner as AbstractProjectBrowserTreeNode;
AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;
if (node != null && node.Project != null) {
using (AddWebReferenceDialog refDialog = new AddWebReferenceDialog(node.Project)) {
refDialog.NamespacePrefix = node.Project.RootNamespace;
@ -152,7 +152,8 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -152,7 +152,8 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
} else if (node is ReferenceFolder && node.Parent != null && node.Parent is ProjectNode) {
webReferencesNode = AddWebReferenceToProjectNode((ProjectNode)node.Parent, webReference);
} else {
LoggingService.Error("AddWebReferenceToProjectBrowser: Selected node type is not handled.");
LoggingService.Warn("AddWebReferenceToProjectBrowser: Selected node type is not handled.");
AddWebReferenceToProjectBrowser(node.Parent as AbstractProjectBrowserTreeNode, webReference);
}
if (webReferencesNode != null) {

1
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs

@ -62,6 +62,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -62,6 +62,7 @@ namespace ICSharpCode.SharpDevelop.Project
public ProjectBrowserControl()
{
InitializeComponent();
treeView.CanClearSelection = false;
treeView.BeforeSelect += TreeViewBeforeSelect;
treeView.AfterExpand += TreeViewAfterExpand;
FileService.FileRenamed += FileServiceFileRenamed;

Loading…
Cancel
Save