mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
e38b78b2aa
Somewhat improve selection mechanics in the scatter-plot by allowing additional selections with shift-clicking. When the dives under the mouse are already selected, then deselect them. This appears to be a rather common UI idiom in desktop applications. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
29 lines
936 B
C++
29 lines
936 B
C++
// 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 <QPointF>
|
|
|
|
class StatsAxis;
|
|
class StatsView;
|
|
struct dive;
|
|
|
|
class StatsSeries {
|
|
public:
|
|
StatsSeries(StatsView &view, 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.
|
|
virtual void selectItemsUnderMouse(const QPointF &pos, bool shiftPressed) = 0;
|
|
virtual void divesSelected(const QVector<dive *> &dives);
|
|
|
|
protected:
|
|
StatsView &view;
|
|
StatsAxis *xAxis, *yAxis; // May be zero for charts without axes (pie charts).
|
|
QPointF toScreen(QPointF p);
|
|
};
|
|
|
|
#endif
|