summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/backend/otodoaccessvcal.cpp
Unidiff
Diffstat (limited to 'libopie2/opiepim/backend/otodoaccessvcal.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/backend/otodoaccessvcal.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/libopie2/opiepim/backend/otodoaccessvcal.cpp b/libopie2/opiepim/backend/otodoaccessvcal.cpp
index 0a1baf9..03d4479 100644
--- a/libopie2/opiepim/backend/otodoaccessvcal.cpp
+++ b/libopie2/opiepim/backend/otodoaccessvcal.cpp
@@ -5,56 +5,59 @@
5 .=l. 5 .=l.
6 .>+-= 6 .>+-=
7 _;:, .> :=|. This program is free software; you can 7 _;:, .> :=|. This program is free software; you can
8.> <`_, > . <= redistribute it and/or modify it under 8.> <`_, > . <= redistribute it and/or modify it under
9:`=1 )Y*s>-.-- : the terms of the GNU Library General Public 9:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
10.="- .-=="i, .._ License as published by the Free Software 10.="- .-=="i, .._ License as published by the Free Software
11 - . .-<_> .<> Foundation; either version 2 of the License, 11 - . .-<_> .<> Foundation; either version 2 of the License,
12 ._= =} : or (at your option) any later version. 12 ._= =} : or (at your option) any later version.
13 .%`+i> _;_. 13 .%`+i> _;_.
14 .i_,=:_. -<s. This program is distributed in the hope that 14 .i_,=:_. -<s. This program is distributed in the hope that
15 + . -:. = it will be useful, but WITHOUT ANY WARRANTY; 15 + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
16 : .. .:, . . . without even the implied warranty of 16 : .. .:, . . . without even the implied warranty of
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#include <qfile.h>
30
31#include <qtopia/private/vobject_p.h>
32#include <qtopia/timeconversion.h>
33#include <qtopia/private/qfiledirect_p.h>
34 29
30/* OPIE */
31#include "vobject_p.h"
32#include <qpe/timeconversion.h>
35#include <opie2/otodoaccessvcal.h> 33#include <opie2/otodoaccessvcal.h>
36 34
35//FIXME: Hack to allow direct access to FILE* fh. Rewrite this!
36#define protected public
37#include <qfile.h>
38#undef protected
39
37using namespace Opie; 40using namespace Opie;
38 41
39namespace { 42namespace {
40 static OPimTodo eventByVObj( VObject *obj ){ 43 static OPimTodo eventByVObj( VObject *obj ){
41 OPimTodo event; 44 OPimTodo event;
42 VObject *ob; 45 VObject *ob;
43 QCString name; 46 QCString name;
44 // no uid, attendees, ... and no fun 47 // no uid, attendees, ... and no fun
45 // description 48 // description
46 if( ( ob = isAPropertyOf( obj, VCDescriptionProp )) != 0 ){ 49 if( ( ob = isAPropertyOf( obj, VCDescriptionProp )) != 0 ){
47 name = vObjectStringZValue( ob ); 50 name = vObjectStringZValue( ob );
48#if 0 51#if 0
49 event.setDescription( name ); 52 event.setDescription( name );
50#else 53#else
51 event.setSummary( name ); 54 event.setSummary( name );
52#endif 55#endif
53 } 56 }
54 // summary 57 // summary
55 if ( ( ob = isAPropertyOf( obj, VCSummaryProp ) ) != 0 ) { 58 if ( ( ob = isAPropertyOf( obj, VCSummaryProp ) ) != 0 ) {
56 name = vObjectStringZValue( ob ); 59 name = vObjectStringZValue( ob );
57#if 0 60#if 0
58 event.setSummary( name ); 61 event.setSummary( name );
59#else 62#else
60 event.setDescription( name ); 63 event.setDescription( name );
@@ -158,61 +161,61 @@ bool OPimTodoAccessVCal::load() {
158 VObject* vobj; 161 VObject* vobj;
159 162
160 initPropIterator(&it, vcal); 163 initPropIterator(&it, vcal);
161 164
162 while( moreIteration( &it ) ) { 165 while( moreIteration( &it ) ) {
163 vobj = ::nextVObject( &it ); 166 vobj = ::nextVObject( &it );
164 QCString name = ::vObjectName( vobj ); 167 QCString name = ::vObjectName( vobj );
165 if( name == VCTodoProp ){ 168 if( name == VCTodoProp ){
166 OPimTodo to = eventByVObj( vobj ); 169 OPimTodo to = eventByVObj( vobj );
167 m_map.insert( to.uid(), to ); 170 m_map.insert( to.uid(), to );
168 } 171 }
169 } 172 }
170 173
171 // Should I do a delete vcal? 174 // Should I do a delete vcal?
172 175
173 return true; 176 return true;
174} 177}
175bool OPimTodoAccessVCal::reload() { 178bool OPimTodoAccessVCal::reload() {
176 return load(); 179 return load();
177} 180}
178bool OPimTodoAccessVCal::save() { 181bool OPimTodoAccessVCal::save() {
179 if (!m_dirty ) 182 if (!m_dirty )
180 return true; 183 return true;
181 184
182 QFileDirect file( m_file ); 185 QFile file( m_file );
183 if (!file.open(IO_WriteOnly ) ) 186 if (!file.open(IO_WriteOnly ) )
184 return false; 187 return false;
185 188
186 VObject *obj; 189 VObject *obj;
187 obj = newVObject( VCCalProp ); 190 obj = newVObject( VCCalProp );
188 addPropValue( obj, VCVersionProp, "1.0" ); 191 addPropValue( obj, VCVersionProp, "1.0" );
189 VObject *vo; 192 VObject *vo;
190 for(QMap<int, OPimTodo>::ConstIterator it=m_map.begin(); it !=m_map.end(); ++it ){ 193 for(QMap<int, OPimTodo>::ConstIterator it=m_map.begin(); it !=m_map.end(); ++it ){
191 vo = vobjByEvent( it.data() ); 194 vo = vobjByEvent( it.data() );
192 addVObjectProp(obj, vo ); 195 addVObjectProp(obj, vo );
193 } 196 }
194 writeVObject( file.directHandle(), obj ); 197 writeVObject( file.fh, obj ); //FIXME: HACK!!!
195 cleanVObject( obj ); 198 cleanVObject( obj );
196 cleanStrTbl(); 199 cleanStrTbl();
197 200
198 m_dirty = false; 201 m_dirty = false;
199 return true; 202 return true;
200} 203}
201void OPimTodoAccessVCal::clear() { 204void OPimTodoAccessVCal::clear() {
202 m_map.clear(); 205 m_map.clear();
203 m_dirty = true; 206 m_dirty = true;
204} 207}
205bool OPimTodoAccessVCal::add( const OPimTodo& to ) { 208bool OPimTodoAccessVCal::add( const OPimTodo& to ) {
206 m_map.insert( to.uid(), to ); 209 m_map.insert( to.uid(), to );
207 m_dirty = true; 210 m_dirty = true;
208 return true; 211 return true;
209} 212}
210bool OPimTodoAccessVCal::remove( int uid ) { 213bool OPimTodoAccessVCal::remove( int uid ) {
211 m_map.remove( uid ); 214 m_map.remove( uid );
212 m_dirty = true; 215 m_dirty = true;
213 return true; 216 return true;
214} 217}
215void OPimTodoAccessVCal::removeAllCompleted() { 218void OPimTodoAccessVCal::removeAllCompleted() {
216 for ( QMap<int, OPimTodo>::Iterator it = m_map.begin(); it != m_map.end(); ++it ) { 219 for ( QMap<int, OPimTodo>::Iterator it = m_map.begin(); it != m_map.end(); ++it ) {
217 if ( (*it).isCompleted() ) 220 if ( (*it).isCompleted() )
218 m_map.remove( it ); 221 m_map.remove( it );