summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2016-09-19 13:11:35 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2016-09-19 10:46:21 +0000
commit6e224c11080feef2c6d7857d061a92e320e50899 (patch)
tree91e8af478b749500b0fb0688a1c279c2a6d65cf5
parent92daac5d8c5e835d6abf2b4222470e07d778f7d4 (diff)
Ensure axis geometry is correct when axis is shown
Axis geometry calculations are not done for hidden axes for optimization reasons, so we need to explicitly do them when axes are shown, if necessary. Task-number: QTBUG-56037 Change-Id: Idf216dfe2c2437ca8a23ead46504edb8769f4c2d Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Mika Salmela <mika.salmela@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r--src/charts/axis/chartaxiselement.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/charts/axis/chartaxiselement.cpp b/src/charts/axis/chartaxiselement.cpp
index f4faa5de..c5a1ab91 100644
--- a/src/charts/axis/chartaxiselement.cpp
+++ b/src/charts/axis/chartaxiselement.cpp
@@ -240,8 +240,15 @@ void ChartAxisElement::handleVisibleChanged(bool visible)
m_labels->setVisible(axis()->labelsVisible());
m_title->setVisible(axis()->isTitleVisible());
}
-
- if (presenter()) presenter()->layout()->invalidate();
+ if (presenter()) {
+ if (visible) {
+ QSizeF before = effectiveSizeHint(Qt::PreferredSize);
+ QSizeF after = sizeHint(Qt::PreferredSize);
+ if (before != after)
+ QGraphicsLayoutItem::updateGeometry();
+ }
+ presenter()->layout()->invalidate();
+ }
}
void ChartAxisElement::handleRangeChanged(qreal min, qreal max)