-rw-r--r-- | libopie/tododb.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libopie/tododb.cpp b/libopie/tododb.cpp index e440dfc..b1b35d0 100644 --- a/libopie/tododb.cpp +++ b/libopie/tododb.cpp | |||
@@ -26,190 +26,192 @@ public: | |||
26 | arrat = Qtopia::Record::idsFromString( (*it).category() ); | 26 | arrat = Qtopia::Record::idsFromString( (*it).category() ); |
27 | map.insert( "Categories", QString::number( arrat[0] ) ); | 27 | map.insert( "Categories", QString::number( arrat[0] ) ); |
28 | }else | 28 | }else |
29 | map.insert( "Categories", QString::null ); | 29 | map.insert( "Categories", QString::null ); |
30 | map.insert( "Description", (*it).description() ); | 30 | map.insert( "Description", (*it).description() ); |
31 | if( (*it).hasDate() ){ | 31 | if( (*it).hasDate() ){ |
32 | map.insert("DateYear", QString::number( (*it).date().year() ) ); | 32 | map.insert("DateYear", QString::number( (*it).date().year() ) ); |
33 | map.insert("DateMonth", QString::number( (*it).date().month() ) ); | 33 | map.insert("DateMonth", QString::number( (*it).date().month() ) ); |
34 | map.insert("DateDay", QString::number( (*it).date().day() ) ); | 34 | map.insert("DateDay", QString::number( (*it).date().day() ) ); |
35 | } | 35 | } |
36 | map.insert("Uid", QString::number( (*it).uid() ) ); | 36 | map.insert("Uid", QString::number( (*it).uid() ) ); |
37 | task->setTagName("Task" ); | 37 | task->setTagName("Task" ); |
38 | task->setAttributes( map ); | 38 | task->setAttributes( map ); |
39 | tasks->appendChild(task); | 39 | tasks->appendChild(task); |
40 | } | 40 | } |
41 | QFile file( name); | 41 | QFile file( name); |
42 | if( file.open(IO_WriteOnly ) ){ | 42 | if( file.open(IO_WriteOnly ) ){ |
43 | QTextStream stream(&file ); | 43 | QTextStream stream(&file ); |
44 | stream << "<!DOCTYPE Tasks>" << endl; | 44 | stream << "<!DOCTYPE Tasks>" << endl; |
45 | tasks->save(stream ); | 45 | tasks->save(stream ); |
46 | delete tasks; | 46 | delete tasks; |
47 | file.close(); | 47 | file.close(); |
48 | return true; | 48 | return true; |
49 | } | 49 | } |
50 | return false; | 50 | return false; |
51 | } | 51 | } |
52 | QValueList<ToDoEvent> load( const QString &name ){ | 52 | QValueList<ToDoEvent> load( const QString &name ){ |
53 | qWarning("loading tododb" ); | 53 | qWarning("loading tododb" ); |
54 | QValueList<ToDoEvent> m_todos; | 54 | QValueList<ToDoEvent> m_todos; |
55 | XMLElement *root = XMLElement::load( name ); | 55 | XMLElement *root = XMLElement::load( name ); |
56 | if(root != 0l ){ // start parsing | 56 | if(root != 0l ){ // start parsing |
57 | qWarning("ToDoDB::load tagName(): %s", root->tagName().latin1() ); | 57 | qWarning("ToDoDB::load tagName(): %s", root->tagName().latin1() ); |
58 | //if( root->tagName() == QString::fromLatin1("Tasks" ) ){// Start | 58 | //if( root->tagName() == QString::fromLatin1("Tasks" ) ){// Start |
59 | XMLElement *element = root->firstChild(); | 59 | XMLElement *element = root->firstChild(); |
60 | element = element->firstChild(); | 60 | element = element->firstChild(); |
61 | while( element ){ | 61 | while( element ){ |
62 | qWarning("ToDoDB::load element tagName() : %s", element->tagName().latin1() ); | 62 | qWarning("ToDoDB::load element tagName() : %s", element->tagName().latin1() ); |
63 | QString dummy; | 63 | QString dummy; |
64 | ToDoEvent event; | 64 | ToDoEvent event; |
65 | bool ok; | 65 | bool ok; |
66 | int dumInt; | 66 | int dumInt; |
67 | // completed | 67 | // completed |
68 | dummy = element->attribute("Completed" ); | 68 | dummy = element->attribute("Completed" ); |
69 | dumInt = dummy.toInt(&ok ); | 69 | dumInt = dummy.toInt(&ok ); |
70 | if(ok ) event.setCompleted( dumInt == 0 ? false : true ); | 70 | if(ok ) event.setCompleted( dumInt == 0 ? false : true ); |
71 | // hasDate | 71 | // hasDate |
72 | dummy = element->attribute("HasDate" ); | 72 | dummy = element->attribute("HasDate" ); |
73 | dumInt = dummy.toInt(&ok ); | 73 | dumInt = dummy.toInt(&ok ); |
74 | if(ok ) event.setHasDate( dumInt == 0 ? false: true ); | 74 | if(ok ) event.setHasDate( dumInt == 0 ? false: true ); |
75 | // set the date | 75 | // set the date |
76 | bool hasDa = dumInt; | 76 | bool hasDa = dumInt; |
77 | if ( hasDa ) { //parse the date | 77 | if ( hasDa ) { //parse the date |
78 | int year, day, month = 0; | 78 | int year, day, month = 0; |
79 | year = day = month; | 79 | year = day = month; |
80 | // year | 80 | // year |
81 | dummy = element->attribute("DateYear" ); | 81 | dummy = element->attribute("DateYear" ); |
82 | dumInt = dummy.toInt(&ok ); | 82 | dumInt = dummy.toInt(&ok ); |
83 | if( ok ) year = dumInt; | 83 | if( ok ) year = dumInt; |
84 | // month | 84 | // month |
85 | dummy = element->attribute("DateMonth" ); | 85 | dummy = element->attribute("DateMonth" ); |
86 | dumInt = dummy.toInt(&ok ); | 86 | dumInt = dummy.toInt(&ok ); |
87 | if(ok ) month = dumInt; | 87 | if(ok ) month = dumInt; |
88 | dummy = element->attribute("DateDay" ); | 88 | dummy = element->attribute("DateDay" ); |
89 | dumInt = dummy.toInt(&ok ); | 89 | dumInt = dummy.toInt(&ok ); |
90 | if(ok ) day = dumInt; | 90 | if(ok ) day = dumInt; |
91 | // set the date | 91 | // set the date |
92 | QDate date( year, month, day ); | 92 | QDate date( year, month, day ); |
93 | event.setDate( date); | 93 | event.setDate( date); |
94 | } | 94 | } |
95 | dummy = element->attribute("Priority" ); | 95 | dummy = element->attribute("Priority" ); |
96 | dumInt = dummy.toInt(&ok ); | 96 | dumInt = dummy.toInt(&ok ); |
97 | if(!ok ) dumInt = ToDoEvent::NORMAL; | 97 | if(!ok ) dumInt = ToDoEvent::NORMAL; |
98 | event.setPriority( dumInt ); | 98 | event.setPriority( dumInt ); |
99 | //description | 99 | //description |
100 | dummy = element->attribute("Description" ); | 100 | dummy = element->attribute("Description" ); |
101 | event.setDescription( dummy ); | 101 | event.setDescription( dummy ); |
102 | // category | 102 | // category |
103 | dummy = element->attribute("Categories" ); | 103 | dummy = element->attribute("Categories" ); |
104 | dumInt = dummy.toInt(&ok ); | 104 | dumInt = dummy.toInt(&ok ); |
105 | if(ok ) { | 105 | if(ok ) { |
106 | QArray<int> arrat(1); | 106 | QArray<int> arrat(1); |
107 | arrat[0] = dumInt; | 107 | arrat[0] = dumInt; |
108 | event.setCategory( Qtopia::Record::idsToString( arrat ) ); | 108 | event.setCategory( Qtopia::Record::idsToString( arrat ) ); |
109 | } | 109 | } |
110 | //uid | 110 | //uid |
111 | dummy = element->attribute("Uid" ); | 111 | dummy = element->attribute("Uid" ); |
112 | dumInt = dummy.toInt(&ok ); | 112 | dumInt = dummy.toInt(&ok ); |
113 | if(ok ) event.setUid( dumInt ); | 113 | if(ok ) event.setUid( dumInt ); |
114 | m_todos.append( event ); | 114 | m_todos.append( event ); |
115 | element = element->nextChild(); // next element | 115 | element = element->nextChild(); // next element |
116 | } | 116 | } |
117 | //} | 117 | //} |
118 | }else { | 118 | }else { |
119 | qWarning("could not load" ); | 119 | qWarning("could not load" ); |
120 | } | 120 | } |
121 | delete root; | 121 | delete root; |
122 | qWarning("returning" ); | ||
122 | return m_todos; | 123 | return m_todos; |
123 | } | 124 | } |
124 | }; | 125 | }; |
125 | 126 | ||
126 | } | 127 | } |
127 | 128 | ||
128 | ToDoDB::ToDoDB(const QString &fileName = QString::null, ToDoResource *res ){ | 129 | ToDoDB::ToDoDB(const QString &fileName = QString::null, ToDoResource *res ){ |
129 | m_fileName = fileName; | 130 | m_fileName = fileName; |
130 | if( fileName.isEmpty() && res == 0 ){ | 131 | if( fileName.isEmpty() && res == 0 ){ |
131 | m_fileName = Global::applicationFileName("todolist","todolist.xml");; | 132 | m_fileName = Global::applicationFileName("todolist","todolist.xml"); |
133 | res = new FileToDoResource(); | ||
132 | //qWarning("%s", m_fileName.latin1() ); | 134 | //qWarning("%s", m_fileName.latin1() ); |
133 | }else if(res == 0 ){ // let's create a ToDoResource for xml | 135 | }else if(res == 0 ){ // let's create a ToDoResource for xml |
134 | res = new FileToDoResource(); | 136 | res = new FileToDoResource(); |
135 | } | 137 | } |
136 | m_res = res; | 138 | m_res = res; |
137 | load(); | 139 | load(); |
138 | } | 140 | } |
139 | ToDoDB::~ToDoDB() | 141 | ToDoDB::~ToDoDB() |
140 | { | 142 | { |
141 | delete m_res; | 143 | delete m_res; |
142 | } | 144 | } |
143 | QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, const QDate &to, | 145 | QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, const QDate &to, |
144 | bool all ) | 146 | bool all ) |
145 | { | 147 | { |
146 | QValueList<ToDoEvent> events; | 148 | QValueList<ToDoEvent> events; |
147 | for( QValueList<ToDoEvent>::Iterator it = m_todos.begin(); it!= m_todos.end(); ++it ){ | 149 | for( QValueList<ToDoEvent>::Iterator it = m_todos.begin(); it!= m_todos.end(); ++it ){ |
148 | if( (*it).hasDate() ){ | 150 | if( (*it).hasDate() ){ |
149 | if( (*it).date() >= from && (*it).date() <= to ) | 151 | if( (*it).date() >= from && (*it).date() <= to ) |
150 | events.append( (*it) ); | 152 | events.append( (*it) ); |
151 | }else if( all ){ | 153 | }else if( all ){ |
152 | events.append( (*it) ); | 154 | events.append( (*it) ); |
153 | } | 155 | } |
154 | } | 156 | } |
155 | return events; | 157 | return events; |
156 | } | 158 | } |
157 | QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, | 159 | QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, |
158 | bool all) | 160 | bool all) |
159 | { | 161 | { |
160 | return effectiveToDos( from, QDate::currentDate(), all ); | 162 | return effectiveToDos( from, QDate::currentDate(), all ); |
161 | } | 163 | } |
162 | QValueList<ToDoEvent> ToDoDB::overDue() | 164 | QValueList<ToDoEvent> ToDoDB::overDue() |
163 | { | 165 | { |
164 | QValueList<ToDoEvent> events; | 166 | QValueList<ToDoEvent> events; |
165 | for( QValueList<ToDoEvent>::Iterator it = m_todos.begin(); it!= m_todos.end(); ++it ){ | 167 | for( QValueList<ToDoEvent>::Iterator it = m_todos.begin(); it!= m_todos.end(); ++it ){ |
166 | if( (*it).isOverdue() ) | 168 | if( (*it).isOverdue() ) |
167 | events.append((*it) ); | 169 | events.append((*it) ); |
168 | } | 170 | } |
169 | return events; | 171 | return events; |
170 | } | 172 | } |
171 | QValueList<ToDoEvent> ToDoDB::rawToDos() | 173 | QValueList<ToDoEvent> ToDoDB::rawToDos() |
172 | { | 174 | { |
173 | return m_todos; | 175 | return m_todos; |
174 | } | 176 | } |
175 | void ToDoDB::addEvent( const ToDoEvent &event ) | 177 | void ToDoDB::addEvent( const ToDoEvent &event ) |
176 | { | 178 | { |
177 | m_todos.append( event ); | 179 | m_todos.append( event ); |
178 | } | 180 | } |
179 | void ToDoDB::editEvent( const ToDoEvent &event ) | 181 | void ToDoDB::editEvent( const ToDoEvent &event ) |
180 | { | 182 | { |
181 | m_todos.remove( event ); | 183 | m_todos.remove( event ); |
182 | m_todos.append( event ); | 184 | m_todos.append( event ); |
183 | } | 185 | } |
184 | void ToDoDB::removeEvent( const ToDoEvent &event ) | 186 | void ToDoDB::removeEvent( const ToDoEvent &event ) |
185 | { | 187 | { |
186 | m_todos.remove( event ); | 188 | m_todos.remove( event ); |
187 | } | 189 | } |
188 | void ToDoDB::reload() | 190 | void ToDoDB::reload() |
189 | { | 191 | { |
190 | load(); | 192 | load(); |
191 | } | 193 | } |
192 | void ToDoDB::setFileName(const QString &file ) | 194 | void ToDoDB::setFileName(const QString &file ) |
193 | { | 195 | { |
194 | m_fileName =file; | 196 | m_fileName =file; |
195 | } | 197 | } |
196 | QString ToDoDB::fileName()const | 198 | QString ToDoDB::fileName()const |
197 | { | 199 | { |
198 | return m_fileName; | 200 | return m_fileName; |
199 | } | 201 | } |
200 | void ToDoDB::load() | 202 | void ToDoDB::load() |
201 | { | 203 | { |
202 | m_todos = m_res->load( m_fileName ); | 204 | m_todos = m_res->load( m_fileName ); |
203 | } | 205 | } |
204 | bool ToDoDB::save() | 206 | bool ToDoDB::save() |
205 | { | 207 | { |
206 | return m_res->save( m_fileName, m_todos ); | 208 | return m_res->save( m_fileName, m_todos ); |
207 | } | 209 | } |
208 | 210 | ||
209 | 211 | ||
210 | 212 | ||
211 | 213 | ||
212 | 214 | ||
213 | 215 | ||
214 | 216 | ||
215 | 217 | ||