Browse Source

Refresh local variables in batches to reduce flickering

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1400 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 20 years ago
parent
commit
82f1d45ae9
  1. 1
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj
  2. 37
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/DebuggerTreeListView.cs
  3. 4
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/LocalVarPad.cs
  4. 17
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/TreeListViewDebuggerItem.cs

1
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj

@ -71,6 +71,7 @@ @@ -71,6 +71,7 @@
<Compile Include="Src\Pads\DebuggerPad.cs" />
<Compile Include="Src\Pads\CallStackPad.Menu.cs" />
<Compile Include="Src\Pads\RunningThreadsPad.Menu.cs" />
<Compile Include="Src\Pads\DebuggerTreeListView.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj">

37
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/DebuggerTreeListView.cs

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
// <version>$Revision: 1254 $</version>
// </file>
using System;
using System.Windows.Forms;
namespace ICSharpCode.SharpDevelop.Gui.Pads
{
public class DebuggerTreeListView: TreeListView
{
static int updateInterval = 100; // ms
Timer refreshingTimer;
public DebuggerTreeListView()
{
refreshingTimer = new Timer();
refreshingTimer.Interval = updateInterval;
refreshingTimer.Tick += delegate {
refreshingTimer.Enabled = false;
this.EndUpdate();
};
}
public void DelayRefresh()
{
if (!refreshingTimer.Enabled) {
this.BeginUpdate();
refreshingTimer.Enabled = true;
}
}
}
}

4
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/LocalVarPad.cs

@ -22,7 +22,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -22,7 +22,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
{
public class LocalVarPad : DebuggerPad
{
TreeListView localVarList;
DebuggerTreeListView localVarList;
ColumnHeader name = new ColumnHeader();
ColumnHeader val = new ColumnHeader();
@ -37,7 +37,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -37,7 +37,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
protected override void InitializeComponents()
{
//iconsService = (ClassBrowserIconsService)ServiceManager.Services.GetService(typeof(ClassBrowserIconsService));
localVarList = new TreeListView();
localVarList = new DebuggerTreeListView();
localVarList.SmallImageList = DebuggerIcons.ImageList;
localVarList.ShowPlusMinus = true;
localVarList.FullRowSelect = true;

17
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/TreeListViewDebuggerItem.cs

@ -59,23 +59,20 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -59,23 +59,20 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
void Update(object sender, DebuggerEventArgs e)
{
if (this.TreeListView is DebuggerTreeListView) {
((DebuggerTreeListView)this.TreeListView).DelayRefresh();
}
Highlight = (Variable.Value.AsString != SubItems[1].Text);
Update();
}
public void Update()
{
if (this.SubItems[0].Text != Variable.Name)
this.SubItems[0].Text = Variable.Name;
if (this.SubItems[1].Text != Variable.Value.AsString)
this.SubItems[1].Text = Variable.Value.AsString;
if (this.SubItems[2].Text != Variable.Value.Type)
this.SubItems[2].Text = Variable.Value.Type;
this.SubItems[0].Text = Variable.Name;
this.SubItems[1].Text = Variable.Value.AsString;
this.SubItems[2].Text = Variable.Value.Type;
int imageIndex = DebuggerIcons.GetImageListIndex(variable);
if (this.ImageIndex != imageIndex) {
this.ImageIndex = imageIndex;
}
this.ImageIndex = DebuggerIcons.GetImageListIndex(variable);
if (IsExpanded) {
variable.SubVariables.Update();

Loading…
Cancel
Save