summaryrefslogtreecommitdiffstats
path: root/src/charts/xychart/glxyseriesdata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/xychart/glxyseriesdata.cpp')
-rw-r--r--src/charts/xychart/glxyseriesdata.cpp74
1 files changed, 63 insertions, 11 deletions
diff --git a/src/charts/xychart/glxyseriesdata.cpp b/src/charts/xychart/glxyseriesdata.cpp
index f00a837e..37da55b1 100644
--- a/src/charts/xychart/glxyseriesdata.cpp
+++ b/src/charts/xychart/glxyseriesdata.cpp
@@ -1,23 +1,31 @@
-/******************************************************************************
+/****************************************************************************
**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
**
-** This file is part of the Qt Charts module.
-**
-** $QT_BEGIN_LICENSE:COMM$
+** This file is part of the Qt Charts module of the Qt Toolkit.
**
+** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
-******************************************************************************/
+****************************************************************************/
#include "private/glxyseriesdata_p.h"
#include "private/abstractdomain_p.h"
@@ -66,16 +74,30 @@ void GLXYSeriesDataManager::setPoints(QXYSeries *series, const AbstractDomain *d
QVector<float> &array = data->array;
bool logAxis = false;
+ bool reverseX = false;
+ bool reverseY = false;
foreach (QAbstractAxis* axis, series->attachedAxes()) {
if (axis->type() == QAbstractAxis::AxisTypeLogValue) {
logAxis = true;
- break;
+ }
+ if (axis->isReverse()) {
+ if (axis->orientation() == Qt::Horizontal)
+ reverseX = true;
+ else
+ reverseY = true;
+ if (reverseX && reverseY)
+ break;
}
}
-
int count = series->count();
int index = 0;
array.resize(count * 2);
+ QMatrix4x4 matrix;
+ if (reverseX)
+ matrix.scale(-1.0, 1.0);
+ if (reverseY)
+ matrix.scale(1.0, -1.0);
+ data->matrix = matrix;
if (logAxis) {
// Use domain to resolve geometry points. Not as fast as shaders, but simpler that way
QVector<QPointF> geometryPoints = domain->calculateGeometryPoints(series->pointsVector());
@@ -177,5 +199,35 @@ void GLXYSeriesDataManager::handleScatterMarkerSizeChange()
}
}
+void GLXYSeriesDataManager::handleAxisReverseChanged(const QList<QAbstractSeries *> &seriesList)
+{
+ bool reverseX = false;
+ bool reverseY = false;
+ foreach (QAbstractSeries *series, seriesList) {
+ if (QXYSeries *xyseries = qobject_cast<QXYSeries *>(series)) {
+ GLXYSeriesData *data = m_seriesDataMap.value(xyseries);
+ if (data) {
+ foreach (QAbstractAxis* axis, xyseries->attachedAxes()) {
+ if (axis->isReverse()) {
+ if (axis->orientation() == Qt::Horizontal)
+ reverseX = true;
+ else
+ reverseY = true;
+ }
+ if (reverseX && reverseY)
+ break;
+ }
+ QMatrix4x4 matrix;
+ if (reverseX)
+ matrix.scale(-1.0, 1.0);
+ if (reverseY)
+ matrix.scale(1.0, -1.0);
+ data->matrix = matrix;
+ data->dirty = true;
+ }
+ }
+ }
+}
+
QT_CHARTS_END_NAMESPACE