Browse Source

Updating of TaskListPad is much faster now.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3105 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Siegfried Pammer 18 years ago
parent
commit
27a2bf0f17
  1. 70
      src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs
  2. 7
      src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPadCommands.cs

70
src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs

@ -6,13 +6,16 @@
// </file> // </file>
using System; using System;
using System.Windows.Forms;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using System.Windows.Forms;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.NRefactory; using ICSharpCode.NRefactory;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor; using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Gui
{ {
@ -22,6 +25,11 @@ namespace ICSharpCode.SharpDevelop.Gui
Dictionary<string, bool> displayedTokens; Dictionary<string, bool> displayedTokens;
IClass oldClass; IClass oldClass;
int selectedScopeIndex = 0; int selectedScopeIndex = 0;
bool isInitialized = false;
public bool IsInitialized {
get { return isInitialized; }
}
ToolStrip toolStrip; ToolStrip toolStrip;
Panel contentPanel = new Panel(); Panel contentPanel = new Panel();
@ -35,7 +43,8 @@ namespace ICSharpCode.SharpDevelop.Gui
public int SelectedScopeIndex { public int SelectedScopeIndex {
get { return selectedScopeIndex; } get { return selectedScopeIndex; }
set { selectedScopeIndex = value; set { selectedScopeIndex = value;
UpdateItems(); if (this.IsInitialized)
UpdateItems();
} }
} }
@ -78,15 +87,15 @@ namespace ICSharpCode.SharpDevelop.Gui
ProjectService.SolutionLoaded += OnSolutionOpen; ProjectService.SolutionLoaded += OnSolutionOpen;
ProjectService.SolutionClosed += OnSolutionClosed; ProjectService.SolutionClosed += OnSolutionClosed;
InternalShowResults(null, null); this.isInitialized = true;
} }
void Workbench_ActiveViewContentChanged(object sender, EventArgs e) void Workbench_ActiveViewContentChanged(object sender, EventArgs e)
{ {
if (WorkbenchSingleton.Workbench.ActiveViewContent == null) if (WorkbenchSingleton.Workbench.ActiveViewContent == null)
return; return;
if (isInitialized)
UpdateItems(); UpdateItems();
if (WorkbenchSingleton.Workbench.ActiveViewContent.Control is SharpDevelopTextAreaControl) { if (WorkbenchSingleton.Workbench.ActiveViewContent.Control is SharpDevelopTextAreaControl) {
SharpDevelopTextAreaControl ctrl = WorkbenchSingleton.Workbench.ActiveViewContent.Control as SharpDevelopTextAreaControl; SharpDevelopTextAreaControl ctrl = WorkbenchSingleton.Workbench.ActiveViewContent.Control as SharpDevelopTextAreaControl;
@ -149,21 +158,22 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
public void UpdateItems() public void UpdateItems()
{ {
this.taskView.BeginUpdate();
this.taskView.ClearTasks(); this.taskView.ClearTasks();
foreach (Task t in TaskService.CommentTasks) foreach (Task t in TaskService.CommentTasks) {
{ this.taskView.AddTask(t);
UpdateItem(t);
} }
RedrawContent(); RedrawContent();
this.taskView.EndUpdate();
} }
private void UpdateItem(Task item) void AddItem(Task item)
{ {
foreach (KeyValuePair<string, bool> pair in displayedTokens) foreach (KeyValuePair<string, bool> pair in displayedTokens) {
{
if (item.Description.StartsWith(pair.Key) && pair.Value && IsInScope(item)) if (item.Description.StartsWith(pair.Key) && pair.Value && IsInScope(item))
taskView.AddTask(item); taskView.AddTask(item);
} }
@ -195,7 +205,7 @@ namespace ICSharpCode.SharpDevelop.Gui
return true; return true;
} }
private IClass GetCurrentClass() IClass GetCurrentClass()
{ {
if (WorkbenchSingleton.Workbench.ActiveViewContent == null) if (WorkbenchSingleton.Workbench.ActiveViewContent == null)
return null; return null;
@ -213,7 +223,7 @@ namespace ICSharpCode.SharpDevelop.Gui
return null; return null;
} }
private IClass GetCurrentClass(Task item) IClass GetCurrentClass(Task item)
{ {
ParseInformation parseInfo = ParserService.GetParseInformation(item.FileName); ParseInformation parseInfo = ParserService.GetParseInformation(item.FileName);
if (parseInfo != null) { if (parseInfo != null) {
@ -241,32 +251,32 @@ namespace ICSharpCode.SharpDevelop.Gui
void TaskServiceAdded(object sender, TaskEventArgs e) void TaskServiceAdded(object sender, TaskEventArgs e)
{ {
this.taskView.BeginUpdate();
if (e.Task.TaskType == TaskType.Comment) { if (e.Task.TaskType == TaskType.Comment) {
UpdateItems(); AddItem(e.Task);
} }
RedrawContent(); RedrawContent();
this.taskView.EndUpdate();
} }
void TaskServiceRemoved(object sender, TaskEventArgs e) void TaskServiceRemoved(object sender, TaskEventArgs e)
{ {
this.taskView.BeginUpdate();
if (e.Task.TaskType == TaskType.Comment) { if (e.Task.TaskType == TaskType.Comment) {
UpdateItems(); foreach (ListViewItem item in this.taskView.Items) {
if (item.Tag == e.Task) {
this.taskView.Items.Remove(item);
break;
}
}
} }
RedrawContent(); RedrawContent();
} this.taskView.EndUpdate();
void InternalShowResults(object sender, EventArgs e)
{
UpdateItems();
//taskView.UpdateResults(TaskService.CommentTasks);
}
public void ShowResults(object sender, EventArgs e)
{
taskView.Invoke(new EventHandler(InternalShowResults));
// SelectTaskView(null, null);
} }
#region IClipboardHandler interface implementation #region IClipboardHandler interface implementation

7
src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPadCommands.cs

@ -72,7 +72,8 @@ namespace ICSharpCode.SharpDevelop.Gui
public override bool IsChecked { public override bool IsChecked {
get { return TaskListPad.Instance.DisplayedTokens[token]; } get { return TaskListPad.Instance.DisplayedTokens[token]; }
set { TaskListPad.Instance.DisplayedTokens[token] = value; set { TaskListPad.Instance.DisplayedTokens[token] = value;
TaskListPad.Instance.UpdateItems(); if (TaskListPad.Instance.IsInitialized)
TaskListPad.Instance.UpdateItems();
} }
} }
} }
@ -80,9 +81,9 @@ namespace ICSharpCode.SharpDevelop.Gui
public class TaskListTokensBuilder public class TaskListTokensBuilder
{ {
public static ShowTaskListTokenButton[] BuildItems(string[] tokens) public static ShowTaskListTokenButton[] BuildItems(string[] tokens)
{ {
ShowTaskListTokenButton[] buttons = new ShowTaskListTokenButton[tokens.Length]; ShowTaskListTokenButton[] buttons = new ShowTaskListTokenButton[tokens.Length];
for (int i = 0; i < buttons.Length; i++) for (int i = 0; i < buttons.Length; i++)
{ {
buttons[i] = new ShowTaskListTokenButton(tokens[i]); buttons[i] = new ShowTaskListTokenButton(tokens[i]);

Loading…
Cancel
Save