summaryrefslogtreecommitdiff
path: root/libopie/todovcalresource.cpp
Unidiff
Diffstat (limited to 'libopie/todovcalresource.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/todovcalresource.cpp158
1 files changed, 0 insertions, 158 deletions
diff --git a/libopie/todovcalresource.cpp b/libopie/todovcalresource.cpp
deleted file mode 100644
index 1df5aff..0000000
--- a/libopie/todovcalresource.cpp
+++ b/dev/null
@@ -1,158 +0,0 @@
1/*
2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Holger Freyther <freyther@kde.org>
4           .>+-= the use of vobject was inspired by libkcal
5 _;:,     .>    :=|. This library is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details.
19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with
22    --        :-=` this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.
26
27*/
28
29#include <qfile.h>
30#include <qvaluelist.h>
31#include <opie/todoevent.h>
32#include <opie/todovcalresource.h>
33
34#include "../library/backend/vobject_p.h"
35#include "../library/timeconversion.h"
36#include "../library/backend/qfiledirect_p.h"
37
38static VObject *vobjByEvent( const ToDoEvent &event )
39{
40 VObject *task = newVObject( VCTodoProp );
41 if( task == 0 )
42 return 0l;
43 if( event.hasDate() )
44 addPropValue( task, VCDueProp, TimeConversion::toISO8601( event.date() ) );
45
46 if( event.isCompleted() )
47 addPropValue( task, VCStatusProp, "COMPLETED");
48
49 QString string = QString::number(event.priority() );
50 addPropValue( task, VCPriorityProp, string.local8Bit() );
51 addPropValue( task, VCCategoriesProp, event.allCategories().join(";").local8Bit() );
52 addPropValue( task, VCDescriptionProp, event.description().local8Bit() );
53 addPropValue( task, VCSummaryProp, event.summary().left(15).local8Bit() );
54 return task;
55};
56
57static ToDoEvent eventByVObj( VObject *obj ){
58 ToDoEvent event;
59 VObject *ob;
60 QCString name;
61 // no uid, attendees, ... and no fun
62 // description
63 if( ( ob = isAPropertyOf( obj, VCDescriptionProp )) != 0 ){
64 name = vObjectStringZValue( ob );
65 event.setDescription( name );
66 }
67 // summary
68 if ( ( ob = isAPropertyOf( obj, VCSummaryProp ) ) != 0 ) {
69 name = vObjectStringZValue( ob );
70 event.setSummary( name );
71 }
72 // completed
73 if( ( ob = isAPropertyOf( obj, VCStatusProp )) != 0 ){
74 name = vObjectStringZValue( ob );
75 if( name == "COMPLETED" ){
76 event.setCompleted( true );
77 }else{
78 event.setCompleted( false );
79 }
80 }else
81 event.setCompleted( false );
82 // priority
83 if ((ob = isAPropertyOf(obj, VCPriorityProp))) {
84 name = vObjectStringZValue( ob );
85 bool ok;
86 event.setPriority(name.toInt(&ok) );
87 }
88 //due date
89 if((ob = isAPropertyOf(obj, VCDueProp)) ){
90 event.setHasDate( true );
91 name = vObjectStringZValue( ob );
92 event.setDate( TimeConversion::fromISO8601( name).date() );
93 }
94 // categories
95 if((ob = isAPropertyOf( obj, VCCategoriesProp )) != 0 ){
96 name = vObjectStringZValue( ob );
97 qWarning("Categories:%s", name.data() );
98 }
99
100 return event;
101};
102
103
104QValueList<ToDoEvent> ToDoVCalResource::load(const QString &file)
105{
106 QValueList<ToDoEvent> events;
107 VObject *vcal = 0l;
108 vcal = Parse_MIME_FromFileName( (char *)file.utf8().data() ); // from vobject
109 if(!vcal )
110 return events;
111 // start parsing
112
113 VObjectIterator it;
114 VObject *vobj;
115 initPropIterator(&it, vcal);
116
117 while( moreIteration( &it ) ) {
118 vobj = ::nextVObject( &it );
119 QCString name = ::vObjectName( vobj );
120 //QCString objVal = ::vObjectStringZValue( vobj );
121 // let's find out the type
122 if( name == VCTodoProp ){
123 events.append( eventByVObj( vobj ) );
124
125 } // parse the value
126 }
127 return events;
128}
129bool ToDoVCalResource::save(const QString &fileName, const QValueList<ToDoEvent>&list )
130{
131 QFileDirect file ( fileName );
132 if(!file.open(IO_WriteOnly ) )
133 return false;
134 // obj
135 VObject *obj;
136 obj = newVObject( VCCalProp );
137 addPropValue( obj, VCVersionProp, "1.0" );
138 VObject *vo;
139 for(QValueList<ToDoEvent>::ConstIterator it = list.begin(); it != list.end(); ++it ){
140 vo = vobjByEvent( (*it) );
141 addVObjectProp(obj, vo );
142 }
143 writeVObject( file.directHandle(), obj );
144 cleanVObject( obj );
145 cleanStrTbl();
146
147 return true;
148}
149
150
151
152
153
154
155
156
157
158