diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2015-05-28 18:33:51 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-05-29 14:13:00 -0700 |
commit | 85d4bb8a7016fa856e5e1278352ce18939450e36 (patch) | |
tree | dcabe9e92f18db109548fa98bcf027564db2aeea /qt-models/divetripmodel.h | |
parent | 7171d2e1ebc880cbee468a542e3fc907039539c5 (diff) | |
download | subsurface-85d4bb8a7016fa856e5e1278352ce18939450e36.tar.gz |
Move DiveTripModel to qt-models
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-models/divetripmodel.h')
-rw-r--r-- | qt-models/divetripmodel.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/qt-models/divetripmodel.h b/qt-models/divetripmodel.h new file mode 100644 index 000000000..63dc806e7 --- /dev/null +++ b/qt-models/divetripmodel.h @@ -0,0 +1,92 @@ +#ifndef DIVETRIPMODEL_H +#define DIVETRIPMODEL_H + +#include "treemodel.h" +#include "dive.h" + +struct DiveItem : public TreeItem { + enum Column { + NR, + DATE, + RATING, + DEPTH, + DURATION, + TEMPERATURE, + TOTALWEIGHT, + SUIT, + CYLINDER, + GAS, + SAC, + OTU, + MAXCNS, + LOCATION, + COLUMNS + }; + + virtual QVariant data(int column, int role) const; + int diveId; + virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); + virtual Qt::ItemFlags flags(const QModelIndex &index) const; + QString displayDate() const; + QString displayDuration() const; + QString displayDepth() const; + QString displayDepthWithUnit() const; + QString displayTemperature() const; + QString displayWeight() const; + QString displaySac() const; + int weight() const; +}; + +struct TripItem : public TreeItem { + virtual QVariant data(int column, int role) const; + dive_trip_t *trip; +}; + +class DiveTripModel : public TreeModel { + Q_OBJECT +public: + enum Column { + NR, + DATE, + RATING, + DEPTH, + DURATION, + TEMPERATURE, + TOTALWEIGHT, + SUIT, + CYLINDER, + GAS, + SAC, + OTU, + MAXCNS, + LOCATION, + COLUMNS + }; + + enum ExtraRoles { + STAR_ROLE = Qt::UserRole + 1, + DIVE_ROLE, + TRIP_ROLE, + SORT_ROLE, + DIVE_IDX + }; + enum Layout { + TREE, + LIST, + CURRENT + }; + + Qt::ItemFlags flags(const QModelIndex &index) const; + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); + DiveTripModel(QObject *parent = 0); + Layout layout() const; + void setLayout(Layout layout); + +private: + void setupModelData(); + QMap<dive_trip_t *, TripItem *> trips; + Layout currentLayout; +}; + +#endif |