started work on 'favourities'
[toast/confclerk.git] / src / mvc / eventmodel.h
1 #ifndef EVENTMODEL_H
2 #define EVENTMODEL_H
3
4 #include <QAbstractItemModel>
5
6 #include "event.h"
7
8 class EventModel : public QAbstractItemModel
9 {
10 public:
11     EventModel();
12     QVariant data(const QModelIndex& index, int role) const;
13     QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const;
14     QModelIndex parent ( const QModelIndex & index ) const;
15     int columnCount ( const QModelIndex & parent = QModelIndex() ) const;
16     int rowCount ( const QModelIndex & parent = QModelIndex() ) const;
17     void loadEvents(const QDate &aDate, int aConferenceId); // loads Events from the DB
18     void loadFavEvents(const QDate &aDate, int aConferenceId); // loads Favourite events from the DB
19
20 private:
21     struct Group
22     {
23         Group(const QString & title,
24               int firstEventIndex) :
25
26             mTitle(title),
27             mFirstEventIndex(firstEventIndex),
28             mChildCount(0)
29         {}
30
31         QString mTitle;
32         int mFirstEventIndex;
33         int mChildCount;
34     };
35
36 private:
37     void createTimeGroups();
38
39 private:
40     QList<Event> mEvents;
41     QList<Group> mGroups;
42     QHash<int, int> mParents;
43 };
44
45 #endif // EVENTMODEL_H
46