mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
df156a56c0
The keyword "virtual" signalizes that the function is virtual, i.e. the function of the derived class is called, even if the call is on the parent class. It is not necessary to repeat the "virtual" keyword in derived classes. To highlight derived virtual functions, the keyword "override" should be used instead. It results in a hard compile- error, if no function is overridden, thus avoiding subtle bugs. Replace "virtual" by "override" where appropriate. Moreover, replace Q_DECL_OVERRIDE by override, since we require reasonably recent compilers anyway. Likewise, replace /* reimp */ by "override" for consistency and compiler support. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
124 lines
2.8 KiB
C++
124 lines
2.8 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef DIVECARTESIANAXIS_H
|
|
#define DIVECARTESIANAXIS_H
|
|
|
|
#include <QObject>
|
|
#include <QGraphicsLineItem>
|
|
#include "core/color.h"
|
|
#include "profilewidget2.h"
|
|
|
|
class QPropertyAnimation;
|
|
class DiveTextItem;
|
|
class DiveLineItem;
|
|
class DivePlotDataModel;
|
|
|
|
class DiveCartesianAxis : public QObject, public QGraphicsLineItem {
|
|
Q_OBJECT
|
|
Q_PROPERTY(QLineF line WRITE setLine READ line)
|
|
Q_PROPERTY(QPointF pos WRITE setPos READ pos)
|
|
Q_PROPERTY(qreal x WRITE setX READ x)
|
|
Q_PROPERTY(qreal y WRITE setY READ y)
|
|
private:
|
|
bool printMode;
|
|
QPen gridPen();
|
|
public:
|
|
enum Orientation {
|
|
TopToBottom,
|
|
BottomToTop,
|
|
LeftToRight,
|
|
RightToLeft
|
|
};
|
|
DiveCartesianAxis(ProfileWidget2 *widget);
|
|
~DiveCartesianAxis();
|
|
void setPrintMode(bool mode);
|
|
void setMinimum(double minimum);
|
|
void setMaximum(double maximum);
|
|
void setTickInterval(double interval);
|
|
void setOrientation(Orientation orientation);
|
|
void setTickSize(qreal size);
|
|
void setFontLabelScale(qreal scale);
|
|
double minimum() const;
|
|
double maximum() const;
|
|
double fontLabelScale() const;
|
|
qreal valueAt(const QPointF &p) const;
|
|
qreal posAtValue(qreal value);
|
|
void setColor(const QColor &color);
|
|
void setTextColor(const QColor &color);
|
|
void animateChangeLine(const QLineF &newLine);
|
|
void setTextVisible(bool arg1);
|
|
void setLinesVisible(bool arg1);
|
|
void setLineSize(qreal lineSize);
|
|
void setLine(const QLineF& line);
|
|
int unitSystem;
|
|
public
|
|
slots:
|
|
virtual void updateTicks(color_index_t color = TIME_GRID);
|
|
|
|
signals:
|
|
void sizeChanged();
|
|
void maxChanged();
|
|
|
|
protected:
|
|
ProfileWidget2 *profileWidget;
|
|
virtual QString textForValue(double value);
|
|
virtual QColor colorForValue(double value);
|
|
Orientation orientation;
|
|
QList<DiveTextItem *> labels;
|
|
QList<DiveLineItem *> lines;
|
|
double min;
|
|
double max;
|
|
double interval;
|
|
double tick_size;
|
|
QColor textColor;
|
|
bool textVisibility;
|
|
bool lineVisibility;
|
|
double labelScale;
|
|
qreal line_size;
|
|
bool changed;
|
|
};
|
|
|
|
class DepthAxis : public DiveCartesianAxis {
|
|
Q_OBJECT
|
|
public:
|
|
DepthAxis(ProfileWidget2 *widget);
|
|
protected:
|
|
QString textForValue(double value);
|
|
QColor colorForValue(double value);
|
|
private
|
|
slots:
|
|
void settingsChanged();
|
|
};
|
|
|
|
class TimeAxis : public DiveCartesianAxis {
|
|
Q_OBJECT
|
|
public:
|
|
TimeAxis(ProfileWidget2 *widget);
|
|
void updateTicks(color_index_t color = TIME_GRID);
|
|
|
|
protected:
|
|
QString textForValue(double value);
|
|
QColor colorForValue(double value);
|
|
};
|
|
|
|
class TemperatureAxis : public DiveCartesianAxis {
|
|
Q_OBJECT
|
|
public:
|
|
TemperatureAxis(ProfileWidget2 *widget);
|
|
protected:
|
|
QString textForValue(double value);
|
|
};
|
|
|
|
class PartialGasPressureAxis : public DiveCartesianAxis {
|
|
Q_OBJECT
|
|
public:
|
|
PartialGasPressureAxis(ProfileWidget2 *widget);
|
|
void setModel(DivePlotDataModel *model);
|
|
public
|
|
slots:
|
|
void settingsChanged();
|
|
|
|
private:
|
|
DivePlotDataModel *model;
|
|
};
|
|
|
|
#endif // DIVECARTESIANAXIS_H
|