summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/tododb.cpp4
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
128ToDoDB::ToDoDB(const QString &fileName = QString::null, ToDoResource *res ){ 129ToDoDB::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}
139ToDoDB::~ToDoDB() 141ToDoDB::~ToDoDB()
140{ 142{
141 delete m_res; 143 delete m_res;
142} 144}
143QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, const QDate &to, 145QValueList<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}
157QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, 159QValueList<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}
162QValueList<ToDoEvent> ToDoDB::overDue() 164QValueList<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}
171QValueList<ToDoEvent> ToDoDB::rawToDos() 173QValueList<ToDoEvent> ToDoDB::rawToDos()
172{ 174{
173 return m_todos; 175 return m_todos;
174} 176}
175void ToDoDB::addEvent( const ToDoEvent &event ) 177void ToDoDB::addEvent( const ToDoEvent &event )
176{ 178{
177 m_todos.append( event ); 179 m_todos.append( event );
178} 180}
179void ToDoDB::editEvent( const ToDoEvent &event ) 181void 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}
184void ToDoDB::removeEvent( const ToDoEvent &event ) 186void ToDoDB::removeEvent( const ToDoEvent &event )
185{ 187{
186 m_todos.remove( event ); 188 m_todos.remove( event );
187} 189}
188void ToDoDB::reload() 190void ToDoDB::reload()
189{ 191{
190 load(); 192 load();
191} 193}
192void ToDoDB::setFileName(const QString &file ) 194void ToDoDB::setFileName(const QString &file )
193{ 195{
194 m_fileName =file; 196 m_fileName =file;
195} 197}
196QString ToDoDB::fileName()const 198QString ToDoDB::fileName()const
197{ 199{
198 return m_fileName; 200 return m_fileName;
199} 201}
200void ToDoDB::load() 202void ToDoDB::load()
201{ 203{
202 m_todos = m_res->load( m_fileName ); 204 m_todos = m_res->load( m_fileName );
203} 205}
204bool ToDoDB::save() 206bool 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