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:
authorMike Krüger <mkrueger@xamarin.com>2012-05-08 11:29:54 +0400
committerMike Krüger <mkrueger@xamarin.com>2012-05-08 11:30:26 +0400
commitac2eff615c4e6e9d2975fc624470d5a5430733a2 (patch)
tree430effe0673adbd5baa5c7f5154b849fc28609d1
parent1c04fef3ab793ee5ca4edbf698be31481ee1167f (diff)
Fixed 'Bug 4759 - Search in assembly browser is broken'.
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs113
1 files changed, 61 insertions, 52 deletions
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
index a0ee322acc..b95699e8a2 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
@@ -290,22 +290,13 @@ namespace MonoDevelop.AssemblyBrowser
void SearchTreeviewhandleRowActivated (object o, RowActivatedArgs args)
{
- Gtk.TreeIter selectedIter;
+ TreeIter selectedIter;
if (searchTreeview.Selection.GetSelected (out selectedIter)) {
-// var member = (IUnresolvedEntity)(searchMode != SearchMode.Type ? memberListStore.GetValue (selectedIter, 4) : typeListStore.GetValue (selectedIter, 4));
+ var member = (IUnresolvedEntity)(searchMode != SearchMode.Type ? memberListStore.GetValue (selectedIter, 4) : typeListStore.GetValue (selectedIter, 4));
-// var nav = SearchMember (member);
- if (searchMode == SearchMode.Disassembler) {
- this.notebook1.Page = 0;
-// int idx = DomMethodNodeBuilder.Disassemble ((DomCecilMethod)member, false).ToUpper ().IndexOf (searchEntry.Text.ToUpper ());
-// this.inspectLabel.Selectable = true;
-// this.inspectLabel.SelectRegion (idx, idx + searchEntry.Text.Length);
- }
- if (searchMode == SearchMode.Decompiler) {
- this.notebook1.Page = 0;
-// int idx = DomMethodNodeBuilder.Decompile ((DomCecilMethod)member, false).ToUpper ().IndexOf (searchEntry.Text.ToUpper ());
-// this.inspectLabel.Selectable = true;
-// this.inspectLabel.SelectRegion (idx, idx + searchEntry.Text.Length);
+ var nav = SearchMember (member);
+ if (nav != null) {
+ notebook1.Page = 0;
}
}
}
@@ -656,10 +647,11 @@ namespace MonoDevelop.AssemblyBrowser
foreach (var unit in this.definitions) {
types += unit.UnresolvedAssembly.TopLevelTypeDefinitions.Count ();
}
- var members = new List<IUnresolvedMember> ();
+ var memberDict = new Dictionary<AssemblyLoader, List<IUnresolvedMember>> ();
switch (searchMode) {
case SearchMode.Member:
foreach (var unit in this.definitions) {
+ var members = new List<IUnresolvedMember> ();
foreach (var type in unit.UnresolvedAssembly.TopLevelTypeDefinitions) {
if (worker.CancellationPending)
return;
@@ -672,24 +664,29 @@ namespace MonoDevelop.AssemblyBrowser
}
}
}
+ memberDict [unit] = members;
}
Gtk.Application.Invoke (delegate {
IdeApp.Workbench.StatusBar.SetProgressFraction ((double)curType / types);
- foreach (var member in members) {
- if (worker.CancellationPending)
- return;
- memberListStore.AppendValues (ImageService.GetPixbuf (member.GetStockIcon (), Gtk.IconSize.Menu),
- member.Name,
- member.DeclaringTypeDefinition.FullName,
- "", //((DomCecilCompilationUnit)member.DeclaringType.CompilationUnit).AssemblyDefinition.Name.FullName,
- member);
+ foreach (var kv in memberDict) {
+ foreach (var member in kv.Value) {
+ if (worker.CancellationPending)
+ return;
+ memberListStore.AppendValues (ImageService.GetPixbuf (member.GetStockIcon (), Gtk.IconSize.Menu),
+ member.Name,
+ member.DeclaringTypeDefinition.FullName,
+ kv.Key.Assembly.FullName,
+ member);
+ }
}
- });
+ }
+ );
break;
case SearchMode.Disassembler:
Gtk.Application.Invoke (delegate {
IdeApp.Workbench.StatusBar.BeginProgress (GettextCatalog.GetString ("Searching string in disassembled code..."));
- });
+ }
+ );
foreach (var unit in this.definitions) {
foreach (var type in unit.UnresolvedAssembly.TopLevelTypeDefinitions) {
if (worker.CancellationPending)
@@ -706,16 +703,19 @@ namespace MonoDevelop.AssemblyBrowser
}
Gtk.Application.Invoke (delegate {
IdeApp.Workbench.StatusBar.SetProgressFraction ((double)curType / types);
- foreach (var member in members) {
- if (worker.CancellationPending)
- return;
- memberListStore.AppendValues ("", //iImageService.GetPixbuf (member.StockIcon, Gtk.IconSize.Menu),
- member.Name,
- member.DeclaringTypeDefinition.FullName,
- "", //((DomCecilCompilationUnit)member.DeclaringType.CompilationUnit).AssemblyDefinition.Name.FullName,
- member);
+ foreach (var kv in memberDict) {
+ foreach (var member in kv.Value) {
+ if (worker.CancellationPending)
+ return;
+ memberListStore.AppendValues ("", //iImageService.GetPixbuf (member.StockIcon, Gtk.IconSize.Menu),
+ member.Name,
+ member.DeclaringTypeDefinition.FullName,
+ kv.Key.Assembly.FullName,
+ member);
+ }
}
- });
+ }
+ );
break;
case SearchMode.Decompiler:
foreach (var unit in this.definitions) {
@@ -733,36 +733,44 @@ namespace MonoDevelop.AssemblyBrowser
}
Gtk.Application.Invoke (delegate {
IdeApp.Workbench.StatusBar.SetProgressFraction ((double)curType / types);
- foreach (var member in members) {
- if (worker.CancellationPending)
- return;
- memberListStore.AppendValues ("", //ImageService.GetPixbuf (member.StockIcon, Gtk.IconSize.Menu),
- member.Name,
- member.DeclaringTypeDefinition.FullName,
- "", //((DomCecilCompilationUnit)member.DeclaringType.CompilationUnit).AssemblyDefinition.Name.FullName,
- member);
+ foreach (var kv in memberDict) {
+ foreach (var member in kv.Value) {
+ if (worker.CancellationPending)
+ return;
+ memberListStore.AppendValues ("", //ImageService.GetPixbuf (member.StockIcon, Gtk.IconSize.Menu),
+ member.Name,
+ member.DeclaringTypeDefinition.FullName,
+ kv.Key.Assembly.FullName,
+ member);
+ }
}
- });
+ }
+ );
break;
case SearchMode.Type:
- var typeList = new List<IUnresolvedTypeDefinition> ();
+ var typeDict = new Dictionary<AssemblyLoader, List<IUnresolvedTypeDefinition>> ();
foreach (var unit in this.definitions) {
+ var typeList = new List<IUnresolvedTypeDefinition> ();
foreach (var type in unit.UnresolvedAssembly.TopLevelTypeDefinitions) {
if (worker.CancellationPending)
return;
if (type.FullName.ToUpper ().IndexOf (pattern) >= 0)
typeList.Add (type);
}
+ typeDict [unit] = typeList;
+ Console.WriteLine (unit.UnresolvedAssembly.AssemblyName);
}
Gtk.Application.Invoke (delegate {
- foreach (var type in typeList) {
- if (worker.CancellationPending)
- return;
- typeListStore.AppendValues (ImageService.GetPixbuf (type.GetStockIcon (), Gtk.IconSize.Menu),
- type.Name,
- type.FullName.Substring (0, type.FullName.Length - type.Name.Length),
- "", // ((DomCecilCompilationUnit)type.CompilationUnit).AssemblyDefinition.Name.FullName,
- type);
+ foreach (var kv in typeDict) {
+ foreach (var type in kv.Value) {
+ if (worker.CancellationPending)
+ return;
+ typeListStore.AppendValues (ImageService.GetPixbuf (type.GetStockIcon (), Gtk.IconSize.Menu),
+ type.Name,
+ type.Namespace,
+ kv.Key.Assembly.FullName,
+ type);
+ }
}
});
@@ -1376,6 +1384,7 @@ namespace MonoDevelop.AssemblyBrowser
ActiveMember = currentItem.DataItem as IEntity;
navigationForwardHistory.Clear ();
}
+ notebook1.Page = 0;
UpdateNavigationActions ();
CreateOutput ();
}