summaryrefslogtreecommitdiff
path: root/libopie/todoevent.h
blob: 8a00f9929d7e0bfcbdd3739a463e0834437cdfe1 (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

#ifndef todoevent_h
#define todoevent_h

#include <qregexp.h>
#include <qstringlist.h>
#include <qdatetime.h>

class ToDoEvent {
    friend class ToDoDB;
 public:
    // priorities from Very low to very high
    enum Priority { VERYHIGH=1, HIGH, NORMAL, LOW, VERYLOW };
    /* Constructs a new ToDoEvent
       @param completed Is the TodoEvent completed
       @param priority What is the priority of this ToDoEvent
       @param category Which category does it belong( uid )
       @param description What is this ToDoEvent about
       @param hasDate Does this Event got a deadline
       @param date what is the deadline?
       @param uid what is the UUID of this Event
    **/
    ToDoEvent( bool completed = false, int priority = NORMAL, 
	       const QStringList &category = QStringList(), 
	       const QString &description = QString::null , 
	       bool hasDate = false, QDate date = QDate::currentDate(), int uid = -1 );
    /* Copy c'tor

    **/
    ToDoEvent(const ToDoEvent & );

    /*
       Is this event completed?
    **/
    bool isCompleted() const;

    /*
       Does this Event have a deadline
    **/
    bool hasDate() const;

    /*
      What is the priority?
    **/
    int priority()const ;
    QStringList allCategories()const;
    QArray<int> categories() const;
    QDate date()const;
    QString description()const;

    QString richText() const;

    int uid()const { return m_uid;};
    void setCompleted(bool completed );
    void setHasDate( bool hasDate );
    // if the category doesn't exist we will create it
    // this sets the the Category after this call category will be the only category 
    void setCategory( const QString &category );
    // adds a category to the Categories of this event
    void insertCategory(const QString &category );
    void clearCategories();
    void setCategories(const QStringList& );

    void setPriority(int priority );
    void setDate( QDate date );
    void setDescription(const QString& );
    bool isOverdue();

    bool match( const QRegExp &r )const;

    void setUid(int id) {m_uid = id; };
    bool operator<(const ToDoEvent &toDoEvent )const;
    bool operator<=(const ToDoEvent &toDoEvent )const;
    bool operator!=(const ToDoEvent &toDoEvent )const { return !(*this == toDoEvent); };
    bool operator>(const ToDoEvent &toDoEvent )const;
    bool operator>=(const ToDoEvent &toDoEvent)const;
    bool operator==(const ToDoEvent &toDoEvent )const;
    ToDoEvent &operator=(const ToDoEvent &toDoEvent );
 private:
    class ToDoEventPrivate;
    ToDoEventPrivate *d;
    QDate m_date;
    bool m_isCompleted:1;
    bool m_hasDate:1;
    int m_priority;
    QStringList m_category;
    QString m_desc;
    int m_uid;
};


#endif