From 537eb2f159cd894d3f2dde4261ade44e9c0ac3d8 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 12 Aug 2015 11:12:50 +0200 Subject: [PATCH] Cdbext: Do not sort container children. They are already sorted in an intended order. Task-number: QTCREATORBUG-14872 Change-Id: If28d41eb220cb875fa5ef25f0fab075329900bff Reviewed-by: Friedemann Kleint --- src/libs/qtcreatorcdbext/containers.cpp | 1 + src/libs/qtcreatorcdbext/symbolgroupnode.cpp | 2 +- src/libs/qtcreatorcdbext/symbolgroupnode.h | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libs/qtcreatorcdbext/containers.cpp b/src/libs/qtcreatorcdbext/containers.cpp index f2cde38d4d..ed7d13d837 100644 --- a/src/libs/qtcreatorcdbext/containers.cpp +++ b/src/libs/qtcreatorcdbext/containers.cpp @@ -1104,6 +1104,7 @@ AbstractSymbolGroupNodePtrVector containerChildren(SymbolGroupNode *node, int ty } if (!size) return AbstractSymbolGroupNodePtrVector(); + node->addFlags(SymbolGroupNode::PreSortedChildren); const unsigned maxArraySize = ExtensionContext::instance().parameters().maxArraySize; if (size > maxArraySize) size = maxArraySize; diff --git a/src/libs/qtcreatorcdbext/symbolgroupnode.cpp b/src/libs/qtcreatorcdbext/symbolgroupnode.cpp index 6f3e902a89..a4f39dd41f 100644 --- a/src/libs/qtcreatorcdbext/symbolgroupnode.cpp +++ b/src/libs/qtcreatorcdbext/symbolgroupnode.cpp @@ -168,7 +168,7 @@ bool AbstractSymbolGroupNode::accept(SymbolGroupNodeVisitor &visitor, break; case SymbolGroupNodeVisitor::VisitContinue: { AbstractSymbolGroupNodePtrVector c = children(); - if (visitor.sortChildrenAlphabetically()) { + if (visitor.sortChildrenAlphabetically() && !testFlags(SymbolGroupNode::PreSortedChildren)) { std::sort(c.begin(), c.end(), [](AbstractSymbolGroupNode *a, AbstractSymbolGroupNode *b) { return a->name() < b->name(); }); diff --git a/src/libs/qtcreatorcdbext/symbolgroupnode.h b/src/libs/qtcreatorcdbext/symbolgroupnode.h index 3fbbedd7ea..9d49869dba 100644 --- a/src/libs/qtcreatorcdbext/symbolgroupnode.h +++ b/src/libs/qtcreatorcdbext/symbolgroupnode.h @@ -230,7 +230,8 @@ public: AdditionalSymbol = 0x20, // Introduced by addSymbol, should not be visible Obscured = 0x40, // Symbol is obscured by (for example) fake container children ComplexDumperOk = 0x80, - WatchNode = 0x100 + WatchNode = 0x100, + PreSortedChildren = 0x200 }; ~SymbolGroupNode(); -- GitLab