summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
diff options
context:
space:
mode:
authorEduardo M. Fleury <eduardo.fleury@openbossa.org>2009-05-28 15:37:00 (GMT)
committerEduardo M. Fleury <eduardo.fleury@openbossa.org>2009-07-22 18:04:05 (GMT)
commita4f2082d34f5ef337ec5f280bd2a531eefb32e7f (patch)
tree6d25fd812f112363b448a4cec6fd15491739b169 /src/gui/graphicsview/qgraphicsanchorlayout_p.cpp
parent7aa43c713b99905036c5118e2031de1017663741 (diff)
downloadQt-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.cpp10
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;