Browse Source

SD2-723. Can now use F2 key to edit a project browser node. The ExtTreeView checks the CanLabelEdit property on the node before allowing the edit. No error message shown if the project browser node's text is unchanged after renaming.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1214 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 20 years ago
parent
commit
fdb8c49337
  1. 2
      src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs
  2. 17
      src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs
  3. 11
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs
  4. 6
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs
  5. 2
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs
  6. 1
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs
  7. 1
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionItemNode.cs
  8. 1
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionNode.cs

2
src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs

@ -115,7 +115,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -115,7 +115,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
#region Label edit
protected bool canLabelEdit = true;
protected bool canLabelEdit = false;
public virtual bool CanLabelEdit {
get {
return canLabelEdit;

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

@ -139,21 +139,24 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -139,21 +139,24 @@ namespace ICSharpCode.SharpDevelop.Gui
if (node == null) {
return;
}
node.EnsureVisible();
SelectedNode = node;
LabelEdit = true;
node.BeforeLabelEdit();
node.BeginEdit();
if (node.CanLabelEdit) {
node.EnsureVisible();
SelectedNode = node;
LabelEdit = true;
node.BeforeLabelEdit();
node.BeginEdit();
}
}
protected override bool ProcessDialogKey(Keys keyData)
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (keyData) {
case Keys.F2:
StartLabelEdit(SelectedNode as ExtTreeNode);
break;
}
return base.ProcessDialogKey(keyData);
return base.ProcessCmdKey(ref msg, keyData);
}
protected override void OnAfterLabelEdit(NodeLabelEditEventArgs e)

11
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs

@ -30,17 +30,6 @@ namespace ICSharpCode.SharpDevelop.Project @@ -30,17 +30,6 @@ namespace ICSharpCode.SharpDevelop.Project
string toolbarAddinTreePath = null;
protected bool autoClearNodes = true;
protected bool canLabelEdited = true;
/// <returns>
/// True, if this node can be label edited, false otherwise.
/// </returns>
public bool CanLabelEdited {
get {
return canLabelEdited;
}
}
public virtual string ToolbarAddinTreePath {
get {

6
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs

@ -244,11 +244,13 @@ namespace ICSharpCode.SharpDevelop.Project @@ -244,11 +244,13 @@ namespace ICSharpCode.SharpDevelop.Project
{
sortOrder = 1;
SetIcon();
canLabelEdit = true;
}
public DirectoryNode(string directory) : this(directory, FileNodeStatus.None)
{
sortOrder = 1;
canLabelEdit = true;
}
CustomNode removeMe = null;
public DirectoryNode(string directory, FileNodeStatus fileNodeStatus)
@ -262,6 +264,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -262,6 +264,7 @@ namespace ICSharpCode.SharpDevelop.Project
removeMe.AddTo(this);
SetIcon();
canLabelEdit = true;
}
/// <summary>
@ -482,6 +485,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -482,6 +485,9 @@ namespace ICSharpCode.SharpDevelop.Project
if (!FileService.CheckDirectoryName(newName)) {
return;
}
if (String.Compare(Text, newName, true) == 0) {
return;
}
string oldText = Text;
Text = newName;
if (Directory != null) {

2
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs

@ -112,11 +112,13 @@ namespace ICSharpCode.SharpDevelop.Project @@ -112,11 +112,13 @@ namespace ICSharpCode.SharpDevelop.Project
autoClearNodes = false;
SetIcon();
canLabelEdit = true;
}
public FileNode(string fileName) : this (fileName, FileNodeStatus.None)
{
sortOrder = 5;
canLabelEdit = true;
}
public override void ActivateItem()

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

@ -60,6 +60,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -60,6 +60,7 @@ namespace ICSharpCode.SharpDevelop.Project
public SolutionFolderNode(Solution solution, SolutionFolder folder)
{
sortOrder = 0;
canLabelEdit = true;
ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionFolderNode";
this.solution = solution;

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

@ -35,6 +35,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -35,6 +35,7 @@ namespace ICSharpCode.SharpDevelop.Project
public SolutionItemNode(Solution solution, SolutionItem item)
{
sortOrder = 2;
canLabelEdit = true;
ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionItemNode";

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

@ -39,6 +39,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -39,6 +39,7 @@ namespace ICSharpCode.SharpDevelop.Project
this.solution = solution;
Text = "Solution " + solution.Name;
autoClearNodes = false;
canLabelEdit = true;
ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionNode";

Loading…
Cancel
Save