mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Transform the DiveProfileItem to an Abstract Generalization
The DiveProfileItem contained much of the complexity and algorithms for almost all line-based items on the canvas, so I transformed that to a general abstraction and implemented a new DiveProfileItem that uses it. this should reduce a bit of code since the implementation of the PP Graphs, Temperature Cylinder Pressure and maybe a few others will only need to reimplement the paint() and the modelDataChanged() methods. The rest is ready. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
1f80788286
commit
254beef5d4
4 changed files with 37 additions and 27 deletions
|
|
@ -21,22 +21,22 @@
|
|||
class DiveCartesianAxis;
|
||||
class QAbstractTableModel;
|
||||
|
||||
class DiveProfileItem : public QObject, public QGraphicsPolygonItem{
|
||||
class AbstractProfilePolygonItem : public QObject, public QGraphicsPolygonItem{
|
||||
Q_OBJECT
|
||||
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:
|
||||
DiveProfileItem();
|
||||
AbstractProfilePolygonItem();
|
||||
void setVerticalAxis(DiveCartesianAxis *vertical);
|
||||
void setHorizontalAxis(DiveCartesianAxis *horizontal);
|
||||
void setModel(QAbstractTableModel *model);
|
||||
void setHorizontalDataColumn(int column);
|
||||
void setVerticalDataColumn(int column);
|
||||
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
|
||||
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0) = 0;
|
||||
public slots:
|
||||
void modelDataChanged();
|
||||
private:
|
||||
virtual void modelDataChanged();
|
||||
protected:
|
||||
DiveCartesianAxis *hAxis;
|
||||
DiveCartesianAxis *vAxis;
|
||||
QAbstractTableModel *dataModel;
|
||||
|
|
@ -44,5 +44,11 @@ private:
|
|||
int vDataColumn;
|
||||
};
|
||||
|
||||
class DiveProfileItem : public AbstractProfilePolygonItem{
|
||||
Q_OBJECT
|
||||
public:
|
||||
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
|
||||
virtual void modelDataChanged();
|
||||
};
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue