diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2016-09-19 13:11:35 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2016-09-19 10:46:21 +0000 |
commit | 6e224c11080feef2c6d7857d061a92e320e50899 (patch) | |
tree | 91e8af478b749500b0fb0688a1c279c2a6d65cf5 | |
parent | 92daac5d8c5e835d6abf2b4222470e07d778f7d4 (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.cpp | 11 |
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) |