aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/models.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/models.h')
-rw-r--r--qt-ui/models.h34
1 files changed, 31 insertions, 3 deletions
diff --git a/qt-ui/models.h b/qt-ui/models.h
index 8d86102cb..d64faf0bd 100644
--- a/qt-ui/models.h
+++ b/qt-ui/models.h
@@ -15,7 +15,7 @@
class TankInfoModel : public QAbstractTableModel {
Q_OBJECT
public:
- enum { DESCRIPTION, ML, BAR};
+ enum Column { DESCRIPTION, ML, BAR};
TankInfoModel();
/*reimp*/ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
@@ -30,10 +30,12 @@ private:
int rows;
};
+/* Encapsulation of the Cylinder Model, that presents the
+ * Current cylinders that are used on a dive. */
class CylindersModel : public QAbstractTableModel {
Q_OBJECT
public:
- enum {TYPE, SIZE, MAXPRESS, START, END, O2, HE};
+ enum Column {TYPE, SIZE, MAXPRESS, START, END, O2, HE};
explicit CylindersModel(QObject* parent = 0);
/*reimp*/ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
@@ -53,8 +55,10 @@ private:
QMap<dive*, int> usedRows;
};
+/* Encapsulation of the Weight Model, that represents
+ * the current weights on a dive. */
class WeightModel : public QAbstractTableModel {
- enum{TYPE, WEIGHT};
+ enum Column {TYPE, WEIGHT};
/*reimp*/ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
/*reimp*/ int columnCount(const QModelIndex& parent = QModelIndex()) const;
/*reimp*/ QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
@@ -67,4 +71,28 @@ private:
int rows;
};
+/*! An AbstractItemModel for recording dive trip information such as a list of dives.
+*
+*/
+class DiveItem; // Represents a single item on the model, implemented in the .cpp since it's private for this class.
+class DiveTripModel : public QAbstractItemModel
+{
+public:
+ enum Column {NR, DATE, RATING, DEPTH, DURATION, TEMPERATURE, TOTALWEIGHT, SUIT, CYLINDER, NITROX, SAC, OTU, MAXCNS, LOCATION, COLUMNS };
+
+ DiveTripModel(QObject *parent = 0);
+
+ /*reimp*/ Qt::ItemFlags flags(const QModelIndex &index) const;
+ /*reimp*/ QVariant data(const QModelIndex &index, int role) const;
+ /*reimp*/ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ /*reimp*/ int rowCount(const QModelIndex &parent) const;
+ /*reimp*/ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ /*reimp*/ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+ /*reimp*/ QModelIndex parent(const QModelIndex &child) const;
+
+private:
+ DiveItem *itemForIndex(const QModelIndex& index) const;
+ DiveItem *rootItem;
+};
+
#endif