00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef OPIE_TODO_ACCESS_XML_H
00030 #define OPIE_TODO_ACCESS_XML_H
00031
00032 #include <qasciidict.h>
00033 #include <qmap.h>
00034
00035 #include <opie2/otodoaccessbackend.h>
00036
00037 namespace Opie {
00038 class XMLElement;
00039
00040 class OPimTodoAccessXML : public OPimTodoAccessBackend {
00041 public:
00045 OPimTodoAccessXML( const QString& appName,
00046 const QString& fileName = QString::null );
00047 ~OPimTodoAccessXML();
00048
00049 bool load();
00050 bool reload();
00051 bool save();
00052
00053 QArray<int> allRecords()const;
00054 QArray<int> matchRegexp(const QRegExp &r) const;
00055 OPimTodo find( int uid )const;
00056 void clear();
00057 bool add( const OPimTodo& );
00058 bool remove( int uid );
00059 void removeAllCompleted();
00060 bool replace( const OPimTodo& );
00061
00062
00063 QArray<int> effectiveToDos( const QDate& start,
00064 const QDate& end,
00065 bool includeNoDates )const;
00066 QArray<int> overDue()const;
00067
00069 UIDArray sorted( const UIDArray&, bool, int, int, const QArray<int>& )const;
00071 private:
00072 void todo( QAsciiDict<int>*, OPimTodo&,const QCString&,const QString& );
00073 QString toString( const OPimTodo& )const;
00074 QString toString( const QArray<int>& ints ) const;
00075 QMap<int, OPimTodo> m_events;
00076 QString m_file;
00077 QString m_app;
00078 bool m_opened : 1;
00079 bool m_changed : 1;
00080 class OPimTodoAccessXMLPrivate;
00081 OPimTodoAccessXMLPrivate* d;
00082 int m_year, m_month, m_day;
00083 };
00084
00085 };
00086
00087 #endif