diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2015-05-28 16:23:49 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-05-29 14:09:13 -0700 |
commit | f432b764e78ac3d66f5ab1bfc7c18fbdb75624e5 (patch) | |
tree | c2ec5c81660d22bf986968808bd4ecb7256623ae /qt-models/cylindermodel.h | |
parent | 6e4aa7d044a344527e61f17c2254851ba799c4bd (diff) | |
download | subsurface-f432b764e78ac3d66f5ab1bfc7c18fbdb75624e5.tar.gz |
Move DivePlannerModel and CylinderModel to qt-models
Still trying to make it easier for the Mobile Port:
This patch is a bit bigger than I hopped, but it was the smallest that I
could get.
A lot of TODO items where added where I broke the code because the current
implementation would break the QML implementtion on the designer. I'll
most probably fix those myself when I finish the transition to the models
to the new folder.
I only moved both models at once because there's an interdependency
between them (seems inevitable, tough, but I'll take a better look at it
later).
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-models/cylindermodel.h')
-rw-r--r-- | qt-models/cylindermodel.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/qt-models/cylindermodel.h b/qt-models/cylindermodel.h new file mode 100644 index 000000000..9556bcc02 --- /dev/null +++ b/qt-models/cylindermodel.h @@ -0,0 +1,49 @@ +#ifndef CYLINDERMODEL_H +#define CYLINDERMODEL_H + +#include "cleanertablemodel.h" +#include "dive.h" + +/* Encapsulation of the Cylinder Model, that presents the + * Current cylinders that are used on a dive. */ +class CylindersModel : public CleanerTableModel { + Q_OBJECT +public: + enum Column { + REMOVE, + TYPE, + SIZE, + WORKINGPRESS, + START, + END, + O2, + HE, + DEPTH, + USE, + COLUMNS + }; + + explicit CylindersModel(QObject *parent = 0); + static CylindersModel *instance(); + /*reimp*/ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + /*reimp*/ int rowCount(const QModelIndex &parent = QModelIndex()) const; + /*reimp*/ Qt::ItemFlags flags(const QModelIndex &index) const; + /*reimp*/ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); + + void passInData(const QModelIndex &index, const QVariant &value); + void add(); + void clear(); + void updateDive(); + void copyFromDive(struct dive *d); + cylinder_t *cylinderAt(const QModelIndex &index); + bool changed; + +public +slots: + void remove(const QModelIndex &index); + +private: + int rows; +}; + +#endif |