summaryrefslogtreecommitdiff
path: root/libopie/todoevent.h
Side-by-side diff
Diffstat (limited to 'libopie/todoevent.h') (more/less context) (show whitespace changes)
-rw-r--r--libopie/todoevent.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/libopie/todoevent.h b/libopie/todoevent.h
index de4623f..b55a39b 100644
--- a/libopie/todoevent.h
+++ b/libopie/todoevent.h
@@ -1,162 +1,191 @@
#ifndef todoevent_h
#define todoevent_h
+
+#include <qarray.h>
#include <qmap.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 summary A small summary of the todo
@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 &summary = QString::null ,
const QString &description = QString::null,
ushort progress = 0,
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 ;
/**
* progress as ushort 0, 20, 40, 60, 80 or 100%
*/
ushort progress() const;
/*
All category numbers as QString in a List
**/
QStringList allCategories()const;
/*
* Same as above but with QArray<int>
*/
QArray<int> categories() const;
/**
* The end Date
*/
QDate date()const;
/**
* The description of the todo
*/
QString description()const;
/**
* A small summary of the todo
*/
QString summary() const;
/**
* Return this todoevent in a RichText formatted QString
*/
QString richText() const;
/**
* Returns the UID of the Todo
*/
int uid()const { return m_uid;};
QString extra(const QString& )const;
+
+ /**
+ * returns a list of apps which have related items
+ */
+ QStringList relatedApps()const;
+
+ /**
+ * returns all relations for one app
+ */
+ QArray<int> relations( const QString& app )const;
/**
* Set if this Todo is completed
*/
void setCompleted(bool completed );
/**
* set if this todo got an end data
*/
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 );
/**
* Removes this event from all categories
*/
void clearCategories();
/**
* This todo belongs to xxx categories
*/
void setCategories(const QStringList& );
/**
* Set the priority of the Todo
*/
void setPriority(int priority );
/**
* Set the progress.
*/
void setProgress( ushort progress );
/**
+ * add related function it replaces too ;)
+ */
+ void addRelated( const QString& app, int id );
+
+ /**
+ * add related
+ */
+ void addRelated( const QString& app, QArray<int> ids );
+
+ /**
+ * clear relations for one app
+ */
+ void clearRelated(const QString& app);
+
+ /**
* set the end date
*/
void setDate( QDate date );
void setDescription(const QString& );
void setSummary(const QString& );
void setExtra( const QString&, 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;
QString m_sum;
QMap<QString, QString> m_extra;
+ QMap<QString, QArray<int> > m_relations;
int m_uid;
ushort m_prog;
};
#endif