From 6e224c11080feef2c6d7857d061a92e320e50899 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 19 Sep 2016 13:11:35 +0300 Subject: Ensure axis geometry is correct when axis is shown MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ää Reviewed-by: Mika Salmela Reviewed-by: Miikka Heikkinen --- src/charts/axis/chartaxiselement.cpp | 11 +++++++++-- 1 file 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) -- cgit v1.2.3