diff --git a/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs b/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs index 009702680f..317ca39bf9 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs @@ -24,6 +24,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser set { workspace.MainAssemblyList = value; } } + public IAssemblyList UnpinnedAssemblies { + get { return workspace.UnpinnedAssemblies; } + set { workspace.UnpinnedAssemblies = value; } + } + public IAssemblyModel FindAssemblyModel(FileName fileName) { return workspace.FindAssemblyModel(fileName); diff --git a/src/Main/Base/Project/Dom/ClassBrowser/IClassBrowser.cs b/src/Main/Base/Project/Dom/ClassBrowser/IClassBrowser.cs index 2174693bb2..031ada059a 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/IClassBrowser.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/IClassBrowser.cs @@ -10,6 +10,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser public interface IClassBrowser { IAssemblyList MainAssemblyList { get; set; } + IAssemblyList UnpinnedAssemblies { get; set; } ICollection AssemblyLists { get; } IAssemblyModel FindAssemblyModel(FileName fileName); } diff --git a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceModel.cs b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceModel.cs index 2f1bc0ec4f..8c59e2ff58 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceModel.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceModel.cs @@ -21,6 +21,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser } IAssemblyList mainAssemblyList; + IAssemblyList unpinnedAssemblies; public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; @@ -43,6 +44,18 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser } } + public IAssemblyList UnpinnedAssemblies { + get { + return unpinnedAssemblies; + } + set { + if (unpinnedAssemblies != value) { + unpinnedAssemblies = value; + OnPropertyChanged(); + } + } + } + public IAssemblyModel FindAssemblyModel(FileName fileName) { foreach (var list in assemblyLists) { @@ -50,13 +63,17 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser if (model != null) return model; } - return mainAssemblyList.Assemblies.FirstOrDefault(m => m.Location == fileName); + var modelInMainAssemblyList = mainAssemblyList.Assemblies.FirstOrDefault(m => m.Location == fileName); + if (modelInMainAssemblyList != null) + return modelInMainAssemblyList; + return unpinnedAssemblies.Assemblies.FirstOrDefault(m => m.Location == fileName); } public WorkspaceModel() { this.assemblyLists = new SimpleModelCollection(); this.MainAssemblyList = new AssemblyList(); + this.UnpinnedAssemblies = new AssemblyList(); } } } diff --git a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs index 0e33b3d89e..c0c23d9179 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs @@ -54,7 +54,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser } protected override IModelCollection ModelChildren { - get { return workspace.MainAssemblyList.Assemblies; } + get { return workspace.MainAssemblyList.Assemblies.Concat(workspace.UnpinnedAssemblies.Assemblies); } } protected override IComparer NodeComparer { diff --git a/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs b/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs index 4cddf46b43..3ef5aecbb0 100644 --- a/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs +++ b/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs @@ -88,6 +88,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser set { treeView.MainAssemblyList = value; } } + public IAssemblyList UnpinnedAssemblies { + get { return treeView.UnpinnedAssemblies; } + set { treeView.UnpinnedAssemblies = value; } + } + public IAssemblyModel FindAssemblyModel(FileName fileName) { return treeView.FindAssemblyModel(fileName);