summaryrefslogtreecommitdiff
path: root/include/opie
Side-by-side diff
Diffstat (limited to 'include/opie') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opie/tododb.h40
-rw-r--r--include/opie/todoevent.h52
2 files changed, 92 insertions, 0 deletions
diff --git a/include/opie/tododb.h b/include/opie/tododb.h
new file mode 100644
index 0000000..6478363
--- a/dev/null
+++ b/include/opie/tododb.h
@@ -0,0 +1,40 @@
+
+#ifndef tododb_h
+#define tododb_h
+
+#include <qvaluelist.h>
+
+#include <opie/todoevent.h>
+
+class ToDoDB
+{
+ public:
+ // if no argument is supplied pick the default book
+ ToDoDB(const QString &fileName = QString::null );
+ ~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 reload();
+ void setFileName(const QString & );
+ QString fileName()const;
+ bool save();
+
+ private:
+ class ToDoDBPrivate;
+ ToDoDBPrivate *d;
+ QString m_fileName;
+ QValueList<ToDoEvent> m_todos;
+ void load();
+};
+
+
+#endif
diff --git a/include/opie/todoevent.h b/include/opie/todoevent.h
new file mode 100644
index 0000000..dd8c0c9
--- a/dev/null
+++ b/include/opie/todoevent.h
@@ -0,0 +1,52 @@
+
+#ifndef todoevent_h
+#define todoevent_h
+
+#include <qdatetime.h>
+
+class ToDoEvent {
+ friend class ToDoDB;
+ public:
+ enum Priority { VERYHIGH=1, HIGH, NORMAL, LOW, VERYLOW };
+ ToDoEvent( bool completed = false, int priority = NORMAL,
+ const QString &category = QString::null,
+ const QString &description = QString::null ,
+ bool hasDate = false, QDate date = QDate::currentDate(), int uid = -1 );
+ bool isCompleted() const;
+ bool hasDate() const;
+ int priority()const ;
+ QString category()const;
+ QDate date()const;
+ QString description()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
+ void setCategory( const QString &category );
+ void setPriority(int priority );
+ void setDate( QDate date );
+ void setDescription(const QString& );
+ bool isOverdue();
+
+ 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;
+ QString m_category;
+ QString m_desc;
+ int m_uid;
+};
+
+
+#endif