summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/core
authorzecke <zecke>2002-09-22 22:21:51 (UTC)
committer zecke <zecke>2002-09-22 22:21:51 (UTC)
commite49230a12104b718c46a34c81b6c0e608c9d40be (patch) (unidiff)
tree4ef2e58c366a8cf7c4abe04838e255b38613fbcb /libopie2/opiepim/core
parent3049d9418b882283814ca71baa98420b2a6745db (diff)
downloadopie-e49230a12104b718c46a34c81b6c0e608c9d40be.zip
opie-e49230a12104b718c46a34c81b6c0e608c9d40be.tar.gz
opie-e49230a12104b718c46a34c81b6c0e608c9d40be.tar.bz2
Add XML resources for todolist and compile fixes for RecordList
Diffstat (limited to 'libopie2/opiepim/core') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/core/opimaccesstemplate.h53
-rw-r--r--libopie2/opiepim/core/otemplatebase.h2
-rw-r--r--libopie2/opiepim/core/otodoaccess.cpp71
-rw-r--r--libopie2/opiepim/core/otodoaccess.h79
4 files changed, 180 insertions, 25 deletions
diff --git a/libopie2/opiepim/core/opimaccesstemplate.h b/libopie2/opiepim/core/opimaccesstemplate.h
index 36f5a99..31ab516 100644
--- a/libopie2/opiepim/core/opimaccesstemplate.h
+++ b/libopie2/opiepim/core/opimaccesstemplate.h
@@ -14,7 +14,7 @@
14 * Library. Either you want to use it's 14 * Library. Either you want to use it's
15 * interface or you want to implement 15 * interface or you want to implement
16 * your own Access lib 16 * your own Access lib
17 * Just create a OPimRecord and inherit from 17 * Just create a OPimRecord and inherit from
18 * the plugins 18 * the plugins
19 */ 19 */
20 20
@@ -36,49 +36,49 @@ public:
36 */ 36 */
37 OPimAccessTemplate( BackEnd* end); 37 OPimAccessTemplate( BackEnd* end);
38 virtual ~OPimAccessTemplate(); 38 virtual ~OPimAccessTemplate();
39 39
40 /** 40 /**
41 * load from the backend 41 * load from the backend
42 */ 42 */
43 virtual void load(); 43 virtual bool load();
44 44
45 /** 45 /**
46 * reload from the backend 46 * reload from the backend
47 */ 47 */
48 virtual void reload(); 48 virtual bool reload();
49 49
50 /** 50 /**
51 * save to the backend 51 * save to the backend
52 */ 52 */
53 virtual void save(); 53 virtual bool save();
54 54
55 /** 55 /**
56 * if the resource was changed externally 56 * if the resource was changed externally
57 */ 57 */
58 bool wasChangedExternally()const; 58 bool wasChangedExternally()const;
59 59
60 /** 60 /**
61 * return a List of records 61 * return a List of records
62 * you can iterate over them 62 * you can iterate over them
63 */ 63 */
64 virtual List allRecords()const; 64 virtual List allRecords()const;
65 65
66 /** 66 /**
67 * queryByExample 67 * queryByExample
68 */ 68 */
69 virtual List queryByExample( const T& t, int sortOrder ); 69 virtual List queryByExample( const T& t, int sortOrder );
70 70
71 /** 71 /**
72 * find the OPimRecord uid 72 * find the OPimRecord uid
73 */ 73 */
74 virtual T find( int uid ); 74 virtual T find( int uid )const;
75 75
76 /* invalidate cache here */ 76 /* invalidate cache here */
77 /** 77 /**
78 * clears the backend and invalidates the backend 78 * clears the backend and invalidates the backend
79 */ 79 */
80 virtual void clear() ; 80 virtual void clear() ;
81 81
82 /** 82 /**
83 * add T to the backend 83 * add T to the backend
84 */ 84 */
@@ -89,12 +89,12 @@ public:
89 * remove T from the backend 89 * remove T from the backend
90 */ 90 */
91 virtual bool remove( const T& t ); 91 virtual bool remove( const T& t );
92 92
93 /** 93 /**
94 * remove the OPimRecord with uid 94 * remove the OPimRecord with uid
95 */ 95 */
96 virtual bool remove( int uid ); 96 virtual bool remove( int uid );
97 97
98 /** 98 /**
99 * replace T from backend 99 * replace T from backend
100 */ 100 */
@@ -104,7 +104,8 @@ protected:
104 * invalidate the cache 104 * invalidate the cache
105 */ 105 */
106 void invalidateCache(); 106 void invalidateCache();
107 107
108 void setBackEnd( BackEnd* end );
108 /** 109 /**
109 * returns the backend 110 * returns the backend
110 */ 111 */
@@ -125,16 +126,16 @@ OPimAccessTemplate<T>::~OPimAccessTemplate() {
125 delete m_backEnd; 126 delete m_backEnd;
126} 127}
127template <class T> 128template <class T>
128void OPimAccessTemplate<T>::load() { 129bool OPimAccessTemplate<T>::load() {
129 m_backEnd->load(); 130 return m_backEnd->load();
130} 131}
131template <class T> 132template <class T>
132void OPimAccessTemplate<T>::reload() { 133bool OPimAccessTemplate<T>::reload() {
133 m_backEnd->reload(); 134 return m_backEnd->reload();
134} 135}
135template <class T> 136template <class T>
136void OPimAccessTemplate<T>::save() { 137bool OPimAccessTemplate<T>::save() {
137 m_backEnd->save(); 138 return m_backEnd->save();
138} 139}
139template <class T> 140template <class T>
140OPimAccessTemplate<T>::List OPimAccessTemplate<T>::allRecords()const { 141OPimAccessTemplate<T>::List OPimAccessTemplate<T>::allRecords()const {
@@ -151,7 +152,7 @@ OPimAccessTemplate<T>::queryByExample( const T& t, int sortOrder ) {
151 return lis; 152 return lis;
152} 153}
153template <class T> 154template <class T>
154T OPimAccessTemplate<T>::find( int uid ) { 155T OPimAccessTemplate<T>::find( int uid ) const{
155 T t = m_backEnd->find( uid ); 156 T t = m_backEnd->find( uid );
156 return t; 157 return t;
157} 158}
@@ -188,4 +189,8 @@ template <class T>
188bool OPimAccessTemplate<T>::wasChangedExternally()const { 189bool OPimAccessTemplate<T>::wasChangedExternally()const {
189 return false; 190 return false;
190} 191}
192template <class T>
193void OPimAccessTemplate<T>::setBackEnd( BackEnd* end ) {
194 m_backEnd = end;
195}
191#endif 196#endif
diff --git a/libopie2/opiepim/core/otemplatebase.h b/libopie2/opiepim/core/otemplatebase.h
index add1de4..f71417b 100644
--- a/libopie2/opiepim/core/otemplatebase.h
+++ b/libopie2/opiepim/core/otemplatebase.h
@@ -13,7 +13,7 @@ public:
13 }; 13 };
14 virtual ~OTemplateBase() { 14 virtual ~OTemplateBase() {
15 } 15 }
16 virtual T find( int uid ) = 0; 16 virtual T find( int uid )const = 0;
17 17
18}; 18};
19 19
diff --git a/libopie2/opiepim/core/otodoaccess.cpp b/libopie2/opiepim/core/otodoaccess.cpp
new file mode 100644
index 0000000..a65cf5c
--- a/dev/null
+++ b/libopie2/opiepim/core/otodoaccess.cpp
@@ -0,0 +1,71 @@
1#include <qdatetime.h>
2
3#include <qpe/alarmserver.h>
4
5#include "otodoaccessxml.h"
6#include "otodoaccess.h"
7
8
9OTodoAccess::OTodoAccess( OTodoAccessBackend* end )
10 : QObject(), OPimAccessTemplate<OTodo>( end ), m_todoBackEnd( end )
11{
12 if (end == 0l )
13 m_todoBackEnd = new OTodoAccessXML( "Todolist" );
14
15 setBackEnd( m_todoBackEnd );
16}
17OTodoAccess::~OTodoAccess() {
18 qWarning("~OTodoAccess");
19}
20void OTodoAccess::mergeWith( const QValueList<OTodo>& list ) {
21 QValueList<OTodo>::ConstIterator it;
22 for ( it = list.begin(); it != list.end(); ++it ) {
23 replace( (*it) );
24 }
25}
26OTodoAccess::List OTodoAccess::effectiveToDos( const QDate& start,
27 const QDate& end,
28 bool includeNoDates ) {
29 QArray<int> ints = m_todoBackEnd->effectiveToDos( start, end, includeNoDates );
30
31 List lis( ints, this );
32 return lis;
33}
34OTodoAccess::List OTodoAccess::effectiveToDos( const QDate& start,
35 bool includeNoDates ) {
36 return effectiveToDos( start, QDate::currentDate(),
37 includeNoDates );
38}
39OTodoAccess::List OTodoAccess::overDue() {
40 List lis( m_todoBackEnd->overDue(), this );
41 return lis;
42}
43void OTodoAccess::addAlarm( const OTodo& event) {
44 if (!event.hasAlarmDateTime() )
45 return;
46
47 QDateTime now = QDateTime::currentDateTime();
48 QDateTime schedule = event.alarmDateTime();
49
50 if ( schedule > now ){
51 AlarmServer::addAlarm( schedule,
52 "QPE/Application/todolist",
53 "alarm(QDateTime,int)", event.uid() );
54
55 }
56}
57void OTodoAccess::delAlarm( int uid) {
58
59 QDateTime schedule; // Create null DateTime
60
61 // I hope this will remove all scheduled alarms
62 // with the given uid !?
63 // If not: I have to rethink how to remove already
64 // scheduled events... (se)
65 // it should be fine -zecke
66 qWarning("Removing alarm for event with uid %d", uid );
67 AlarmServer::deleteAlarm( schedule ,
68 "QPE/Application/todolist",
69 "alarm(QDateTime,int)", uid );
70}
71
diff --git a/libopie2/opiepim/core/otodoaccess.h b/libopie2/opiepim/core/otodoaccess.h
new file mode 100644
index 0000000..c43efe9
--- a/dev/null
+++ b/libopie2/opiepim/core/otodoaccess.h
@@ -0,0 +1,79 @@
1#ifndef OPIE_TODO_ACCESS_H
2#define OPIE_TODO_ACCESS_H
3
4#include <qobject.h>
5#include <qvaluelist.h>
6
7#include "otodo.h"
8#include "otodoaccessbackend.h"
9#include "opimaccesstemplate.h"
10
11
12/**
13 * OTodoAccess
14 * the class to get access to
15 * the todolist
16 */
17class OTodoAccess : public QObject, public OPimAccessTemplate<OTodo> {
18 Q_OBJECT
19public:
20 /**
21 * if you use 0l
22 * the default resource will be
23 * icked up
24 */
25 OTodoAccess( OTodoAccessBackend* = 0l);
26 ~OTodoAccess();
27
28
29 /* our functions here */
30 /**
31 * include todos from start to end
32 * includeNoDates whether or not to include
33 * events with no dates
34 */
35 List effectiveToDos( const QDate& start,
36 const QDate& end,
37 bool includeNoDates = true );
38
39 /**
40 * start
41 * end date taken from the currentDate()
42 */
43 List effectiveToDos( const QDate& start,
44 bool includeNoDates = true );
45
46
47 /**
48 * return overdue OTodos
49 */
50 List overDue();
51 /**
52 * merge a list of OTodos into
53 * the resource
54 */
55 void mergeWith( const QValueList<OTodo>& );
56
57 /**
58 * add an Alarm to the AlarmServer
59 */
60 void addAlarm( const OTodo& );
61
62 /**
63 * delete an alarm with the uid from
64 * the alarm server
65 */
66 void delAlarm( int uid );
67
68signals:
69 /**
70 * if the OTodoAccess was changed
71 */
72 void signalChanged( const OTodoAccess* );
73private:
74 OTodoAccessBackend* m_todoBackEnd;
75 class OTodoAccessPrivate;
76 OTodoAccessPrivate* d;
77};
78
79#endif