diff options
-rw-r--r-- | src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 9413ec3..26207e1 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -1327,12 +1327,14 @@ QGraphicsAnchorLayoutPrivate::getGraphParts(Orientation orientation) } QList<QSimplexConstraint *> trunkConstraints; + QList<QSimplexConstraint *> nonTrunkConstraints; QSet<QSimplexVariable *> trunkVariables; trunkVariables += edgeL1; trunkVariables += edgeL2; bool dirty; + bool hasNonTrunkConstraints = false; do { dirty = false; @@ -1358,7 +1360,9 @@ QGraphicsAnchorLayoutPrivate::getGraphParts(Orientation orientation) it = remainingConstraints.erase(it); dirty = true; } else { - ++it; + nonTrunkConstraints += c; + it = remainingConstraints.erase(it); + hasNonTrunkConstraints = true; } } } while (dirty); @@ -1366,15 +1370,8 @@ QGraphicsAnchorLayoutPrivate::getGraphParts(Orientation orientation) QList< QList<QSimplexConstraint *> > result; result += trunkConstraints; - if (!remainingConstraints.isEmpty()) { - QList<QSimplexConstraint *> nonTrunkConstraints; - QLinkedList<QSimplexConstraint *>::iterator it = remainingConstraints.begin(); - while (it != remainingConstraints.end()) { - nonTrunkConstraints += *it; - ++it; - } + if (hasNonTrunkConstraints) result += nonTrunkConstraints; - } return result; } |