X-Git-Url: https://www.flypig.org.uk/git/?p=harbour-pedalo.git;a=blobdiff_plain;f=src%2Fjourneymodel.h;fp=src%2Fjourneymodel.h;h=36d4a922c48843bded8ef08f098dc9a22527d73d;hp=0000000000000000000000000000000000000000;hb=0108947ead4cc9e0ff23fee82db2fb1fd7cb2dad;hpb=ad970e5488e00f84c984a7c0fee09c089d8fe5d1 diff --git a/src/journeymodel.h b/src/journeymodel.h new file mode 100644 index 0000000..36d4a92 --- /dev/null +++ b/src/journeymodel.h @@ -0,0 +1,45 @@ +#ifndef JOURNEYMODEL_H +#define JOURNEYMODEL_H + +#include +#include +#include + +#include "journey.h" + +class JourneyModel : public QAbstractListModel +{ + Q_OBJECT +public: + enum JourneyRoles { + StartRole = Qt::UserRole + 1, + DurationRole, + OvertookRole, + OvertakenByRole + }; + + QHash roleNames() const; + + JourneyModel(QObject *parent = 0); + + void addJourney(const Journey &journey); + + int rowCount(const QModelIndex & parent = QModelIndex()) const; + + QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; + + void clear(); + + void exportToFile(QFile & file); + void importFromFile(QFile & file); + +signals: + // General signals + void journeysChanged(); + +private: + QHash roles; + QList journeys; +}; + +#endif // JOURNEYMODEL_H