diff options
author | Lukas Kosinski <lukasz@scythe-studio.com> | 2021-05-18 15:28:02 +0200 |
---|---|---|
committer | Lukas Kosinski <lukasz@scythe-studio.com> | 2021-06-03 14:16:15 +0200 |
commit | 3fadbefd2e12e1d3bf1a0bc240d92202926c4889 (patch) | |
tree | 0e804fc6485a3e4bb7d8830730a6eb0118a0a65b /src/charts/domain/abstractdomain.cpp | |
parent | 0d9811775fbf82d0630b8725806fe229694e2449 (diff) |
Add colorBy method to QXYSeries and QColorAxis
This feature adds the availability to pass list of values that
will be used to colorize points using points configuration feature
according to the gradient. Gradient can be either set when calling
the colorBy method or can be taken from attached QColorAxis.
QColorAxis displays color scale widget with ticks and range based
on data passed as colorBy method's parameter.
Task-number: QTBUG-89447
Change-Id: I611048fac0e787e0a1eeaf181c5d8e8a8354fac5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/charts/domain/abstractdomain.cpp')
-rw-r--r-- | src/charts/domain/abstractdomain.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/charts/domain/abstractdomain.cpp b/src/charts/domain/abstractdomain.cpp index 48014aa2..263c72a4 100644 --- a/src/charts/domain/abstractdomain.cpp +++ b/src/charts/domain/abstractdomain.cpp @@ -210,16 +210,26 @@ qreal AbstractDomain::niceNumber(qreal x, bool ceiling) bool AbstractDomain::attachAxis(QAbstractAxis *axis) { if (axis->orientation() == Qt::Vertical) { - QObject::connect(axis->d_ptr.data(), SIGNAL(rangeChanged(qreal,qreal)), this, SLOT(handleVerticalAxisRangeChanged(qreal,qreal))); - QObject::connect(this, SIGNAL(rangeVerticalChanged(qreal,qreal)), axis->d_ptr.data(), SLOT(handleRangeChanged(qreal,qreal))); + // Color axis isn't connected to range-related slots/signals as it doesn't need + // geometry domain and it doesn't need to handle zooming or scrolling. + if (axis->type() != QAbstractAxis::AxisTypeColor) { + QObject::connect(axis->d_ptr.data(), SIGNAL(rangeChanged(qreal, qreal)), this, + SLOT(handleVerticalAxisRangeChanged(qreal, qreal))); + QObject::connect(this, SIGNAL(rangeVerticalChanged(qreal, qreal)), axis->d_ptr.data(), + SLOT(handleRangeChanged(qreal, qreal))); + } QObject::connect(axis, &QAbstractAxis::reverseChanged, this, &AbstractDomain::handleReverseYChanged); m_reverseY = axis->isReverse(); } if (axis->orientation() == Qt::Horizontal) { - QObject::connect(axis->d_ptr.data(), SIGNAL(rangeChanged(qreal,qreal)), this, SLOT(handleHorizontalAxisRangeChanged(qreal,qreal))); - QObject::connect(this, SIGNAL(rangeHorizontalChanged(qreal,qreal)), axis->d_ptr.data(), SLOT(handleRangeChanged(qreal,qreal))); + if (axis->type() != QAbstractAxis::AxisTypeColor) { + QObject::connect(axis->d_ptr.data(), SIGNAL(rangeChanged(qreal, qreal)), this, + SLOT(handleHorizontalAxisRangeChanged(qreal, qreal))); + QObject::connect(this, SIGNAL(rangeHorizontalChanged(qreal, qreal)), axis->d_ptr.data(), + SLOT(handleRangeChanged(qreal, qreal))); + } QObject::connect(axis, &QAbstractAxis::reverseChanged, this, &AbstractDomain::handleReverseXChanged); m_reverseX = axis->isReverse(); |