-rw-r--r-- | libopie/todoevent.cpp | 46 | ||||
-rw-r--r-- | libopie/todoevent.h | 27 |
2 files changed, 73 insertions, 0 deletions
diff --git a/libopie/todoevent.cpp b/libopie/todoevent.cpp index a5dba4f..5537b77 100644 --- a/libopie/todoevent.cpp +++ b/libopie/todoevent.cpp @@ -1,14 +1,22 @@ #include <opie/todoevent.h> + + #include <qpe/palmtopuidgen.h> #include <qpe/stringutil.h> #include <qpe/palmtoprecord.h> +#include <qpe/stringutil.h> +#include <qpe/categories.h> +#include <qpe/categoryselect.h> + +#include <qobject.h> + ToDoEvent::ToDoEvent(const ToDoEvent &event ) { *this = event; } ToDoEvent::ToDoEvent(bool completed, int priority, const QStringList &category, const QString &description, bool hasDate, QDate date, int uid ) { @@ -106,16 +114,54 @@ void ToDoEvent::setDate( QDate date ) m_date = date; } bool ToDoEvent::isOverdue( ) { if( m_hasDate ) return QDate::currentDate() > m_date; return false; } + +/*! + Returns a richt text string +*/ +QString ToDoEvent::richText() const +{ + QString text; + QStringList catlist; + + // Description of the todo + if ( !description().isEmpty() ){ + text += "<b>" + QObject::tr( "Description:" ) + "</b><br>"; + text += Qtopia::escapeString(description() ) + "<br>"; + } + text += "<b>" + QObject::tr( "Priority:") +" </b>" + + QString::number( priority() ) + "<br>"; + if (hasDate() ){ + text += "<b>" + QObject::tr( "Deadline:") + " </b>"; + text += date().toString(); + text += "<br>"; + } + + // Open database of all categories and get the list of + // the categories this todoevent belongs to. + // Then print them... + // I am not sure whether there is no better way doing this !? + Categories catdb; + catdb.load( categoryFileName() ); + catlist = allCategories(); + + text += "<b>" + QObject::tr( "Category:") + "</b> "; + for ( QStringList::Iterator it = catlist.begin(); it != catlist.end(); ++it ) { + text += catdb.label ("todo", (*it).toInt()); + } + text += "<br>"; + return text; +} + bool ToDoEvent::operator<( const ToDoEvent &toDoEvent )const{ if( !hasDate() && !toDoEvent.hasDate() ) return true; if( !hasDate() && toDoEvent.hasDate() ) return true; if( hasDate() && toDoEvent.hasDate() ){ if( date() == toDoEvent.date() ){ // let's the priority decide return priority() < toDoEvent.priority(); }else{ return date() < toDoEvent.date(); diff --git a/libopie/todoevent.h b/libopie/todoevent.h index 0d477fd..40d8f0b 100644 --- a/libopie/todoevent.h +++ b/libopie/todoevent.h @@ -3,30 +3,57 @@ #define todoevent_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 ); |