From b7e4b35cde1f1a6be01818eac94732186a1b99ab Mon Sep 17 00:00:00 2001 From: Grace Karanja Date: Tue, 9 Jun 2015 22:20:44 +0300 Subject: Add DiveListModel This model will be used to show the dives in QML. This commit adds the model, and the means to link it to QML. Signed-off-by: Grace Karanja Signed-off-by: Dirk Hohndel --- qt-models/divelistmodel.h | 100 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 qt-models/divelistmodel.h (limited to 'qt-models/divelistmodel.h') diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h new file mode 100644 index 000000000..96f16912a --- /dev/null +++ b/qt-models/divelistmodel.h @@ -0,0 +1,100 @@ +#ifndef DIVELISTMODEL_H +#define DIVELISTMODEL_H + +#include +#include "dive.h" + +class Dive { +public: + Dive(dive* d); + + QString date() const; + void setDate(const QString &date); + + QString location() const; + void setLocation(const QString &location); + + QString sac() const; + void setSac(const QString &sac); + + QString gas() const; + void setGas(const QString &gas); + + QString cylinder() const; + void setCylinder(const QString &cylinder); + + QString suit() const; + void setSuit(const QString &suit); + + QString weight() const; + void setWeight(const QString &weight); + + QString temp() const; + void setTemp(const QString &temp); + + QString duration() const; + void setDuration(const QString &duration); + + QString depth() const; + void setDepth(const QString &depth); + + QString rating() const; + void setRating(const QString &rating); + + dive *thisDive() const; + void setThisDive(dive *thisDive); + + QString diveNumber() const; + void setDiveNumber(const QString &diveNumber); + +private: + QString m_diveNumber; + QString m_date; + QString m_rating; + QString m_depth; + QString m_duration; + QString m_temp; + QString m_weight; + QString m_suit; + QString m_cylinder; + QString m_gas; + QString m_sac; + QString m_location; + + + dive *m_thisDive; +}; + +class DiveListModel : public QAbstractListModel +{ + Q_OBJECT +public: + + enum DiveListRoles { + DiveNumberRole = Qt::UserRole + 1, + DiveDateRole, + DiveRatingRole, + DiveDepthRole, + DiveDurationRole, + DiveTemperatureRole, + DiveWeightRole, + DiveSuitRole, + DiveCylinderRole, + DiveGasRole, + DiveSacRole, + DiveLocationRole + }; + + static DiveListModel *instance(); + DiveListModel(QObject *parent = 0); + void addDive(dive *d); + int rowCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + QHash roleNames() const; + +private: + QList m_dives; + static DiveListModel *m_instance; +}; + +#endif // DIVELISTMODEL_H -- cgit v1.2.3-70-g09d2