diff options
author | Titta Heikkala <titta.heikkala@theqtcompany.com> | 2014-11-27 10:25:53 +0200 |
---|---|---|
committer | Titta Heikkala <titta.heikkala@theqtcompany.com> | 2014-11-27 11:00:28 +0200 |
commit | 8e20d47d8440630a1a6f2e1617fff4dbd8f04d2d (patch) | |
tree | 13eb740f5a5b396e6d88949cca867f221a179e92 /src | |
parent | 39be6d68b7b88a4da77d9390e3586eed4aaa0a72 (diff) |
Fix QLogValueAxis update
Reverting previous fix. Instead fix the update so that the axis arrow
and title are updated for logarithmic axis even when the layout is
empty. The logarithmic axis is special case as it can have zero ticks
where the other axises have to have at least two.
Change-Id: I47d49e83b713994d4b01e022df5badcb5d947095
Task-number: QTRD-3431
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/charts/axis/horizontalaxis.cpp | 10 | ||||
-rw-r--r-- | src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp | 6 | ||||
-rw-r--r-- | src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp | 6 | ||||
-rw-r--r-- | src/charts/axis/verticalaxis.cpp | 11 |
4 files changed, 18 insertions, 15 deletions
diff --git a/src/charts/axis/horizontalaxis.cpp b/src/charts/axis/horizontalaxis.cpp index 1323382d..de15fcb8 100644 --- a/src/charts/axis/horizontalaxis.cpp +++ b/src/charts/axis/horizontalaxis.cpp @@ -37,14 +37,12 @@ void HorizontalAxis::updateGeometry() { const QVector<qreal> &layout = ChartAxisElement::layout(); - if (layout.isEmpty()) + if (layout.isEmpty() && axis()->type() != QAbstractAxis::AxisTypeLogValue) return; QStringList labelList = labels(); - QList<QGraphicsItem *> lines = gridItems(); QList<QGraphicsItem *> labels = labelItems(); - QList<QGraphicsItem *> shades = shadeItems(); QList<QGraphicsItem *> arrow = arrowItems(); QGraphicsTextItem *title = titleItem(); @@ -90,6 +88,12 @@ void HorizontalAxis::updateGeometry() availableSpace -= titleBoundingRect.height(); } + if (layout.isEmpty() && axis()->type() == QAbstractAxis::AxisTypeLogValue) + return; + + QList<QGraphicsItem *> lines = gridItems(); + QList<QGraphicsItem *> shades = shadeItems(); + for (int i = 0; i < layout.size(); ++i) { //items QGraphicsLineItem *gridItem = static_cast<QGraphicsLineItem*>(lines.at(i)); diff --git a/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp b/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp index 33d12135..30d1a6ba 100644 --- a/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp +++ b/src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp @@ -48,10 +48,10 @@ QVector<qreal> ChartLogValueAxisX::calculateLayout() const qreal ceilEdge = ceil(leftEdge); int tickCount = qAbs(ceil(logMax) - ceil(logMin)); - points.resize(tickCount + 1); + points.resize(tickCount); const QRectF &gridRect = gridGeometry(); const qreal deltaX = gridRect.width() / qAbs(logMax - logMin); - for (int i = 0; i <= tickCount; ++i) + for (int i = 0; i < tickCount; ++i) points[i] = (ceilEdge + qreal(i)) * deltaX - leftEdge * deltaX + gridRect.left(); return points; @@ -60,8 +60,6 @@ QVector<qreal> ChartLogValueAxisX::calculateLayout() const void ChartLogValueAxisX::updateGeometry() { const QVector<qreal>& layout = ChartAxisElement::layout(); - if (layout.isEmpty()) - return; setLabels(createLogValueLabels(m_axis->min(), m_axis->max(), m_axis->base(), layout.size(), m_axis->labelFormat())); HorizontalAxis::updateGeometry(); } diff --git a/src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp b/src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp index 341dee8d..0fc7329c 100644 --- a/src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp +++ b/src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp @@ -47,10 +47,10 @@ QVector<qreal> ChartLogValueAxisY::calculateLayout() const qreal ceilEdge = ceil(leftEdge); int tickCount = qAbs(ceil(logMax) - ceil(logMin)); - points.resize(tickCount + 1); + points.resize(tickCount); const QRectF &gridRect = gridGeometry(); const qreal deltaY = gridRect.height() / qAbs(logMax - logMin); - for (int i = 0; i <= tickCount; ++i) + for (int i = 0; i < tickCount; ++i) points[i] = (ceilEdge + qreal(i)) * -deltaY - leftEdge * -deltaY + gridRect.bottom(); return points; @@ -60,8 +60,6 @@ QVector<qreal> ChartLogValueAxisY::calculateLayout() const void ChartLogValueAxisY::updateGeometry() { const QVector<qreal> &layout = ChartAxisElement::layout(); - if (layout.isEmpty()) - return; setLabels(createLogValueLabels(m_axis->min(), m_axis->max(), m_axis->base(), layout.size(), m_axis->labelFormat())); VerticalAxis::updateGeometry(); } diff --git a/src/charts/axis/verticalaxis.cpp b/src/charts/axis/verticalaxis.cpp index 294e1a56..ddea15c3 100644 --- a/src/charts/axis/verticalaxis.cpp +++ b/src/charts/axis/verticalaxis.cpp @@ -36,14 +36,12 @@ void VerticalAxis::updateGeometry() { const QVector<qreal> &layout = ChartAxisElement::layout(); - if (layout.isEmpty()) + if (layout.isEmpty() && axis()->type() != QAbstractAxis::AxisTypeLogValue) return; QStringList labelList = labels(); - QList<QGraphicsItem *> lines = gridItems(); QList<QGraphicsItem *> labels = labelItems(); - QList<QGraphicsItem *> shades = shadeItems(); QList<QGraphicsItem *> arrow = arrowItems(); QGraphicsTextItem *title = titleItem(); @@ -55,7 +53,6 @@ void VerticalAxis::updateGeometry() qreal height = axisRect.bottom(); - //arrow QGraphicsLineItem *arrowItem = static_cast<QGraphicsLineItem*>(arrow.at(0)); @@ -93,6 +90,12 @@ void VerticalAxis::updateGeometry() availableSpace -= titleBoundingRect.height(); } + if (layout.isEmpty() && axis()->type() == QAbstractAxis::AxisTypeLogValue) + return; + + QList<QGraphicsItem *> lines = gridItems(); + QList<QGraphicsItem *> shades = shadeItems(); + for (int i = 0; i < layout.size(); ++i) { //items QGraphicsLineItem *gridItem = static_cast<QGraphicsLineItem *>(lines.at(i)); |