2014-01-14 16:20:15 -02:00
|
|
|
#ifndef DIVECARTESIANAXIS_H
|
|
|
|
#define DIVECARTESIANAXIS_H
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
#include <QGraphicsLineItem>
|
2014-01-22 17:10:18 -02:00
|
|
|
|
|
|
|
class QPropertyAnimation;
|
2014-01-14 16:20:15 -02:00
|
|
|
class DiveTextItem;
|
|
|
|
class DiveLineItem;
|
2014-01-27 15:14:42 -02:00
|
|
|
class DivePlotDataModel;
|
2014-01-14 16:20:15 -02:00
|
|
|
|
|
|
|
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)
|
|
|
|
public:
|
2014-01-16 19:28:33 -02:00
|
|
|
enum Orientation{TopToBottom, BottomToTop, LeftToRight, RightToLeft};
|
2014-01-14 16:20:15 -02:00
|
|
|
DiveCartesianAxis();
|
|
|
|
virtual ~DiveCartesianAxis();
|
|
|
|
void setMinimum(double minimum);
|
|
|
|
void setMaximum(double maximum);
|
|
|
|
void setTickInterval(double interval);
|
2014-01-16 19:28:33 -02:00
|
|
|
void setOrientation(Orientation orientation);
|
2014-01-14 16:20:15 -02:00
|
|
|
void setTickSize(qreal size);
|
2014-02-15 11:15:57 -08:00
|
|
|
void setFontLabelScale(qreal scale);
|
2014-01-14 16:20:15 -02:00
|
|
|
double minimum() const;
|
|
|
|
double maximum() const;
|
2014-02-07 17:59:21 -02:00
|
|
|
double tickInterval() const;
|
|
|
|
double tickSize() const;
|
2014-02-15 11:15:57 -08:00
|
|
|
double fontLabelScale() const;
|
2014-02-11 12:05:33 -08:00
|
|
|
qreal valueAt(const QPointF& p) const;
|
2014-01-14 16:20:15 -02:00
|
|
|
qreal percentAt(const QPointF& p);
|
|
|
|
qreal posAtValue(qreal value);
|
|
|
|
void setColor(const QColor& color);
|
|
|
|
void setTextColor(const QColor& color);
|
2014-01-22 17:10:18 -02:00
|
|
|
void animateChangeLine(const QLineF& newLine);
|
2014-02-12 14:24:19 -02:00
|
|
|
void setTextVisible(bool arg1);
|
2014-02-15 22:54:41 -02:00
|
|
|
void setLinesVisible(bool arg1);
|
2014-02-15 21:55:31 -02:00
|
|
|
void setLineSize(qreal lineSize);
|
2014-01-14 16:20:15 -02:00
|
|
|
int unitSystem;
|
2014-01-22 17:10:18 -02:00
|
|
|
public slots:
|
2014-01-27 17:18:35 -02:00
|
|
|
virtual void updateTicks();
|
2014-02-12 14:24:19 -02:00
|
|
|
|
2014-01-16 12:32:45 -02:00
|
|
|
signals:
|
|
|
|
void sizeChanged();
|
2014-01-27 15:14:42 -02:00
|
|
|
void maxChanged();
|
2014-01-14 16:20:15 -02:00
|
|
|
protected:
|
|
|
|
virtual QString textForValue(double value);
|
2014-01-19 20:14:48 -02:00
|
|
|
virtual QColor colorForValue(double value);
|
2014-01-16 19:28:33 -02:00
|
|
|
Orientation orientation;
|
2014-01-14 16:20:15 -02:00
|
|
|
QList<DiveTextItem*> labels;
|
2014-02-15 21:55:31 -02:00
|
|
|
QList<DiveLineItem*> lines;
|
2014-01-14 16:20:15 -02:00
|
|
|
double min;
|
|
|
|
double max;
|
|
|
|
double interval;
|
2014-02-07 17:59:21 -02:00
|
|
|
double tick_size;
|
2014-01-14 16:20:15 -02:00
|
|
|
QColor textColor;
|
2014-02-12 14:24:19 -02:00
|
|
|
bool textVisibility;
|
2014-02-15 22:54:41 -02:00
|
|
|
bool lineVisibility;
|
2014-02-15 11:15:57 -08:00
|
|
|
double labelScale;
|
2014-02-15 21:55:31 -02:00
|
|
|
qreal line_size;
|
2014-01-14 16:20:15 -02:00
|
|
|
};
|
|
|
|
|
2014-01-15 10:54:33 -02:00
|
|
|
class DepthAxis : public DiveCartesianAxis {
|
2014-01-22 17:10:18 -02:00
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
DepthAxis();
|
2014-01-15 10:54:33 -02:00
|
|
|
protected:
|
2014-01-16 18:39:13 -02:00
|
|
|
QString textForValue(double value);
|
2014-01-19 20:14:48 -02:00
|
|
|
QColor colorForValue(double value);
|
2014-01-22 17:10:18 -02:00
|
|
|
private slots:
|
|
|
|
void settingsChanged();
|
2014-02-04 19:21:57 -02:00
|
|
|
private:
|
|
|
|
bool showWithPPGraph;
|
2014-01-15 10:54:33 -02:00
|
|
|
};
|
|
|
|
|
2014-01-15 11:08:31 -02:00
|
|
|
class TimeAxis : public DiveCartesianAxis {
|
2014-01-27 17:18:35 -02:00
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
virtual void updateTicks();
|
2014-01-15 11:08:31 -02:00
|
|
|
protected:
|
2014-01-16 18:39:13 -02:00
|
|
|
QString textForValue(double value);
|
2014-01-19 20:14:48 -02:00
|
|
|
QColor colorForValue(double value);
|
2014-01-16 18:39:13 -02:00
|
|
|
};
|
|
|
|
|
|
|
|
class TemperatureAxis : public DiveCartesianAxis{
|
|
|
|
Q_OBJECT
|
|
|
|
protected:
|
|
|
|
QString textForValue(double value);
|
2014-01-15 11:08:31 -02:00
|
|
|
};
|
2014-01-16 12:32:45 -02:00
|
|
|
|
2014-01-27 15:14:42 -02:00
|
|
|
class PartialGasPressureAxis : public DiveCartesianAxis{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
PartialGasPressureAxis();
|
|
|
|
void setModel(DivePlotDataModel *model);
|
|
|
|
public slots:
|
|
|
|
void preferencesChanged();
|
|
|
|
private:
|
|
|
|
DivePlotDataModel *model;
|
|
|
|
};
|
|
|
|
|
2014-02-11 19:14:46 +01:00
|
|
|
#endif // DIVECARTESIANAXIS_H
|