summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@theqtcompany.com>2014-11-27 10:25:53 +0200
committerTitta Heikkala <titta.heikkala@theqtcompany.com>2014-11-27 11:00:28 +0200
commit8e20d47d8440630a1a6f2e1617fff4dbd8f04d2d (patch)
tree13eb740f5a5b396e6d88949cca867f221a179e92 /src
parent39be6d68b7b88a4da77d9390e3586eed4aaa0a72 (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.cpp10
-rw-r--r--src/charts/axis/logvalueaxis/chartlogvalueaxisx.cpp6
-rw-r--r--src/charts/axis/logvalueaxis/chartlogvalueaxisy.cpp6
-rw-r--r--src/charts/axis/verticalaxis.cpp11
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));