mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Added the DiveProfileItem that uses the DiveProfileModel to diplay data.
I've used the paint() method on it ( even if it's not necessary on a QGraphicsView ) to reduce absurdely the number of items that are inserted on the QGraphicsScene ( each small line of the profile should be an item if it was not for this, it's like that on the old profile. ) and thus reducing the memory consumption, speed and so on. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
7d5cf32501
commit
581faa598e
3 changed files with 145 additions and 2 deletions
48
qt-ui/profile/diveprofileitem.h
Normal file
48
qt-ui/profile/diveprofileitem.h
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#ifndef DIVEPROFILEITEM_H
|
||||
#define DIVEPROFILEITEM_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QGraphicsPolygonItem>
|
||||
|
||||
/* This is the Profile Item, it should be used for quite a lot of things
|
||||
on the profile view. The usage should be pretty simple:
|
||||
|
||||
DiveProfileItem *profile = new DiveProfileItem();
|
||||
profile->setVerticalAxis( profileYAxis );
|
||||
profile->setHorizontalAxis( timeAxis );
|
||||
profile->setModel( DiveDataModel );
|
||||
profile->setHorizontalDataColumn( DiveDataModel::TIME );
|
||||
profile->setVerticalDataColumn( DiveDataModel::DEPTH );
|
||||
scene()->addItem(profile);
|
||||
|
||||
This is a generically item and should be used as a base for others, I think...
|
||||
*/
|
||||
|
||||
class DiveCartesianAxis;
|
||||
class QAbstractTableModel;
|
||||
|
||||
class DiveProfileItem : 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();
|
||||
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);
|
||||
public slots:
|
||||
void modelDataChanged();
|
||||
private:
|
||||
DiveCartesianAxis *hAxis;
|
||||
DiveCartesianAxis *vAxis;
|
||||
QAbstractTableModel *dataModel;
|
||||
int hDataColumn;
|
||||
int vDataColumn;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue