Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.VSTextView/QuickInfo/DebuggerQuickInfoSource.cs3
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugValueWindow.cs105
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs1
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/GtkObjectValueTreeView.cs18
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeViewController.cs21
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs13
6 files changed, 108 insertions, 53 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.VSTextView/QuickInfo/DebuggerQuickInfoSource.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.VSTextView/QuickInfo/DebuggerQuickInfoSource.cs
index 0405f60bdf..50e7982712 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.VSTextView/QuickInfo/DebuggerQuickInfoSource.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.VSTextView/QuickInfo/DebuggerQuickInfoSource.cs
@@ -38,7 +38,8 @@ namespace MonoDevelop.Debugger.VSTextView.QuickInfo
{
if (window == null)
return;
- var debuggerSession = window.Tree.Frame?.DebuggerSession;
+
+ var debuggerSession = window.GetDebuggerSession ();
if (debuggerSession == null || debuggerSession == sender) {
DestroyWindow ();
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugValueWindow.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugValueWindow.cs
index 6303475bb1..c3a0712c3c 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugValueWindow.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugValueWindow.cs
@@ -36,10 +36,13 @@ namespace MonoDevelop.Debugger
{
class DebugValueWindow : PopoverWindow
{
- public ObjectValueTreeView Tree { get; }
- ScrolledWindow sw;
+ readonly ObjectValueTreeViewController controller;
+ readonly ObjectValueTreeView objValueTreeView;
+ readonly TreeView treeView;
+ readonly ScrolledWindow sw;
static readonly string innerTreeName = "MonoDevelop.SourceEditor.DebugValueWindow.ObjectValueTreeView";
+ static bool UseNewTreeView = true;
static string currentBgColor;
static DebugValueWindow ()
@@ -73,10 +76,10 @@ namespace MonoDevelop.Debugger
public DebugValueWindow (Gtk.Window transientFor, string pinnedWatchFileName, int pinnedWatchLine, StackFrame frame, ObjectValue value, PinnedWatch watch) : base (Gtk.WindowType.Toplevel)
{
- this.TypeHint = WindowTypeHint.PopupMenu;
- this.AllowShrink = false;
- this.AllowGrow = false;
- this.Decorated = false;
+ TypeHint = WindowTypeHint.PopupMenu;
+ AllowShrink = false;
+ AllowGrow = false;
+ Decorated = false;
TransientFor = transientFor;
// Avoid getting the focus when the window is shown. We'll get it when the mouse enters the window
@@ -87,38 +90,68 @@ namespace MonoDevelop.Debugger
sw.VscrollbarPolicy = PolicyType.Never;
UpdateTreeStyle (Theme.BackgroundColor);
- Tree = new ObjectValueTreeView ();
- Tree.Name = innerTreeName;
- sw.Add (Tree);
- ContentBox.Add (sw);
+ if (UseNewTreeView) {
+ controller = new ObjectValueTreeViewController ();
+ controller.SetStackFrame (frame);
+ controller.RootPinAlwaysVisible = true;
+ controller.HeadersVisible = false;
+ controller.AllowEditing = true;
+ controller.AllowPinning = true;
+ controller.CompactView = true;
+ controller.PinnedWatch = watch;
+ controller.PinnedWatchLine = pinnedWatchLine;
+ controller.PinnedWatchFile = pinnedWatchFileName;
+
+ controller.PinStatusChanged += OnPinStatusChanged;
+ controller.StartEditing += OnStartEditing;
+ controller.EndEditing += OnEndEditing;
+
+ treeView = (TreeView) controller.GetControl ();
+
+ controller.AddValue (value);
+ } else {
+ objValueTreeView = new ObjectValueTreeView ();
+ objValueTreeView.RootPinAlwaysVisible = true;
+ objValueTreeView.HeadersVisible = false;
+ objValueTreeView.AllowEditing = true;
+ objValueTreeView.AllowPinning = true;
+ objValueTreeView.CompactView = true;
+ objValueTreeView.PinnedWatch = watch;
+ objValueTreeView.PinnedWatchLine = pinnedWatchLine;
+ objValueTreeView.PinnedWatchFile = pinnedWatchFileName;
+ objValueTreeView.Frame = frame;
+
+ objValueTreeView.AddValue (value);
+
+ objValueTreeView.PinStatusChanged += OnPinStatusChanged;
+ objValueTreeView.StartEditing += OnStartEditing;
+ objValueTreeView.EndEditing += OnEndEditing;
+
+ treeView = objValueTreeView;
+ }
- Tree.Frame = frame;
- Tree.CompactView = true;
- Tree.AllowAdding = false;
- Tree.AllowEditing = true;
- Tree.HeadersVisible = false;
- Tree.AllowPinning = true;
- Tree.RootPinAlwaysVisible = true;
- Tree.PinnedWatch = watch;
- Tree.PinnedWatchLine = pinnedWatchLine;
- Tree.PinnedWatchFile = pinnedWatchFileName;
-
- Tree.AddValue (value);
- Tree.Selection.UnselectAll ();
- Tree.SizeAllocated += OnTreeSizeChanged;
- Tree.PinStatusChanged += OnPinStatusChanged;
+ treeView.Name = innerTreeName;
+ treeView.Selection.UnselectAll ();
+ treeView.SizeAllocated += OnTreeSizeChanged;
+ sw.Add (treeView);
+ ContentBox.Add (sw);
sw.ShowAll ();
- Tree.StartEditing += OnStartEditing;
- Tree.EndEditing += OnEndEditing;
-
ShowArrow = true;
Theme.CornerRadius = 3;
PreviewWindowManager.WindowClosed += PreviewWindowManager_WindowClosed;
}
+ public DebuggerSession GetDebuggerSession ()
+ {
+ if (UseNewTreeView)
+ return controller.GetStackFrame ()?.DebuggerSession;
+
+ return objValueTreeView.Frame?.DebuggerSession;
+ }
+
void OnStartEditing (object sender, EventArgs args)
{
Modal = true;
@@ -136,10 +169,18 @@ namespace MonoDevelop.Debugger
protected override void OnDestroyed ()
{
- Tree.StartEditing -= OnStartEditing;
- Tree.EndEditing -= OnEndEditing;
- Tree.PinStatusChanged -= OnPinStatusChanged;
- Tree.SizeAllocated -= OnTreeSizeChanged;
+ if (UseNewTreeView) {
+ controller.PinStatusChanged -= OnPinStatusChanged;
+ controller.StartEditing -= OnStartEditing;
+ controller.EndEditing -= OnEndEditing;
+ } else {
+ objValueTreeView.PinStatusChanged -= OnPinStatusChanged;
+ objValueTreeView.StartEditing -= OnStartEditing;
+ objValueTreeView.EndEditing -= OnEndEditing;
+ }
+
+ treeView.SizeAllocated -= OnTreeSizeChanged;
+
PreviewWindowManager.WindowClosed -= PreviewWindowManager_WindowClosed;
base.OnDestroyed ();
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs
index 5a2fe3c146..f3e9a4d829 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs
@@ -198,7 +198,6 @@ widget ""*.exception_help_link_label"" style ""exception-help-link-label""
ExceptionValueTreeView.AllowEditing = false;
ExceptionValueTreeView.CanFocus = true;
ExceptionValueTreeView.AllowAdding = false;
- ExceptionValueTreeView.RulesHint = true;
ExceptionValueTreeView.ModifyFont (Pango.FontDescription.FromString (Platform.IsWindows ? "9" : "11"));
ExceptionValueTreeView.RulesHint = false;
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/GtkObjectValueTreeView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/GtkObjectValueTreeView.cs
index 2fd457f9fd..64ade2bf57 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/GtkObjectValueTreeView.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/GtkObjectValueTreeView.cs
@@ -126,10 +126,6 @@ namespace MonoDevelop.Debugger
const int ValueButtonTextColumn = 15;
const int ObjectNodeColumn = 16;
- public event EventHandler StartEditing;
- public event EventHandler EndEditing;
- public event EventHandler PinStatusChanged;
-
enum LocalCommands
{
AddWatch
@@ -956,8 +952,8 @@ public StackFrame Frame {
editEntry = (Entry)args.Editable;
editEntry.KeyPressEvent += OnEditKeyPress;
editEntry.KeyReleaseEvent += OnEditKeyRelease;
- if (StartEditing != null)
- StartEditing (this, EventArgs.Empty);
+
+ controller.OnStartEditing ();
}
void OnEndEditing ()
@@ -968,8 +964,8 @@ public StackFrame Frame {
CompletionWindowManager.HideWindow ();
currentCompletionData = null;
- if (EndEditing != null)
- EndEditing (this, EventArgs.Empty);
+
+ controller.OnEndEditing ();
}
void OnEditKeyRelease (object sender, EventArgs e)
@@ -1616,15 +1612,13 @@ public StackFrame Frame {
watch.Expression = expression;
DebuggingService.PinnedWatches.Add (watch);
- if (PinStatusChanged != null)
- PinStatusChanged (this, EventArgs.Empty);
+ controller.OnPinStatusChanged ();
}
public void RemovePinnedWatch (TreeIter it)
{
DebuggingService.PinnedWatches.Remove (controller.PinnedWatch);
- if (PinStatusChanged != null)
- PinStatusChanged (this, EventArgs.Empty);
+ controller.OnPinStatusChanged ();
}
#region ICompletionWidget implementation
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeViewController.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeViewController.cs
index 1896c36d7a..6cff774879 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeViewController.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeViewController.cs
@@ -194,6 +194,27 @@ namespace MonoDevelop.Debugger
}
}
+ public event EventHandler PinStatusChanged;
+
+ internal void OnPinStatusChanged ()
+ {
+ PinStatusChanged?.Invoke (this, EventArgs.Empty);
+ }
+
+ public event EventHandler StartEditing;
+
+ internal void OnStartEditing ()
+ {
+ StartEditing?.Invoke (this, EventArgs.Empty);
+ }
+
+ public event EventHandler EndEditing;
+
+ internal void OnEndEditing ()
+ {
+ EndEditing?.Invoke (this, EventArgs.Empty);
+ }
+
public event EventHandler<ChildrenChangedEventArgs> ChildrenLoaded;
/// <summary>
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs
index 7258d4ed36..1cec611cda 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs
@@ -27,17 +27,15 @@
//
using System;
-using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+
+using Mono.Debugging.Client;
using MonoDevelop.Ide;
-using MonoDevelop.Ide.Gui;
using MonoDevelop.Debugger;
using MonoDevelop.Components;
-using Mono.Debugging.Client;
-
using MonoDevelop.Ide.Editor;
-using System.Threading.Tasks;
-using System.Threading;
namespace MonoDevelop.SourceEditor
{
@@ -61,7 +59,8 @@ namespace MonoDevelop.SourceEditor
{
if (tooltip == null)
return;
- var debuggerSession = tooltip.Tree.Frame?.DebuggerSession;
+
+ var debuggerSession = tooltip.GetDebuggerSession ();
if (debuggerSession == null || debuggerSession == sender) {
tooltip.Destroy ();
tooltip = null;