summaryrefslogtreecommitdiffstats
path: root/stats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2021-01-01 21:54:35 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2021-01-02 11:04:03 -0800
commit907e6ff05d35278303bc72ba5d93614da6ca0ab7 (patch)
tree3e8a36b10658c557bc2a88a9b1689ca15b374385 /stats
parent31da03770164db83787fcb63c2d3a033c4c48417 (diff)
downloadsubsurface-907e6ff05d35278303bc72ba5d93614da6ca0ab7.tar.gz
statistics: add series interface class
Add a interface class for the chart series used by the statistics module. Abstract virtual functions are declared for replotting and selecting items. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'stats')
-rw-r--r--stats/CMakeLists.txt2
-rw-r--r--stats/statsseries.cpp18
-rw-r--r--stats/statsseries.h27
3 files changed, 47 insertions, 0 deletions
diff --git a/stats/CMakeLists.txt b/stats/CMakeLists.txt
index c8ab86997..bf11d06fd 100644
--- a/stats/CMakeLists.txt
+++ b/stats/CMakeLists.txt
@@ -11,6 +11,8 @@ set(SUBSURFACE_STATS_SRCS
statsaxis.cpp
statscolors.h
statscolors.cpp
+ statsseries.h
+ statsseries.cpp
statsvariables.h
statsvariables.cpp
zvalues.h
diff --git a/stats/statsseries.cpp b/stats/statsseries.cpp
new file mode 100644
index 000000000..2fff4b306
--- /dev/null
+++ b/stats/statsseries.cpp
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "statsseries.h"
+#include "statsaxis.h"
+
+#include <QChart>
+
+StatsSeries::StatsSeries(QtCharts::QChart *chart, StatsAxis *xAxis, StatsAxis *yAxis)
+{
+ chart->addSeries(this);
+ if (xAxis && yAxis) {
+ attachAxis(xAxis->qaxis());
+ attachAxis(yAxis->qaxis());
+ }
+}
+
+StatsSeries::~StatsSeries()
+{
+}
diff --git a/stats/statsseries.h b/stats/statsseries.h
new file mode 100644
index 000000000..567f32644
--- /dev/null
+++ b/stats/statsseries.h
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: GPL-2.0
+// Base class for all series. Defines a small virtual interface
+// concerning highlighting of series items.
+#ifndef STATS_SERIES_H
+#define STATS_SERIES_H
+
+#include <QScatterSeries>
+
+namespace QtCharts {
+ class QChart;
+}
+class StatsAxis;
+
+// We derive from a proper scatter series to get access to the map-to
+// and map-from coordinates calls. But we don't use any of its functionality.
+// This should be removed in due course.
+
+class StatsSeries : public QtCharts::QScatterSeries {
+public:
+ StatsSeries(QtCharts::QChart *chart, StatsAxis *xAxis, StatsAxis *yAxis);
+ virtual ~StatsSeries();
+ virtual void updatePositions() = 0; // Called if chart geometry changes.
+ virtual bool hover(QPointF pos) = 0; // Called on mouse movement. Return true if an item of this series is highlighted.
+ virtual void unhighlight() = 0; // Unhighlight any highlighted item.
+};
+
+#endif