--- /dev/null
+#ifndef JOURNEYMODEL_H
+#define JOURNEYMODEL_H
+
+#include <QAbstractListModel>
+#include <QStringList>
+#include <QFile>
+
+#include "journey.h"
+
+class JourneyModel : public QAbstractListModel
+{
+ Q_OBJECT
+public:
+ enum JourneyRoles {
+ StartRole = Qt::UserRole + 1,
+ DurationRole,
+ OvertookRole,
+ OvertakenByRole
+ };
+
+ QHash<int, QByteArray> 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<int, QByteArray> roles;
+ QList<Journey> journeys;
+};
+
+#endif // JOURNEYMODEL_H