summaryrefslogtreecommitdiffstats
path: root/src/charts
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts')
-rw-r--r--src/charts/scatterchart/qscatterseries.cpp25
-rw-r--r--src/charts/scatterchart/qscatterseries.h6
-rw-r--r--src/charts/xychart/glxyseriesdata.cpp35
-rw-r--r--src/charts/xychart/glxyseriesdata_p.h2
4 files changed, 63 insertions, 5 deletions
diff --git a/src/charts/scatterchart/qscatterseries.cpp b/src/charts/scatterchart/qscatterseries.cpp
index 25e685cc..ca643a6b 100644
--- a/src/charts/scatterchart/qscatterseries.cpp
+++ b/src/charts/scatterchart/qscatterseries.cpp
@@ -125,13 +125,17 @@
\fn void QScatterSeries::colorChanged(QColor color)
Signal is emitted when the fill (brush) color has changed to \a color.
*/
+/*!
+ \qmlsignal ScatterSeries::onColorChanged(color color)
+ Signal is emitted when the fill (brush) color has changed to \a color.
+*/
/*!
\fn void QScatterSeries::borderColorChanged(QColor color)
Signal is emitted when the line (pen) color has changed to \a color.
*/
/*!
- \qmlsignal ScatterSeries::borderColorChanged(color color)
+ \qmlsignal ScatterSeries::onBorderColorChanged(color color)
Signal is emitted when the line (pen) color has changed to \a color.
*/
@@ -141,6 +145,23 @@
\sa QAbstractSeries, SeriesType
*/
+/*!
+ \fn void QScatterSeries::markerShapeChanged(MarkerShape shape)
+ Signal is emitted when the marker shape has changed to \a shape.
+*/
+/*!
+ \qmlsignal ScatterSeries::onMarkerShapeChanged(MarkerShape shape)
+ Signal is emitted when the marker shape has changed to \a shape.
+*/
+/*!
+ \fn void QScatterSeries::markerSizeChanged(qreal size)
+ Signal is emitted when the marker size has changed to \a size.
+*/
+/*!
+ \qmlsignal ScatterSeries::onMarkerSizeChanged(real size)
+ Signal is emitted when the marker size has changed to \a size.
+*/
+
QT_CHARTS_BEGIN_NAMESPACE
/*!
@@ -251,6 +272,7 @@ void QScatterSeries::setMarkerShape(MarkerShape shape)
if (d->m_shape != shape) {
d->m_shape = shape;
emit d->updated();
+ emit markerShapeChanged(shape);
}
}
@@ -267,6 +289,7 @@ void QScatterSeries::setMarkerSize(qreal size)
if (!qFuzzyCompare(d->m_size, size)) {
d->m_size = size;
emit d->updated();
+ emit markerSizeChanged(size);
}
}
diff --git a/src/charts/scatterchart/qscatterseries.h b/src/charts/scatterchart/qscatterseries.h
index ca901468..57708809 100644
--- a/src/charts/scatterchart/qscatterseries.h
+++ b/src/charts/scatterchart/qscatterseries.h
@@ -31,8 +31,8 @@ class QT_CHARTS_EXPORT QScatterSeries : public QXYSeries
Q_OBJECT
Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
Q_PROPERTY(QColor borderColor READ borderColor WRITE setBorderColor NOTIFY borderColorChanged)
- Q_PROPERTY(MarkerShape markerShape READ markerShape WRITE setMarkerShape)
- Q_PROPERTY(qreal markerSize READ markerSize WRITE setMarkerSize)
+ Q_PROPERTY(MarkerShape markerShape READ markerShape WRITE setMarkerShape NOTIFY markerShapeChanged)
+ Q_PROPERTY(qreal markerSize READ markerSize WRITE setMarkerSize NOTIFY markerSizeChanged)
Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
Q_ENUMS(MarkerShape)
@@ -61,6 +61,8 @@ public:
Q_SIGNALS:
void colorChanged(QColor color);
void borderColorChanged(QColor color);
+ void markerShapeChanged(MarkerShape shape);
+ void markerSizeChanged(qreal size);
private:
Q_DECLARE_PRIVATE(QScatterSeries)
diff --git a/src/charts/xychart/glxyseriesdata.cpp b/src/charts/xychart/glxyseriesdata.cpp
index 2dafafd2..fbaf4b2e 100644
--- a/src/charts/xychart/glxyseriesdata.cpp
+++ b/src/charts/xychart/glxyseriesdata.cpp
@@ -44,13 +44,17 @@ void GLXYSeriesDataManager::setPoints(QXYSeries *series, const AbstractDomain *d
QScatterSeries *scatter = static_cast<QScatterSeries *>(series);
data->width = float(scatter->markerSize());
sc = scatter->color(); // Scatter overwrites color property
+ connect(scatter, &QScatterSeries::colorChanged, this,
+ &GLXYSeriesDataManager::handleScatterColorChange);
+ connect(scatter, &QScatterSeries::markerSizeChanged, this,
+ &GLXYSeriesDataManager::handleScatterMarkerSizeChange);
} else {
data->width = float(series->pen().widthF());
sc = series->color();
+ connect(series, &QXYSeries::penChanged, this,
+ &GLXYSeriesDataManager::handleSeriesPenChange);
}
data->color = QVector3D(float(sc.redF()), float(sc.greenF()), float(sc.blueF()));
- connect(series, &QXYSeries::penChanged, this,
- &GLXYSeriesDataManager::handleSeriesPenChange);
connect(series, &QXYSeries::useOpenGLChanged, this,
&GLXYSeriesDataManager::handleSeriesOpenGLChange);
m_seriesDataMap.insert(series, data);
@@ -133,6 +137,7 @@ void GLXYSeriesDataManager::handleSeriesPenChange()
QColor sc = series->color();
data->color = QVector3D(float(sc.redF()), float(sc.greenF()), float(sc.blueF()));
data->width = float(series->pen().widthF());
+ data->dirty = true;
}
}
}
@@ -144,4 +149,30 @@ void GLXYSeriesDataManager::handleSeriesOpenGLChange()
removeSeries(series);
}
+void GLXYSeriesDataManager::handleScatterColorChange()
+{
+ QScatterSeries *series = qobject_cast<QScatterSeries *>(sender());
+ if (series) {
+ GLXYSeriesData *data = m_seriesDataMap.value(series);
+ if (data) {
+ QColor sc = series->color();
+ data->color = QVector3D(float(sc.redF()), float(sc.greenF()), float(sc.blueF()));
+ data->dirty = true;
+ }
+ }
+}
+
+void GLXYSeriesDataManager::handleScatterMarkerSizeChange()
+{
+ QScatterSeries *series = qobject_cast<QScatterSeries *>(sender());
+ if (series) {
+ GLXYSeriesData *data = m_seriesDataMap.value(series);
+ if (data) {
+ data->width =float(series->markerSize());
+ data->dirty = true;
+ }
+ }
+}
+
QT_CHARTS_END_NAMESPACE
+
diff --git a/src/charts/xychart/glxyseriesdata_p.h b/src/charts/xychart/glxyseriesdata_p.h
index 0f59effe..da55108b 100644
--- a/src/charts/xychart/glxyseriesdata_p.h
+++ b/src/charts/xychart/glxyseriesdata_p.h
@@ -77,6 +77,8 @@ public Q_SLOTS:
void cleanup();
void handleSeriesPenChange();
void handleSeriesOpenGLChange();
+ void handleScatterColorChange();
+ void handleScatterMarkerSizeChange();
Q_SIGNALS:
void seriesRemoved(const QXYSeries *series);