mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
67f2c0bcaa
The CartesianAxis used a simple method to put things on screen which is wrong for almost any case besides the 'current value here' since we store things in milimeters on the axis, we need to convert those to meters before showing on the profile. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
51 lines
No EOL
1.2 KiB
C++
51 lines
No EOL
1.2 KiB
C++
#ifndef DIVECARTESIANAXIS_H
|
|
#define DIVECARTESIANAXIS_H
|
|
|
|
#include <QObject>
|
|
#include <QGraphicsLineItem>
|
|
class DiveTextItem;
|
|
class DiveLineItem;
|
|
|
|
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:
|
|
DiveCartesianAxis();
|
|
virtual ~DiveCartesianAxis();
|
|
void setMinimum(double minimum);
|
|
void setMaximum(double maximum);
|
|
void setTickInterval(double interval);
|
|
void setOrientation(Qt::Orientation orientation);
|
|
void setTickSize(qreal size);
|
|
void updateTicks();
|
|
double minimum() const;
|
|
double maximum() const;
|
|
qreal valueAt(const QPointF& p);
|
|
qreal percentAt(const QPointF& p);
|
|
qreal posAtValue(qreal value);
|
|
void setColor(const QColor& color);
|
|
void setTextColor(const QColor& color);
|
|
int unitSystem;
|
|
|
|
protected:
|
|
virtual QString textForValue(double value);
|
|
|
|
Qt::Orientation orientation;
|
|
QList<DiveLineItem*> ticks;
|
|
QList<DiveTextItem*> labels;
|
|
double min;
|
|
double max;
|
|
double interval;
|
|
double tickSize;
|
|
QColor textColor;
|
|
};
|
|
|
|
class DepthAxis : public DiveCartesianAxis {
|
|
protected:
|
|
QString textForValue(double value);
|
|
};
|
|
|
|
#endif |