diff options
Diffstat (limited to 'src/qdoc/node.cpp')
-rw-r--r-- | src/qdoc/node.cpp | 65 |
1 files changed, 33 insertions, 32 deletions
diff --git a/src/qdoc/node.cpp b/src/qdoc/node.cpp index 7bec46843..2babb94ab 100644 --- a/src/qdoc/node.cpp +++ b/src/qdoc/node.cpp @@ -75,6 +75,39 @@ void Node::initialize() bool Node::nodeNameLessThan(const Node *n1, const Node *n2) { + if (n1->isDocumentNode() && n2->isDocumentNode()) { + const DocumentNode* f1 = static_cast<const DocumentNode*>(n1); + const DocumentNode* f2 = static_cast<const DocumentNode*>(n2); + if (f1->fullTitle() < f2->fullTitle()) + return true; + else if (f1->fullTitle() > f2->fullTitle()) + return false; + } + + if (n1->isCollectionNode() && n2->isCollectionNode()) { + const CollectionNode* f1 = static_cast<const CollectionNode*>(n1); + const CollectionNode* f2 = static_cast<const CollectionNode*>(n2); + if (f1->fullTitle() < f2->fullTitle()) + return true; + else if (f1->fullTitle() > f2->fullTitle()) + return false; + } + + if (n1->type() == Node::Function && n2->type() == Node::Function) { + const FunctionNode* f1 = static_cast<const FunctionNode*>(n1); + const FunctionNode* f2 = static_cast<const FunctionNode*>(n2); + + if (f1->isConst() < f2->isConst()) + return true; + else if (f1->isConst() > f2->isConst()) + return false; + + if (f1->signature(false) < f2->signature(false)) + return true; + else if (f1->signature(false) > f2->signature(false)) + return false; + } + if (n1->location().filePath() < n2->location().filePath()) return true; else if (n1->location().filePath() > n2->location().filePath()) @@ -95,38 +128,6 @@ bool Node::nodeNameLessThan(const Node *n1, const Node *n2) else if (n1->access() > n2->access()) return false; - if (n1->type() == Node::Function && n2->type() == Node::Function) { - const FunctionNode* f1 = static_cast<const FunctionNode*>(n1); - const FunctionNode* f2 = static_cast<const FunctionNode*>(n2); - - if (f1->isConst() < f2->isConst()) - return true; - else if (f1->isConst() > f2->isConst()) - return false; - - if (f1->signature(false) < f2->signature(false)) - return true; - else if (f1->signature(false) > f2->signature(false)) - return false; - } - - if (n1->isDocumentNode() && n2->isDocumentNode()) { - const DocumentNode* f1 = static_cast<const DocumentNode*>(n1); - const DocumentNode* f2 = static_cast<const DocumentNode*>(n2); - if (f1->fullTitle() < f2->fullTitle()) - return true; - else if (f1->fullTitle() > f2->fullTitle()) - return false; - } - else if (n1->isCollectionNode() && n2->isCollectionNode()) { - const CollectionNode* f1 = static_cast<const CollectionNode*>(n1); - const CollectionNode* f2 = static_cast<const CollectionNode*>(n2); - if (f1->fullTitle() < f2->fullTitle()) - return true; - else if (f1->fullTitle() > f2->fullTitle()) - return false; - } - return false; } |