-rw-r--r-- | libopie2/opiepim/otodo.cpp | 294 |
1 files changed, 228 insertions, 66 deletions
diff --git a/libopie2/opiepim/otodo.cpp b/libopie2/opiepim/otodo.cpp index 3eb0026..f534067 100644 --- a/libopie2/opiepim/otodo.cpp +++ b/libopie2/opiepim/otodo.cpp @@ -27,9 +27,13 @@ Boston, MA 02111-1307, USA. */ -#include <qobject.h> -#include <qshared.h> - +#include "otodo.h" +/* OPIE */ +#include <opie2/opimstate.h> +#include <opie2/orecur.h> +#include <opie2/opimmaintainer.h> +#include <opie2/opimnotifymanager.h> +#include <opie2/opimresolver.h> #include <qpe/palmtopuidgen.h> #include <qpe/stringutil.h> @@ -39,17 +43,15 @@ #include <qpe/categoryselect.h> +/* QT */ +#include <qobject.h> +#include <qshared.h> -#include <opie2/opimstate.h> -#include <opie2/orecur.h> -#include <opie2/opimmaintainer.h> -#include <opie2/opimnotifymanager.h> -#include <opie2/opimresolver.h> - -#include <opie2/otodo.h> - -namespace Opie { +namespace Opie +{ -struct OTodo::OTodoData : public QShared { - OTodoData() : QShared() { +struct OTodo::OTodoData : public QShared +{ + OTodoData() : QShared() + { recur = 0; state = 0; @@ -57,5 +59,6 @@ struct OTodo::OTodoData : public QShared { notifiers = 0; }; - ~OTodoData() { + ~OTodoData() + { delete recur; delete maintainer; @@ -79,4 +82,5 @@ struct OTodo::OTodoData : public QShared { }; + OTodo::OTodo(const OTodo &event ) : OPimRecord( event ), data( event.data ) @@ -85,8 +89,12 @@ OTodo::OTodo(const OTodo &event ) // qWarning("ref up"); } -OTodo::~OTodo() { + + +OTodo::~OTodo() +{ // qWarning("~OTodo " ); - if ( data->deref() ) { + if ( data->deref() ) + { // qWarning("OTodo::dereffing"); delete data; @@ -94,4 +102,6 @@ OTodo::~OTodo() { } } + + OTodo::OTodo(bool completed, int priority, const QArray<int> &category, @@ -115,4 +125,6 @@ OTodo::OTodo(bool completed, int priority, data->desc = Qtopia::simplifyMultiLineSpace(description ); } + + OTodo::OTodo(bool completed, int priority, const QStringList &category, @@ -136,16 +148,25 @@ OTodo::OTodo(bool completed, int priority, data->desc = Qtopia::simplifyMultiLineSpace(description ); } + + bool OTodo::match( const QRegExp ®Exp )const { - if( QString::number( data->priority ).find( regExp ) != -1 ){ + if ( QString::number( data->priority ).find( regExp ) != -1 ) + { setLastHitField( Priority ); return true; - }else if( data->hasDate && data->date.toString().find( regExp) != -1 ){ + } + else if ( data->hasDate && data->date.toString().find( regExp ) != -1 ) + { setLastHitField( HasDate ); return true; - }else if(data->desc.find( regExp ) != -1 ){ + } + else if ( data->desc.find( regExp ) != -1 ) + { setLastHitField( Description ); return true; - }else if(data->sum.find( regExp ) != -1 ) { + } + else if ( data->sum.find( regExp ) != -1 ) + { setLastHitField( Summary ); return true; @@ -153,50 +174,83 @@ bool OTodo::match( const QRegExp ®Exp )const return false; } + + bool OTodo::isCompleted() const { return data->isCompleted; } + + bool OTodo::hasDueDate() const { return data->hasDate; } -bool OTodo::hasStartDate()const { + + +bool OTodo::hasStartDate() const +{ return data->start.isValid(); } -bool OTodo::hasCompletedDate()const { + + +bool OTodo::hasCompletedDate() const +{ return data->completed.isValid(); } + + int OTodo::priority()const { return data->priority; } + + QString OTodo::summary() const { return data->sum; } + + ushort OTodo::progress() const { return data->prog; } + + QDate OTodo::dueDate()const { return data->date; } -QDate OTodo::startDate()const { + + +QDate OTodo::startDate() const +{ return data->start; } -QDate OTodo::completedDate()const { + + +QDate OTodo::completedDate() const +{ return data->completed; } + + QString OTodo::description()const { return data->desc; } -bool OTodo::hasState() const{ + + +bool OTodo::hasState() const +{ if (!data->state ) return false; return ( data->state->state() != OPimState::Undefined ); } -OPimState OTodo::state()const { - if (!data->state ) { + + +OPimState OTodo::state() const +{ + if ( !data->state ) + { OPimState state; return state; @@ -205,23 +259,37 @@ OPimState OTodo::state()const { return (*data->state); } -bool OTodo::hasRecurrence()const { + + +bool OTodo::hasRecurrence() const +{ if (!data->recur) return false; return data->recur->doesRecur(); } -ORecur OTodo::recurrence()const { + + +ORecur OTodo::recurrence() const +{ if (!data->recur) return ORecur(); return (*data->recur); } -bool OTodo::hasMaintainer()const { + + +bool OTodo::hasMaintainer() const +{ if (!data->maintainer) return false; return (data->maintainer->mode() != OPimMaintainer::Undefined ); } -OPimMaintainer OTodo::maintainer()const { + + +OPimMaintainer OTodo::maintainer() const +{ if (!data->maintainer) return OPimMaintainer(); return (*data->maintainer); } + + void OTodo::setCompleted( bool completed ) { @@ -229,4 +297,6 @@ void OTodo::setCompleted( bool completed ) data->isCompleted = completed; } + + void OTodo::setHasDueDate( bool hasDate ) { @@ -234,4 +304,6 @@ void OTodo::setHasDueDate( bool hasDate ) data->hasDate = hasDate; } + + void OTodo::setDescription(const QString &desc ) { @@ -240,4 +312,6 @@ void OTodo::setDescription(const QString &desc ) data->desc = Qtopia::simplifyMultiLineSpace(desc ); } + + void OTodo::setSummary( const QString& sum ) { @@ -245,4 +319,6 @@ void OTodo::setSummary( const QString& sum ) data->sum = sum; } + + void OTodo::setPriority(int prio ) { @@ -250,4 +326,6 @@ void OTodo::setPriority(int prio ) data->priority = prio; } + + void OTodo::setDueDate( const QDate& date ) { @@ -255,13 +333,22 @@ void OTodo::setDueDate( const QDate& date ) data->date = date; } -void OTodo::setStartDate( const QDate& date ) { + + +void OTodo::setStartDate( const QDate& date ) +{ changeOrModify(); data->start = date; } -void OTodo::setCompletedDate( const QDate& date ) { + + +void OTodo::setCompletedDate( const QDate& date ) +{ changeOrModify(); data->completed = date; } -void OTodo::setState( const OPimState& state ) { + + +void OTodo::setState( const OPimState& state ) +{ changeOrModify(); if (data->state ) @@ -270,5 +357,8 @@ void OTodo::setState( const OPimState& state ) { data->state = new OPimState( state ); } -void OTodo::setRecurrence( const ORecur& rec) { + + +void OTodo::setRecurrence( const ORecur& rec ) +{ changeOrModify(); if (data->recur ) @@ -277,5 +367,8 @@ void OTodo::setRecurrence( const ORecur& rec) { data->recur = new ORecur( rec ); } -void OTodo::setMaintainer( const OPimMaintainer& pim ) { + + +void OTodo::setMaintainer( const OPimMaintainer& pim ) +{ changeOrModify(); @@ -285,4 +378,6 @@ void OTodo::setMaintainer( const OPimMaintainer& pim ) { data->maintainer = new OPimMaintainer( pim ); } + + bool OTodo::isOverdue( ) { @@ -291,4 +386,6 @@ bool OTodo::isOverdue( ) return false; } + + void OTodo::setProgress(ushort progress ) { @@ -296,7 +393,12 @@ void OTodo::setProgress(ushort progress ) data->prog = progress; } -QString OTodo::toShortText() const { + + +QString OTodo::toShortText() const +{ return summary(); } + + /*! Returns a richt text string @@ -309,5 +411,6 @@ QString OTodo::toRichText() const // summary text += "<b><h3><img src=\"todo/TodoList\"> "; - if ( !summary().isEmpty() ) { + if ( !summary().isEmpty() ) + { text += Qtopia::escapeString(summary() ).replace(QRegExp( "[\n]"), "" ); } @@ -315,5 +418,6 @@ QString OTodo::toRichText() const // description - if( !description().isEmpty() ){ + if ( !description().isEmpty() ) + { text += "<b>" + QObject::tr( "Description:" ) + "</b><br>"; text += Qtopia::escapeString(description() ).replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; @@ -345,5 +449,6 @@ QString OTodo::toRichText() const // due date - if (hasDueDate() ){ + if ( hasDueDate() ) + { QDate dd = dueDate(); int off = QDate::currentDate().daysTo( dd ); @@ -367,14 +472,23 @@ QString OTodo::toRichText() const return text; } -bool OTodo::hasNotifiers()const { + + +bool OTodo::hasNotifiers() const +{ if (!data->notifiers) return false; return !data->notifiers->isEmpty(); } -OPimNotifyManager& OTodo::notifiers() { + + +OPimNotifyManager& OTodo::notifiers() +{ if (!data->notifiers ) data->notifiers = new OPimNotifyManager; return (*data->notifiers); } -const OPimNotifyManager& OTodo::notifiers()const{ + + +const OPimNotifyManager& OTodo::notifiers() const +{ if (!data->notifiers ) data->notifiers = new OPimNotifyManager; @@ -383,11 +497,17 @@ const OPimNotifyManager& OTodo::notifiers()const{ } -bool OTodo::operator<( const OTodo &toDoEvent )const{ + +bool OTodo::operator<( const OTodo &toDoEvent ) const +{ if( !hasDueDate() && !toDoEvent.hasDueDate() ) return true; if( !hasDueDate() && toDoEvent.hasDueDate() ) return false; - if( hasDueDate() && toDoEvent.hasDueDate() ){ - if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide + if ( hasDueDate() && toDoEvent.hasDueDate() ) + { + if ( dueDate() == toDoEvent.dueDate() ) + { // let's the priority decide return priority() < toDoEvent.priority(); - }else{ + } + else + { return dueDate() < toDoEvent.dueDate(); } @@ -395,12 +515,18 @@ bool OTodo::operator<( const OTodo &toDoEvent )const{ return false; } + + bool OTodo::operator<=(const OTodo &toDoEvent )const { if( !hasDueDate() && !toDoEvent.hasDueDate() ) return true; if( !hasDueDate() && toDoEvent.hasDueDate() ) return true; - if( hasDueDate() && toDoEvent.hasDueDate() ){ - if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide + if ( hasDueDate() && toDoEvent.hasDueDate() ) + { + if ( dueDate() == toDoEvent.dueDate() ) + { // let's the priority decide return priority() <= toDoEvent.priority(); - }else{ + } + else + { return dueDate() <= toDoEvent.dueDate(); } @@ -408,12 +534,18 @@ bool OTodo::operator<=(const OTodo &toDoEvent )const return true; } + + bool OTodo::operator>(const OTodo &toDoEvent )const { if( !hasDueDate() && !toDoEvent.hasDueDate() ) return false; if( !hasDueDate() && toDoEvent.hasDueDate() ) return false; - if( hasDueDate() && toDoEvent.hasDueDate() ){ - if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide + if ( hasDueDate() && toDoEvent.hasDueDate() ) + { + if ( dueDate() == toDoEvent.dueDate() ) + { // let's the priority decide return priority() > toDoEvent.priority(); - }else{ + } + else + { return dueDate() > toDoEvent.dueDate(); } @@ -421,12 +553,18 @@ bool OTodo::operator>(const OTodo &toDoEvent )const return false; } + + bool OTodo::operator>=(const OTodo &toDoEvent )const { if( !hasDueDate() && !toDoEvent.hasDueDate() ) return true; if( !hasDueDate() && toDoEvent.hasDueDate() ) return false; - if( hasDueDate() && toDoEvent.hasDueDate() ){ - if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide + if ( hasDueDate() && toDoEvent.hasDueDate() ) + { + if ( dueDate() == toDoEvent.dueDate() ) + { // let's the priority decide return priority() > toDoEvent.priority(); - }else{ + } + else + { return dueDate() > toDoEvent.dueDate(); } @@ -434,4 +572,6 @@ bool OTodo::operator>=(const OTodo &toDoEvent )const return true; } + + bool OTodo::operator==(const OTodo &toDoEvent )const { @@ -448,8 +588,12 @@ bool OTodo::operator==(const OTodo &toDoEvent )const return OPimRecord::operator==( toDoEvent ); } -void OTodo::deref() { + + +void OTodo::deref() +{ // qWarning("deref in ToDoEvent"); - if ( data->deref() ) { + if ( data->deref() ) + { // qWarning("deleting"); delete data; @@ -457,4 +601,6 @@ void OTodo::deref() { } } + + OTodo &OTodo::operator=(const OTodo &item ) { @@ -470,5 +616,7 @@ OTodo &OTodo::operator=(const OTodo &item ) } -QMap<int, QString> OTodo::toMap() const { + +QMap<int, QString> OTodo::toMap() const +{ QMap<int, QString> map; @@ -493,4 +641,5 @@ QMap<int, QString> OTodo::toMap() const { } + /** * change or modify looks at the ref count and either @@ -498,6 +647,8 @@ QMap<int, QString> OTodo::toMap() const { * right in place */ -void OTodo::changeOrModify() { - if ( data->count != 1 ) { +void OTodo::changeOrModify() +{ + if ( data->count != 1 ) + { qWarning("changeOrModify"); data->deref(); @@ -507,4 +658,6 @@ void OTodo::changeOrModify() { } } + + // WATCHOUT /* @@ -512,5 +665,6 @@ void OTodo::changeOrModify() { * be sure to copy it here */ -void OTodo::copy( OTodoData* src, OTodoData* dest ) { +void OTodo::copy( OTodoData* src, OTodoData* dest ) +{ dest->date = src->date; dest->isCompleted = src->isCompleted; @@ -537,12 +691,20 @@ void OTodo::copy( OTodoData* src, OTodoData* dest ) { dest->notifiers = new OPimNotifyManager( *src->notifiers ); } -QString OTodo::type() const { + + +QString OTodo::type() const +{ return QString::fromLatin1("OTodo"); } -QString OTodo::recordField(int /*id*/ )const { + + +QString OTodo::recordField( int /*id*/ ) const +{ return QString::null; } -int OTodo::rtti(){ + +int OTodo::rtti() +{ return OPimResolver::TodoList; } |