summaryrefslogtreecommitdiff
path: root/libopie/pim/otodoaccessxml.h
Side-by-side diff
Diffstat (limited to 'libopie/pim/otodoaccessxml.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/otodoaccessxml.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/libopie/pim/otodoaccessxml.h b/libopie/pim/otodoaccessxml.h
new file mode 100644
index 0000000..be9109d
--- a/dev/null
+++ b/libopie/pim/otodoaccessxml.h
@@ -0,0 +1,53 @@
+#ifndef OPIE_TODO_ACCESS_XML_H
+#define OPIE_TODO_ACCESS_XML_H
+
+#include <qasciidict.h>
+#include <qmap.h>
+
+#include "otodoaccessbackend.h"
+
+namespace Opie {
+ class XMLElement;
+};
+
+class OTodoAccessXML : public OTodoAccessBackend {
+public:
+ /**
+ * fileName if Empty we will use the default path
+ */
+ OTodoAccessXML( const QString& appName,
+ const QString& fileName = QString::null );
+ ~OTodoAccessXML();
+
+ bool load();
+ bool reload();
+ bool save();
+
+ QArray<int> allRecords()const;
+ QArray<int> queryByExample( const OTodo&, int sort );
+ OTodo find( int uid )const;
+ void clear();
+ bool add( const OTodo& );
+ bool remove( int uid );
+ bool replace( const OTodo& );
+
+ /* our functions */
+ QArray<int> effectiveToDos( const QDate& start,
+ const QDate& end,
+ bool includeNoDates );
+ QArray<int> overDue();
+private:
+ OTodo todo( QAsciiDict<int>*, Opie::XMLElement* )const;
+ QString toString( const OTodo& )const;
+ QString toString( const QArray<int>& ints ) const;
+ QMap<int, OTodo> m_events;
+ QString m_file;
+ QString m_app;
+ bool m_opened : 1;
+ bool m_changed : 1;
+ class OTodoAccessXMLPrivate;
+ OTodoAccessXMLPrivate* d;
+
+};
+
+#endif