summaryrefslogtreecommitdiff
path: root/libopie/pim/otodoaccess.h
blob: c07915592aef4e9f812c0b989671b7dc4bd82960 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#ifndef OPIE_TODO_ACCESS_H
#define OPIE_TODO_ACCESS_H

#include <qobject.h>
#include <qvaluelist.h>

#include "otodo.h"
#include "otodoaccessbackend.h"
#include "opimaccesstemplate.h"


/**
 * OTodoAccess
 * the class to get access to
 * the todolist
 */
class OTodoAccess : public QObject, public OPimAccessTemplate<OTodo> {
    Q_OBJECT
public:
    enum SortOrder { Completed = 0,
                     Priority,
                     Description,
                     Deadline };
    enum SortFilter{ Category =1,
                     OnlyOverDue= 2,
                     DoNotShowCompleted =4  };
    /**
     * if you use 0l
     * the default resource will be
     * picked up
     */
    OTodoAccess( OTodoAccessBackend* = 0l);
    ~OTodoAccess();


    /* our functions here */
    /**
     * include todos from start to end
     * includeNoDates whether or not to include
     * events with no dates
     */
    List effectiveToDos( const QDate& start,
                         const QDate& end,
                         bool includeNoDates = true );

    /**
     * start
     * end date taken from the currentDate()
     */
    List effectiveToDos( const QDate& start,
                         bool includeNoDates = true );


    /**
     * return overdue OTodos
     */
    List overDue();

    /**
     *
     */
    List sorted( bool ascending, int sortOrder, int sortFilter, int cat );

    /**
     * merge a list of OTodos into
     * the resource
     */
    void mergeWith( const QValueList<OTodo>& );

    /**
     * delete all already completed items
     */
    void removeAllCompleted();

signals:
    /**
     * if the OTodoAccess was changed
     */
    void signalChanged( const OTodoAccess* );
private:
    /**
     * add an Alarm to the AlarmServer
     */
    void addAlarm( const OTodo& );

    /**
     * delete an alarm with the uid from
     * the alarm server
     */
    void delAlarm( int uid );

    int m_cat;
    OTodoAccessBackend* m_todoBackEnd;
    class OTodoAccessPrivate;
    OTodoAccessPrivate* d;
};

#endif