summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/backend/otodoaccessxml.cpp
Unidiff
Diffstat (limited to 'libopie2/opiepim/backend/otodoaccessxml.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/backend/otodoaccessxml.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/libopie2/opiepim/backend/otodoaccessxml.cpp b/libopie2/opiepim/backend/otodoaccessxml.cpp
index 3a72881..5fe733c 100644
--- a/libopie2/opiepim/backend/otodoaccessxml.cpp
+++ b/libopie2/opiepim/backend/otodoaccessxml.cpp
@@ -18,13 +18,13 @@ OTodoAccessXML::OTodoAccessXML( const QString& appName,
18 m_file = Global::applicationFileName( "todolist", "todolist.xml" ); 18 m_file = Global::applicationFileName( "todolist", "todolist.xml" );
19} 19}
20OTodoAccessXML::~OTodoAccessXML() { 20OTodoAccessXML::~OTodoAccessXML() {
21 21
22} 22}
23bool OTodoAccessXML::load() { 23bool OTodoAccessXML::load() {
24 m_opened = false; 24 m_opened = true;
25 m_changed = false; 25 m_changed = false;
26 /* initialize dict */ 26 /* initialize dict */
27 /* 27 /*
28 * UPDATE dict if you change anything!!! 28 * UPDATE dict if you change anything!!!
29 */ 29 */
30 QAsciiDict<int> dict(15); 30 QAsciiDict<int> dict(15);
@@ -66,27 +66,29 @@ bool OTodoAccessXML::load() {
66 OTodo ev = todo( &dict, element ); 66 OTodo ev = todo( &dict, element );
67 m_events.insert( ev.uid(), ev ); 67 m_events.insert( ev.uid(), ev );
68 68
69 element = element->nextChild(); 69 element = element->nextChild();
70 } 70 }
71 }else { 71 }else {
72 qWarning("could not parse"); 72// qWarning("could not parse");
73 return false;; 73 return false;;
74 } 74 }
75 delete root; 75 delete root;
76 76
77 m_opened = true; 77// qWarning("Access %d" + m_events.count() );
78 qWarning("Access %d" + m_events.count() );
79 return true; 78 return true;
80} 79}
81bool OTodoAccessXML::reload() { 80bool OTodoAccessXML::reload() {
82 return load(); 81 return load();
83} 82}
84bool OTodoAccessXML::save() { 83bool OTodoAccessXML::save() {
85 if (!m_opened || !m_changed ) 84// qWarning("saving");
85 if (!m_opened || !m_changed ) {
86// qWarning("not saving");
86 return true; 87 return true;
88 }
87 QString strNewFile = m_file + ".new"; 89 QString strNewFile = m_file + ".new";
88 QFile f( strNewFile ); 90 QFile f( strNewFile );
89 if (!f.open( IO_WriteOnly|IO_Raw ) ) 91 if (!f.open( IO_WriteOnly|IO_Raw ) )
90 return false; 92 return false;
91 93
92 int written; 94 int written;
@@ -119,13 +121,13 @@ bool OTodoAccessXML::save() {
119 return false; 121 return false;
120 } 122 }
121 /* flush before renaming */ 123 /* flush before renaming */
122 f.close(); 124 f.close();
123 125
124 if( ::rename( strNewFile.latin1(), m_file.latin1() ) < 0 ) { 126 if( ::rename( strNewFile.latin1(), m_file.latin1() ) < 0 ) {
125 qWarning("error renaming"); 127// qWarning("error renaming");
126 QFile::remove( strNewFile ); 128 QFile::remove( strNewFile );
127 } 129 }
128 130
129 m_changed = false; 131 m_changed = false;
130 return true; 132 return true;
131} 133}
@@ -157,12 +159,13 @@ void OTodoAccessXML::clear() {
157 if (m_opened ) 159 if (m_opened )
158 m_changed = true; 160 m_changed = true;
159 161
160 m_events.clear(); 162 m_events.clear();
161} 163}
162bool OTodoAccessXML::add( const OTodo& todo ) { 164bool OTodoAccessXML::add( const OTodo& todo ) {
165// qWarning("add");
163 m_changed = true; 166 m_changed = true;
164 m_events.insert( todo.uid(), todo ); 167 m_events.insert( todo.uid(), todo );
165 168
166 return true; 169 return true;
167} 170}
168bool OTodoAccessXML::remove( int uid ) { 171bool OTodoAccessXML::remove( int uid ) {
@@ -214,24 +217,24 @@ QArray<int> OTodoAccessXML::overDue() {
214 return ids; 217 return ids;
215} 218}
216 219
217 220
218/* private */ 221/* private */
219OTodo OTodoAccessXML::todo( QAsciiDict<int>* dict, Opie::XMLElement* element)const { 222OTodo OTodoAccessXML::todo( QAsciiDict<int>* dict, Opie::XMLElement* element)const {
220 qWarning("parse to do from XMLElement" ); 223// qWarning("parse to do from XMLElement" );
221 OTodo ev; 224 OTodo ev;
222 QMap<QString, QString> attributes = element->attributes(); 225 QMap<QString, QString> attributes = element->attributes();
223 QMap<QString, QString>::Iterator it; 226 QMap<QString, QString>::Iterator it;
224 227
225 int *find=0; 228 int *find=0;
226 int day, month, year; 229 int day, month, year;
227 day = month = year = -1; 230 day = month = year = -1;
228 for ( it = attributes.begin(); it != attributes.end(); ++it ) { 231 for ( it = attributes.begin(); it != attributes.end(); ++it ) {
229 find = (*dict)[ it.key() ]; 232 find = (*dict)[ it.key() ];
230 if (!find ) { 233 if (!find ) {
231 qWarning("Unknown option" + it.key() ); 234// qWarning("Unknown option" + it.key() );
232 ev.setCustomField( it.key(), it.data() ); 235 ev.setCustomField( it.key(), it.data() );
233 continue; 236 continue;
234 } 237 }
235 238
236 switch( *find ) { 239 switch( *find ) {
237 case OTodo::Uid: 240 case OTodo::Uid:
@@ -317,12 +320,13 @@ QString OTodoAccessXML::toString( const OTodo& ev )const {
317 320
318 if ( ev.hasDueDate() ) { 321 if ( ev.hasDueDate() ) {
319 str += "DateYear=\"" + QString::number( ev.dueDate().year() ) + "\" "; 322 str += "DateYear=\"" + QString::number( ev.dueDate().year() ) + "\" ";
320 str += "DateMonth=\"" + QString::number( ev.dueDate().month() ) + "\" "; 323 str += "DateMonth=\"" + QString::number( ev.dueDate().month() ) + "\" ";
321 str += "DateDay=\"" + QString::number( ev.dueDate().day() ) + "\" "; 324 str += "DateDay=\"" + QString::number( ev.dueDate().day() ) + "\" ";
322 } 325 }
326// qWarning( "Uid %d", ev.uid() );
323 str += "Uid=\"" + QString::number( ev.uid() ) + "\" "; 327 str += "Uid=\"" + QString::number( ev.uid() ) + "\" ";
324 328
325// append the extra options 329// append the extra options
326 /* FIXME Qtopia::Record this is currently not 330 /* FIXME Qtopia::Record this is currently not
327 * possible you can set custom fields 331 * possible you can set custom fields
328 * but don' iterate over the list 332 * but don' iterate over the list