summaryrefslogtreecommitdiff
path: root/libopie/tododb.h
blob: 7fd9f966b587ff2435794348b34eb13caa116dd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

#ifndef tododb_h
#define tododb_h

#include <qvaluelist.h>

#include <opie/todoevent.h>

class ToDoResource;
class ToDoDB
{
 public:
    // if no argument is supplied pick the default book 
    ToDoDB(const QString &fileName = QString::null, ToDoResource* resource= 0 );
    ~ToDoDB();
    QValueList<ToDoEvent> effectiveToDos(const QDate &from,
					 const QDate &to,
					 bool includeNoDates = true);
    QValueList<ToDoEvent> effectiveToDos(const QDate &start, bool includeNoDates = true );
    QValueList<ToDoEvent> rawToDos(); // all events
    QValueList<ToDoEvent> overDue();

    void addEvent(const ToDoEvent &event );
    void editEvent(const ToDoEvent &editEvent );
    void removeEvent(const ToDoEvent &event);
    void replaceEvent(const ToDoEvent &event );
    // QValueList<ToDoEvents will overwrite existing ones no smart code at all ;)
    void mergeWith(const QValueList<ToDoEvent>& ); 
    void reload();
    void setFileName(const QString & );
    QString fileName()const;
    bool save();
    ToDoResource *resource(); 
    void setResource(ToDoResource* res); 

 private:
    class ToDoDBPrivate;
    ToDoDBPrivate *d;
    QString m_fileName;
    ToDoResource *m_res;
    QValueList<ToDoEvent> m_todos;
    void load();
};


#endif