Browse Source

Fixed wrong sorting of nested types in TypeDefinitionTreeNode.

pull/315/head
Andreas Weizel 12 years ago
parent
commit
79abe545f8
  1. 27
      src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs

27
src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs

@ -134,20 +134,29 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -134,20 +134,29 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
{
public int Compare(SharpTreeNode x, SharpTreeNode y)
{
var a = x.Model as IMemberModel;
var b = y.Model as IMemberModel;
if (a == null && b == null)
return NodeTextComparer.Compare(x, y);
if (a == null)
// "Base types" and "Derive types" nodes have precedence over other nodes
if ((x is BaseTypesTreeNode) && !(y is BaseTypesTreeNode))
return -1;
if (!(x is BaseTypesTreeNode) && (y is BaseTypesTreeNode))
return 1;
if ((x is DerivedTypesTreeNode) && !(y is DerivedTypesTreeNode))
return -1;
if (b == null)
if (!(x is DerivedTypesTreeNode) && (y is DerivedTypesTreeNode))
return 1;
if (a.SymbolKind < b.SymbolKind)
var a = x.Model as IMemberModel;
var b = y.Model as IMemberModel;
if ((a == null) && (b != null))
return -1;
if (a.SymbolKind > b.SymbolKind)
if ((a != null) && (b == null))
return 1;
if ((a != null) && (b != null)) {
if (a.SymbolKind < b.SymbolKind)
return -1;
if (a.SymbolKind > b.SymbolKind)
return 1;
}
return NodeTextComparer.Compare(x, y);
}

Loading…
Cancel
Save