summaryrefslogtreecommitdiffstats
path: root/qt-models/divetripmodel.h
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-05-28 18:33:51 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-05-29 14:13:00 -0700
commit85d4bb8a7016fa856e5e1278352ce18939450e36 (patch)
treedcabe9e92f18db109548fa98bcf027564db2aeea /qt-models/divetripmodel.h
parent7171d2e1ebc880cbee468a542e3fc907039539c5 (diff)
downloadsubsurface-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.h92
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