diff options
author | Eduardo M. Fleury <eduardo.fleury@openbossa.org> | 2009-05-28 15:37:00 (GMT) |
---|---|---|
committer | Eduardo M. Fleury <eduardo.fleury@openbossa.org> | 2009-07-22 18:04:05 (GMT) |
commit | a4f2082d34f5ef337ec5f280bd2a531eefb32e7f (patch) | |
tree | 6d25fd812f112363b448a4cec6fd15491739b169 /src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | |
parent | 7aa43c713b99905036c5118e2031de1017663741 (diff) | |
download | Qt-a4f2082d34f5ef337ec5f280bd2a531eefb32e7f.zip Qt-a4f2082d34f5ef337ec5f280bd2a531eefb32e7f.tar.gz Qt-a4f2082d34f5ef337ec5f280bd2a531eefb32e7f.tar.bz2 |
QGraphicsAnchorLayout: Bugfix in preferred size calculation
Observe the "skipInPreferred" flag in AnchorEdges to avoid adding
the layout internal anchors to the preferred size calculation, what
was leading to non-optimal results.
Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org>
Diffstat (limited to 'src/gui/graphicsview/qgraphicsanchorlayout_p.cpp')
-rw-r--r-- | src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index c95baa3..d3d0072 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -1020,13 +1020,17 @@ void QGraphicsAnchorLayoutPrivate::solvePreferred(QList<QSimplexConstraint *> co // A + A_shrinker - A_grower = A_pref // for (int i = 0; i < variables.size(); ++i) { + AnchorData *ad = static_cast<AnchorData *>(variables[i]); + if (ad->skipInPreferred) + continue; + QSimplexVariable *grower = new QSimplexVariable; QSimplexVariable *shrinker = new QSimplexVariable; QSimplexConstraint *c = new QSimplexConstraint; - c->variables.insert(variables[i], 1.0); + c->variables.insert(ad, 1.0); c->variables.insert(shrinker, 1.0); c->variables.insert(grower, -1.0); - c->constant = variables[i]->prefSize; + c->constant = ad->prefSize; preferredConstraints += c; preferredVariables += grower; @@ -1045,7 +1049,7 @@ void QGraphicsAnchorLayoutPrivate::solvePreferred(QList<QSimplexConstraint *> co // Calculate minimum values qreal min = simplex.solveMin(); - // Save sizeAtMinimum results + // Save sizeAtPreferred results for (int i = 0; i < variables.size(); ++i) { AnchorData *ad = static_cast<AnchorData *>(variables[i]); ad->sizeAtPreferred = ad->result; |