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. 7
      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
} }
#region Label edit #region Label edit
protected bool canLabelEdit = true; protected bool canLabelEdit = false;
public virtual bool CanLabelEdit { public virtual bool CanLabelEdit {
get { get {
return canLabelEdit; return canLabelEdit;

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

@ -139,21 +139,24 @@ namespace ICSharpCode.SharpDevelop.Gui
if (node == null) { if (node == null) {
return; return;
} }
if (node.CanLabelEdit) {
node.EnsureVisible(); node.EnsureVisible();
SelectedNode = node; SelectedNode = node;
LabelEdit = true; LabelEdit = true;
node.BeforeLabelEdit(); node.BeforeLabelEdit();
node.BeginEdit(); node.BeginEdit();
} }
}
protected override bool ProcessDialogKey(Keys keyData) protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{ {
switch (keyData) { switch (keyData) {
case Keys.F2: case Keys.F2:
StartLabelEdit(SelectedNode as ExtTreeNode); StartLabelEdit(SelectedNode as ExtTreeNode);
break; break;
} }
return base.ProcessDialogKey(keyData); return base.ProcessCmdKey(ref msg, keyData);
} }
protected override void OnAfterLabelEdit(NodeLabelEditEventArgs e) 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
string toolbarAddinTreePath = null; string toolbarAddinTreePath = null;
protected bool autoClearNodes = true; 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 { public virtual string ToolbarAddinTreePath {
get { get {

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

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

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

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

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

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

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

@ -35,6 +35,7 @@ namespace ICSharpCode.SharpDevelop.Project
public SolutionItemNode(Solution solution, SolutionItem item) public SolutionItemNode(Solution solution, SolutionItem item)
{ {
sortOrder = 2; sortOrder = 2;
canLabelEdit = true;
ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionItemNode"; 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
this.solution = solution; this.solution = solution;
Text = "Solution " + solution.Name; Text = "Solution " + solution.Name;
autoClearNodes = false; autoClearNodes = false;
canLabelEdit = true;
ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionNode"; ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionNode";

Loading…
Cancel
Save