#ifndef OPIE_TODO_ACCESS_H #define OPIE_TODO_ACCESS_H #include #include #include "otodo.h" #include "otodoaccessbackend.h" #include "opimaccesstemplate.h" /** * OTodoAccess * the class to get access to * the todolist */ class OTodoAccess : public QObject, public OPimAccessTemplate { Q_OBJECT public: enum SortOrder { Completed = 0, Priority, Description, Deadline }; enum SortFilter{ Category =1, OnlyOverDue= 2, DoNotShowCompleted =4 }; /** * if you use 0l * the default resource will be * picked up */ OTodoAccess( OTodoAccessBackend* = 0l, enum Access acc = Random ); ~OTodoAccess(); /* our functions here */ /** * include todos from start to end * includeNoDates whether or not to include * events with no dates */ List effectiveToDos( const QDate& start, const QDate& end, bool includeNoDates = true ); /** * start * end date taken from the currentDate() */ List effectiveToDos( const QDate& start, bool includeNoDates = true ); /** * return overdue OTodos */ List overDue(); /** * */ List sorted( bool ascending, int sortOrder, int sortFilter, int cat ); /** * merge a list of OTodos into * the resource */ void mergeWith( const QValueList& ); /** * delete all already completed items */ void removeAllCompleted(); /** * request information about what a backend supports. * Supports in the sense of beeing able to store. * This is related to the enum in OTodo * * @param backend Will be used in the future when we support multiple backend */ QBitArray backendSupport( const QString& backend = QString::null )const; /** * see above but for a specefic attribute. This method was added for convience * @param attr The attribute to be queried for * @param backend Will be used in the future when we support multiple backends */ bool backendSupports( int attr, const QString& backend = QString::null )const; signals: /** * if the OTodoAccess was changed */ void changed( const OTodoAccess* ); void changed( const OTodoAccess*, int uid ); void added( const OTodoAccess*, int uid ); void removed( const OTodoAccess*, int uid ); private: int m_cat; OTodoAccessBackend* m_todoBackEnd; class OTodoAccessPrivate; OTodoAccessPrivate* d; }; #endif