source: src/mvc/eventmodel.h @ a5c1179

qt5
Last change on this file since a5c1179 was d1fb9ee, checked in by korrco <korrco@…>, 12 years ago

activities viewed ordered by activity id and start time

  • Property mode set to 100644
File size: 1.6 KB
Line 
1#ifndef EVENTMODEL_H
2#define EVENTMODEL_H
3
4#include <QAbstractItemModel>
5
6#include "event.h"
7
8class EventModel : public QAbstractItemModel
9{
10public:
11    static const QString COMMA_SEPARATOR;
12public:
13    EventModel();
14    QVariant data(const QModelIndex& index, int role) const;
15    QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const;
16    QModelIndex parent ( const QModelIndex & index ) const;
17    int columnCount ( const QModelIndex & parent = QModelIndex() ) const;
18    int rowCount ( const QModelIndex & parent = QModelIndex() ) const;
19    void loadEvents(const QDate &aDate, int aConferenceId); // loads Events from the DB
20    void loadFavEvents(const QDate &aDate, int aConferenceId); // loads Favourite events from the DB
21    void loadEventsByActivities(const QDate &aDate, int aConferenceId); // loads Events grouped by Activities from the DB
22    // a method to force 'EventModel' emit signal 'dataChanged()'
23    // a 'view', eg. 'TreeView' listens for this signal and redraws changed items(indexes)
24    void emitDataChangedSignal(const QModelIndex &aTopLeft, const QModelIndex &aBottomRight);
25
26private:
27    struct Group
28    {
29        Group(const QString & title,
30              int firstEventIndex) :
31
32            mTitle(title),
33            mFirstEventIndex(firstEventIndex),
34            mChildCount(0)
35        {}
36
37        QString mTitle;
38        int mFirstEventIndex;
39        int mChildCount;
40    };
41
42private:
43    void createTimeGroups();
44    void createActivityGroups();
45    void clearModel();
46
47private:
48    QList<Event> mEvents;
49    QList<Group> mGroups;
50    QHash<int, int> mParents;
51};
52
53#endif // EVENTMODEL_H
54
Note: See TracBrowser for help on using the repository browser.