Browse Source

Only the following values can be set: argument, local variable, array element, field value

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2869 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 18 years ago
parent
commit
6f381b7e06
  1. 6
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/Adapters/DynamicTreeDebuggerRow.cs
  2. 2
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/ISetText.cs
  3. 16
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/ValueNode.cs

6
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/Adapters/DynamicTreeDebuggerRow.cs

@ -55,7 +55,7 @@ namespace Debugger.AddIn.TreeModel @@ -55,7 +55,7 @@ namespace Debugger.AddIn.TreeModel
this[1].Text = ""; // Icon
this[2].Text = content.Name;
this[3].Text = content.Text;
this[3].AllowLabelEdit = content is ISetText;
this[3].AllowLabelEdit = (content is ISetText) && ((ISetText)content).CanSetText;
this.ShowPlus = (content.ChildNodes != null);
this.ShowMinusWhileExpanded = true;
@ -126,7 +126,9 @@ namespace Debugger.AddIn.TreeModel @@ -126,7 +126,9 @@ namespace Debugger.AddIn.TreeModel
void OnLabelEdited(object sender, DynamicListEventArgs e)
{
((ISetText)content).SetText(((DynamicListItem)sender).Text);
if (((ISetText)content).CanSetText) {
((ISetText)content).SetText(((DynamicListItem)sender).Text);
}
}
void OnMouseDown(object sender, DynamicListMouseEventArgs e)

2
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/ISetText.cs

@ -12,6 +12,8 @@ namespace Debugger.AddIn.TreeModel @@ -12,6 +12,8 @@ namespace Debugger.AddIn.TreeModel
{
public interface ISetText
{
bool CanSetText { get; }
bool SetText(string text);
}
}

16
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/ValueNode.cs

@ -21,6 +21,7 @@ namespace Debugger.AddIn.TreeModel @@ -21,6 +21,7 @@ namespace Debugger.AddIn.TreeModel
public class ValueNode: AbstractNode, ISetText, IContextMenu
{
Expression expression;
bool canSetText;
public Expression Expression {
get { return expression; }
@ -30,6 +31,15 @@ namespace Debugger.AddIn.TreeModel @@ -30,6 +31,15 @@ namespace Debugger.AddIn.TreeModel
{
this.expression = val.Expression;
canSetText = false;
if (val.IsPrimitive) {
canSetText =
(val.Expression is LocalVariableIdentifierExpression) ||
(val.Expression is ParameterIdentifierExpression) ||
(val.Expression is ArrayIndexerExpression) ||
(val.Expression is MemberReferenceExpression && ((MemberReferenceExpression)val.Expression).MemberInfo is FieldInfo);
}
if (val.IsObject) {
this.Image = DebuggerIcons.ImageList.Images[0]; // Class
} else {
@ -60,6 +70,12 @@ namespace Debugger.AddIn.TreeModel @@ -60,6 +70,12 @@ namespace Debugger.AddIn.TreeModel
}
}
public bool CanSetText {
get {
return canSetText;
}
}
public bool SetText(string newText)
{
Value val = null;

Loading…
Cancel
Save