summaryrefslogtreecommitdiffabout
path: root/libkcal
authorzautrix <zautrix>2005-07-04 19:17:50 (UTC)
committer zautrix <zautrix>2005-07-04 19:17:50 (UTC)
commit2710cddd5b0b69efc1c5a7f8516d5b451ff258f1 (patch) (unidiff)
treeabcfa306ccfcdf7aba536cc3f476c0bdbe9ef12b /libkcal
parent4f3238355f67a256f338986ca13322ef23960895 (diff)
downloadkdepimpi-2710cddd5b0b69efc1c5a7f8516d5b451ff258f1.zip
kdepimpi-2710cddd5b0b69efc1c5a7f8516d5b451ff258f1.tar.gz
kdepimpi-2710cddd5b0b69efc1c5a7f8516d5b451ff258f1.tar.bz2
free ring buffer
Diffstat (limited to 'libkcal') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/icalformat.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/libkcal/icalformat.cpp b/libkcal/icalformat.cpp
index d9fe40b..5877406 100644
--- a/libkcal/icalformat.cpp
+++ b/libkcal/icalformat.cpp
@@ -1,460 +1,462 @@
1/* 1/*
2 This file is part of libkcal. 2 This file is part of libkcal.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include <qdatetime.h> 21#include <qdatetime.h>
22#include <qstring.h> 22#include <qstring.h>
23#include <qptrlist.h> 23#include <qptrlist.h>
24#include <qregexp.h> 24#include <qregexp.h>
25#include <qclipboard.h> 25#include <qclipboard.h>
26#include <qfile.h> 26#include <qfile.h>
27#include <qtextstream.h> 27#include <qtextstream.h>
28#include <qtextcodec.h> 28#include <qtextcodec.h>
29#include <stdlib.h> 29#include <stdlib.h>
30 30
31#include <kdebug.h> 31#include <kdebug.h>
32#include <kglobal.h> 32#include <kglobal.h>
33#include <klocale.h> 33#include <klocale.h>
34 34
35extern "C" { 35extern "C" {
36 #include <ical.h> 36 #include <ical.h>
37 #include <icalss.h> 37 #include <icalss.h>
38 #include <icalparser.h> 38 #include <icalparser.h>
39 #include <icalrestriction.h> 39 #include <icalrestriction.h>
40} 40}
41 41
42#include "calendar.h" 42#include "calendar.h"
43#include "calendarlocal.h" 43#include "calendarlocal.h"
44#include "journal.h" 44#include "journal.h"
45 45
46#include "icalformat.h" 46#include "icalformat.h"
47#include "icalformatimpl.h" 47#include "icalformatimpl.h"
48 48
49#define _ICAL_VERSION "2.0" 49#define _ICAL_VERSION "2.0"
50 50
51using namespace KCal; 51using namespace KCal;
52 52
53ICalFormat::ICalFormat( ) 53ICalFormat::ICalFormat( )
54{ 54{
55 mImpl = new ICalFormatImpl( this ); 55 mImpl = new ICalFormatImpl( this );
56 tzOffsetMin = 0; 56 tzOffsetMin = 0;
57 //qDebug("new ICalFormat() "); 57 //qDebug("new ICalFormat() ");
58} 58}
59 59
60ICalFormat::~ICalFormat() 60ICalFormat::~ICalFormat()
61{ 61{
62 delete mImpl; 62 delete mImpl;
63 //qDebug("delete ICalFormat "); 63 //qDebug("delete ICalFormat ");
64} 64}
65 65
66bool ICalFormat::load( Calendar *calendar, const QString &fileName) 66bool ICalFormat::load( Calendar *calendar, const QString &fileName)
67{ 67{
68 68
69 clearException(); 69 clearException();
70 70
71 QFile file( fileName ); 71 QFile file( fileName );
72 if (!file.open( IO_ReadOnly ) ) { 72 if (!file.open( IO_ReadOnly ) ) {
73 setException(new ErrorFormat(ErrorFormat::LoadError)); 73 setException(new ErrorFormat(ErrorFormat::LoadError));
74 return false; 74 return false;
75 } 75 }
76 QTextStream ts( &file ); 76 QTextStream ts( &file );
77 QString text; 77 QString text;
78 78
79 ts.setEncoding( QTextStream::Latin1 ); 79 ts.setEncoding( QTextStream::Latin1 );
80 text = ts.read(); 80 text = ts.read();
81 file.close(); 81 file.close();
82 82
83 return fromString( calendar, text ); 83 return fromString( calendar, text );
84} 84}
85 85
86//#include <qdatetime.h> 86//#include <qdatetime.h>
87bool ICalFormat::save( Calendar *calendar, const QString &fileName ) 87bool ICalFormat::save( Calendar *calendar, const QString &fileName )
88{ 88{
89 //kdDebug(5800) << "ICalFormat::save(): " << fileName << endl; 89 //kdDebug(5800) << "ICalFormat::save(): " << fileName << endl;
90 //qDebug("ICalFormat::save "); 90 //qDebug("ICalFormat::save ");
91 clearException(); 91 clearException();
92 QString text = toString( calendar ); 92 QString text = toString( calendar );
93 //return false; 93 //return false;
94 // qDebug("to string takes ms: %d ",is.elapsed() ); 94 // qDebug("to string takes ms: %d ",is.elapsed() );
95 if ( text.isNull() ) return false; 95 if ( text.isNull() ) return false;
96 96
97 // TODO: write backup file 97 // TODO: write backup file
98 //is.restart(); 98 //is.restart();
99 QFile file( fileName ); 99 QFile file( fileName );
100 if (!file.open( IO_WriteOnly ) ) { 100 if (!file.open( IO_WriteOnly ) ) {
101 setException(new ErrorFormat(ErrorFormat::SaveError, 101 setException(new ErrorFormat(ErrorFormat::SaveError,
102 i18n("Could not open file '%1'").arg(fileName))); 102 i18n("Could not open file '%1'").arg(fileName)));
103 return false; 103 return false;
104 } 104 }
105 QTextStream ts( &file ); 105 QTextStream ts( &file );
106 106
107 ts.setEncoding( QTextStream::Latin1 ); 107 ts.setEncoding( QTextStream::Latin1 );
108 ts << text; 108 ts << text;
109 file.close(); 109 file.close();
110 //qDebug("saving file takes ms: %d ", is.elapsed() ); 110 //qDebug("saving file takes ms: %d ", is.elapsed() );
111 return true; 111 return true;
112} 112}
113 113
114bool ICalFormat::fromString( Calendar *cal, const QString &text ) 114bool ICalFormat::fromString( Calendar *cal, const QString &text )
115{ 115{
116 setTimeZone( cal->timeZoneId(), !cal->isLocalTime() ); 116 setTimeZone( cal->timeZoneId(), !cal->isLocalTime() );
117 // qDebug("ICalFormat::fromString tz: %s ", cal->timeZoneId().latin1()); 117 // qDebug("ICalFormat::fromString tz: %s ", cal->timeZoneId().latin1());
118 // Get first VCALENDAR component. 118 // Get first VCALENDAR component.
119 // TODO: Handle more than one VCALENDAR or non-VCALENDAR top components 119 // TODO: Handle more than one VCALENDAR or non-VCALENDAR top components
120 icalcomponent *calendar; 120 icalcomponent *calendar;
121 121
122 //calendar = icalcomponent_new_from_string( text.local8Bit().data()); 122 //calendar = icalcomponent_new_from_string( text.local8Bit().data());
123 // good calendar = icalcomponent_new_from_string( text.utf8().data()); 123 // good calendar = icalcomponent_new_from_string( text.utf8().data());
124 calendar = icalcomponent_new_from_string( (char*)text.latin1()); 124 calendar = icalcomponent_new_from_string( (char*)text.latin1());
125 if (!calendar) { 125 if (!calendar) {
126 setException(new ErrorFormat(ErrorFormat::ParseErrorIcal)); 126 setException(new ErrorFormat(ErrorFormat::ParseErrorIcal));
127 return false; 127 return false;
128 } 128 }
129 129
130 bool success = true; 130 bool success = true;
131 131
132 if (icalcomponent_isa(calendar) != ICAL_VCALENDAR_COMPONENT) { 132 if (icalcomponent_isa(calendar) != ICAL_VCALENDAR_COMPONENT) {
133 setException(new ErrorFormat(ErrorFormat::NoCalendar)); 133 setException(new ErrorFormat(ErrorFormat::NoCalendar));
134 success = false; 134 success = false;
135 } else { 135 } else {
136 // put all objects into their proper places 136 // put all objects into their proper places
137 if ( !mImpl->populate( cal, calendar ) ) { 137 if ( !mImpl->populate( cal, calendar ) ) {
138 if ( !exception() ) { 138 if ( !exception() ) {
139 setException(new ErrorFormat(ErrorFormat::ParseErrorKcal)); 139 setException(new ErrorFormat(ErrorFormat::ParseErrorKcal));
140 } 140 }
141 success = false; 141 success = false;
142 } else 142 } else
143 mLoadedProductId = mImpl->loadedProductId(); 143 mLoadedProductId = mImpl->loadedProductId();
144 } 144 }
145 145
146 icalcomponent_free( calendar ); 146 icalcomponent_free( calendar );
147 icalmemory_free_ring();
147 148
148 return success; 149 return success;
149} 150}
150 151
151Incidence *ICalFormat::fromString( const QString &text ) 152Incidence *ICalFormat::fromString( const QString &text )
152{ 153{
153 CalendarLocal cal( mTimeZoneId ); 154 CalendarLocal cal( mTimeZoneId );
154 fromString(&cal, text); 155 fromString(&cal, text);
155 156
156 Incidence *ical = 0; 157 Incidence *ical = 0;
157 QPtrList<Event> elist = cal.events(); 158 QPtrList<Event> elist = cal.events();
158 if ( elist.count() > 0 ) { 159 if ( elist.count() > 0 ) {
159 ical = elist.first(); 160 ical = elist.first();
160 } else { 161 } else {
161 QPtrList<Todo> tlist = cal.todos(); 162 QPtrList<Todo> tlist = cal.todos();
162 if ( tlist.count() > 0 ) { 163 if ( tlist.count() > 0 ) {
163 ical = tlist.first(); 164 ical = tlist.first();
164 } else { 165 } else {
165 QPtrList<Journal> jlist = cal.journals(); 166 QPtrList<Journal> jlist = cal.journals();
166 if ( jlist.count() > 0 ) { 167 if ( jlist.count() > 0 ) {
167 ical = jlist.first(); 168 ical = jlist.first();
168 } 169 }
169 } 170 }
170 } 171 }
171 return ical; 172 return ical;
172} 173}
173#include <qapp.h> 174#include <qapp.h>
174 175
175QString ICalFormat::toString( Calendar *cal ) 176QString ICalFormat::toString( Calendar *cal )
176{ 177{
177 178
178 setTimeZone( cal->timeZoneId(), !cal->isLocalTime() ); 179 setTimeZone( cal->timeZoneId(), !cal->isLocalTime() );
179 180
180 icalcomponent *calendar = mImpl->createCalendarComponent(cal); 181 icalcomponent *calendar = mImpl->createCalendarComponent(cal);
181 182
182 icalcomponent *component; 183 icalcomponent *component;
183 184
184 // todos 185 // todos
185 QPtrList<Todo> todoList = cal->rawTodos(); 186 QPtrList<Todo> todoList = cal->rawTodos();
186 QPtrListIterator<Todo> qlt(todoList); 187 QPtrListIterator<Todo> qlt(todoList);
187 for (; qlt.current(); ++qlt) { 188 for (; qlt.current(); ++qlt) {
188 component = mImpl->writeTodo(qlt.current()); 189 component = mImpl->writeTodo(qlt.current());
189 icalcomponent_add_component(calendar,component); 190 icalcomponent_add_component(calendar,component);
190 //qDebug(" todos "); 191 //qDebug(" todos ");
191 qApp->processEvents(); 192 qApp->processEvents();
192 } 193 }
193 // events 194 // events
194 QPtrList<Event> events = cal->rawEvents(); 195 QPtrList<Event> events = cal->rawEvents();
195 Event *ev; 196 Event *ev;
196 for(ev=events.first();ev;ev=events.next()) { 197 for(ev=events.first();ev;ev=events.next()) {
197 component = mImpl->writeEvent(ev); 198 component = mImpl->writeEvent(ev);
198 icalcomponent_add_component(calendar,component); 199 icalcomponent_add_component(calendar,component);
199 //qDebug("events "); 200 //qDebug("events ");
200 qApp->processEvents(); 201 qApp->processEvents();
201 } 202 }
202 203
203 // journals 204 // journals
204 QPtrList<Journal> journals = cal->journals(); 205 QPtrList<Journal> journals = cal->journals();
205 Journal *j; 206 Journal *j;
206 for(j=journals.first();j;j=journals.next()) { 207 for(j=journals.first();j;j=journals.next()) {
207 component = mImpl->writeJournal(j); 208 component = mImpl->writeJournal(j);
208 icalcomponent_add_component(calendar,component); 209 icalcomponent_add_component(calendar,component);
209 //qDebug("journals "); 210 //qDebug("journals ");
210 qApp->processEvents(); 211 qApp->processEvents();
211 } 212 }
212 const char *text; 213 const char *text;
213 QString ret =""; 214 QString ret ="";
214 text = icalcomponent_as_ical_string( calendar ); 215 text = icalcomponent_as_ical_string( calendar );
215 qApp->processEvents(); 216 qApp->processEvents();
216 217
217 // text = "BEGIN:VCALENDAR\nPRODID\n :-//K Desktop Environment//NONSGML libkcal 3.1//EN\nVERSION\n :2.0\nBEGIN:VEVENT\nDTSTAMP\n :20031231T213514Z\nORGANIZER\n :MAILTO:lutz@putz.de\nCREATED\n :20031231T213513Z\nUID\n :libkcal-1295166342.120\nSEQUENCE\n :0\nLAST-MODIFIED\n :20031231T213513Z\nSUMMARY\n :test1\nCLASS\n :PUBLIC\nPRIORITY\n :3\nDTSTART\n :20040101T090000Z\nDTEND\n :20040101T110000Z\nTRANSP\n :OPAQUE\nEND:VEVENT\nEND:VCALENDAR\n"; 218 // text = "BEGIN:VCALENDAR\nPRODID\n :-//K Desktop Environment//NONSGML libkcal 3.1//EN\nVERSION\n :2.0\nBEGIN:VEVENT\nDTSTAMP\n :20031231T213514Z\nORGANIZER\n :MAILTO:lutz@putz.de\nCREATED\n :20031231T213513Z\nUID\n :libkcal-1295166342.120\nSEQUENCE\n :0\nLAST-MODIFIED\n :20031231T213513Z\nSUMMARY\n :test1\nCLASS\n :PUBLIC\nPRIORITY\n :3\nDTSTART\n :20040101T090000Z\nDTEND\n :20040101T110000Z\nTRANSP\n :OPAQUE\nEND:VEVENT\nEND:VCALENDAR\n";
218 219
219 220
220 if ( text ) { 221 if ( text ) {
221 ret = QString ( text ); 222 ret = QString ( text );
222 } 223 }
223 icalcomponent_free( calendar ); 224 icalcomponent_free( calendar );
224 225
225 if (!text) { 226 if (!text) {
226 setException(new ErrorFormat(ErrorFormat::SaveError, 227 setException(new ErrorFormat(ErrorFormat::SaveError,
227 i18n("libical error"))); 228 i18n("libical error")));
229 icalmemory_free_ring();
228 return QString::null; 230 return QString::null;
229 } 231 }
230 232 icalmemory_free_ring();
231 return ret; 233 return ret;
232} 234}
233 235
234QString ICalFormat::toICalString( Incidence *incidence ) 236QString ICalFormat::toICalString( Incidence *incidence )
235{ 237{
236 CalendarLocal cal( mTimeZoneId ); 238 CalendarLocal cal( mTimeZoneId );
237 cal.addIncidence( incidence->clone() ); 239 cal.addIncidence( incidence->clone() );
238 return toString( &cal ); 240 return toString( &cal );
239} 241}
240 242
241QString ICalFormat::toString( Incidence *incidence ) 243QString ICalFormat::toString( Incidence *incidence )
242{ 244{
243 icalcomponent *component; 245 icalcomponent *component;
244 246
245 component = mImpl->writeIncidence( incidence ); 247 component = mImpl->writeIncidence( incidence );
246 248
247 const char *text = icalcomponent_as_ical_string( component ); 249 const char *text = icalcomponent_as_ical_string( component );
248 250
249 icalcomponent_free( component ); 251 icalcomponent_free( component );
250 252
251 return QString::fromLocal8Bit( text ); 253 return QString::fromLocal8Bit( text );
252} 254}
253 255
254QString ICalFormat::toString( Recurrence *recurrence ) 256QString ICalFormat::toString( Recurrence *recurrence )
255{ 257{
256 icalproperty *property; 258 icalproperty *property;
257 property = mImpl->writeRecurrenceRule( recurrence ); 259 property = mImpl->writeRecurrenceRule( recurrence );
258 const char *text = icalproperty_as_ical_string( property ); 260 const char *text = icalproperty_as_ical_string( property );
259 icalproperty_free( property ); 261 icalproperty_free( property );
260 return QString::fromLocal8Bit( text ); 262 return QString::fromLocal8Bit( text );
261} 263}
262/* 264/*
263bool ICalFormat::fromString( Recurrence * recurrence, const QString& rrule ) 265bool ICalFormat::fromString( Recurrence * recurrence, const QString& rrule )
264{ 266{
265 bool success = true; 267 bool success = true;
266 icalerror_clear_errno(); 268 icalerror_clear_errno();
267 struct icalrecurrencetype recur = icalrecurrencetype_from_string( rrule ); 269 struct icalrecurrencetype recur = icalrecurrencetype_from_string( rrule );
268 if ( icalerrno != ICAL_NO_ERROR ) { 270 if ( icalerrno != ICAL_NO_ERROR ) {
269 kdDebug() << "Recurrence parsing error: " << icalerror_strerror( icalerrno ) << endl; 271 kdDebug() << "Recurrence parsing error: " << icalerror_strerror( icalerrno ) << endl;
270 success = false; 272 success = false;
271 } 273 }
272 274
273 if ( success ) { 275 if ( success ) {
274 mImpl->readRecurrence( recur, recurrence ); 276 mImpl->readRecurrence( recur, recurrence );
275 } 277 }
276 278
277 return success; 279 return success;
278} 280}
279*/ 281*/
280 282
281QString ICalFormat::createScheduleMessage(IncidenceBase *incidence, 283QString ICalFormat::createScheduleMessage(IncidenceBase *incidence,
282 Scheduler::Method method) 284 Scheduler::Method method)
283{ 285{
284 icalcomponent *message = mImpl->createScheduleComponent(incidence,method); 286 icalcomponent *message = mImpl->createScheduleComponent(incidence,method);
285 287
286 QString messageText = icalcomponent_as_ical_string(message); 288 QString messageText = icalcomponent_as_ical_string(message);
287 289
288 290
289 291
290 return messageText; 292 return messageText;
291} 293}
292 294
293ScheduleMessage *ICalFormat::parseScheduleMessage( Calendar *cal, 295ScheduleMessage *ICalFormat::parseScheduleMessage( Calendar *cal,
294 const QString &messageText ) 296 const QString &messageText )
295{ 297{
296 setTimeZone( cal->timeZoneId(), !cal->isLocalTime() ); 298 setTimeZone( cal->timeZoneId(), !cal->isLocalTime() );
297 clearException(); 299 clearException();
298 300
299 if (messageText.isEmpty()) return 0; 301 if (messageText.isEmpty()) return 0;
300 302
301 icalcomponent *message; 303 icalcomponent *message;
302 message = icalparser_parse_string(messageText.local8Bit()); 304 message = icalparser_parse_string(messageText.local8Bit());
303 305
304 if (!message) return 0; 306 if (!message) return 0;
305 307
306 icalproperty *m = icalcomponent_get_first_property(message, 308 icalproperty *m = icalcomponent_get_first_property(message,
307 ICAL_METHOD_PROPERTY); 309 ICAL_METHOD_PROPERTY);
308 310
309 if (!m) return 0; 311 if (!m) return 0;
310 312
311 icalcomponent *c; 313 icalcomponent *c;
312 314
313 IncidenceBase *incidence = 0; 315 IncidenceBase *incidence = 0;
314 c = icalcomponent_get_first_component(message,ICAL_VEVENT_COMPONENT); 316 c = icalcomponent_get_first_component(message,ICAL_VEVENT_COMPONENT);
315 if (c) { 317 if (c) {
316 incidence = mImpl->readEvent(c); 318 incidence = mImpl->readEvent(c);
317 } 319 }
318 320
319 if (!incidence) { 321 if (!incidence) {
320 c = icalcomponent_get_first_component(message,ICAL_VTODO_COMPONENT); 322 c = icalcomponent_get_first_component(message,ICAL_VTODO_COMPONENT);
321 if (c) { 323 if (c) {
322 incidence = mImpl->readTodo(c); 324 incidence = mImpl->readTodo(c);
323 } 325 }
324 } 326 }
325 327
326 if (!incidence) { 328 if (!incidence) {
327 c = icalcomponent_get_first_component(message,ICAL_VFREEBUSY_COMPONENT); 329 c = icalcomponent_get_first_component(message,ICAL_VFREEBUSY_COMPONENT);
328 if (c) { 330 if (c) {
329 incidence = mImpl->readFreeBusy(c); 331 incidence = mImpl->readFreeBusy(c);
330 } 332 }
331 } 333 }
332 334
333 if (!incidence) { 335 if (!incidence) {
334 kdDebug() << "ICalFormat:parseScheduleMessage: object is not a freebusy, event or todo" << endl; 336 kdDebug() << "ICalFormat:parseScheduleMessage: object is not a freebusy, event or todo" << endl;
335 return 0; 337 return 0;
336 } 338 }
337 339
338 kdDebug(5800) << "ICalFormat::parseScheduleMessage() getting method..." << endl; 340 kdDebug(5800) << "ICalFormat::parseScheduleMessage() getting method..." << endl;
339 341
340 icalproperty_method icalmethod = icalproperty_get_method(m); 342 icalproperty_method icalmethod = icalproperty_get_method(m);
341 Scheduler::Method method; 343 Scheduler::Method method;
342 344
343 switch (icalmethod) { 345 switch (icalmethod) {
344 case ICAL_METHOD_PUBLISH: 346 case ICAL_METHOD_PUBLISH:
345 method = Scheduler::Publish; 347 method = Scheduler::Publish;
346 break; 348 break;
347 case ICAL_METHOD_REQUEST: 349 case ICAL_METHOD_REQUEST:
348 method = Scheduler::Request; 350 method = Scheduler::Request;
349 break; 351 break;
350 case ICAL_METHOD_REFRESH: 352 case ICAL_METHOD_REFRESH:
351 method = Scheduler::Refresh; 353 method = Scheduler::Refresh;
352 break; 354 break;
353 case ICAL_METHOD_CANCEL: 355 case ICAL_METHOD_CANCEL:
354 method = Scheduler::Cancel; 356 method = Scheduler::Cancel;
355 break; 357 break;
356 case ICAL_METHOD_ADD: 358 case ICAL_METHOD_ADD:
357 method = Scheduler::Add; 359 method = Scheduler::Add;
358 break; 360 break;
359 case ICAL_METHOD_REPLY: 361 case ICAL_METHOD_REPLY:
360 method = Scheduler::Reply; 362 method = Scheduler::Reply;
361 break; 363 break;
362 case ICAL_METHOD_COUNTER: 364 case ICAL_METHOD_COUNTER:
363 method = Scheduler::Counter; 365 method = Scheduler::Counter;
364 break; 366 break;
365 case ICAL_METHOD_DECLINECOUNTER: 367 case ICAL_METHOD_DECLINECOUNTER:
366 method = Scheduler::Declinecounter; 368 method = Scheduler::Declinecounter;
367 break; 369 break;
368 default: 370 default:
369 method = Scheduler::NoMethod; 371 method = Scheduler::NoMethod;
370 kdDebug(5800) << "ICalFormat::parseScheduleMessage(): Unknow method" << endl; 372 kdDebug(5800) << "ICalFormat::parseScheduleMessage(): Unknow method" << endl;
371 break; 373 break;
372 } 374 }
373 375
374 376
375 if (!icalrestriction_check(message)) { 377 if (!icalrestriction_check(message)) {
376 setException(new ErrorFormat(ErrorFormat::Restriction, 378 setException(new ErrorFormat(ErrorFormat::Restriction,
377 Scheduler::translatedMethodName(method) + ": " + 379 Scheduler::translatedMethodName(method) + ": " +
378 mImpl->extractErrorProperty(c))); 380 mImpl->extractErrorProperty(c)));
379 return 0; 381 return 0;
380 } 382 }
381 383
382 icalcomponent *calendarComponent = mImpl->createCalendarComponent(cal); 384 icalcomponent *calendarComponent = mImpl->createCalendarComponent(cal);
383 385
384 Incidence *existingIncidence = cal->event(incidence->uid()); 386 Incidence *existingIncidence = cal->event(incidence->uid());
385 if (existingIncidence) { 387 if (existingIncidence) {
386 // TODO: check, if cast is required, or if it can be done by virtual funcs. 388 // TODO: check, if cast is required, or if it can be done by virtual funcs.
387 if (existingIncidence->typeID() == todoID ) { 389 if (existingIncidence->typeID() == todoID ) {
388 Todo *todo = static_cast<Todo *>(existingIncidence); 390 Todo *todo = static_cast<Todo *>(existingIncidence);
389 icalcomponent_add_component(calendarComponent, 391 icalcomponent_add_component(calendarComponent,
390 mImpl->writeTodo(todo)); 392 mImpl->writeTodo(todo));
391 } 393 }
392 if (existingIncidence->typeID() == eventID ) { 394 if (existingIncidence->typeID() == eventID ) {
393 Event *event = static_cast<Event *>(existingIncidence); 395 Event *event = static_cast<Event *>(existingIncidence);
394 icalcomponent_add_component(calendarComponent, 396 icalcomponent_add_component(calendarComponent,
395 mImpl->writeEvent(event)); 397 mImpl->writeEvent(event));
396 } 398 }
397 } else { 399 } else {
398 calendarComponent = 0; 400 calendarComponent = 0;
399 } 401 }
400 qDebug("icalclassify commented out "); 402 qDebug("icalclassify commented out ");
401 ScheduleMessage::Status status; 403 ScheduleMessage::Status status;
402#if 0 404#if 0
403 405
404 icalclass result = icalclassify(message,calendarComponent,(char *)""); 406 icalclass result = icalclassify(message,calendarComponent,(char *)"");
405 407
406 408
407 409
408 switch (result) { 410 switch (result) {
409 case ICAL_PUBLISH_NEW_CLASS: 411 case ICAL_PUBLISH_NEW_CLASS:
410 status = ScheduleMessage::PublishNew; 412 status = ScheduleMessage::PublishNew;
411 break; 413 break;
412 case ICAL_OBSOLETE_CLASS: 414 case ICAL_OBSOLETE_CLASS:
413 status = ScheduleMessage::Obsolete; 415 status = ScheduleMessage::Obsolete;
414 break; 416 break;
415 case ICAL_REQUEST_NEW_CLASS: 417 case ICAL_REQUEST_NEW_CLASS:
416 status = ScheduleMessage::RequestNew; 418 status = ScheduleMessage::RequestNew;
417 break; 419 break;
418 case ICAL_REQUEST_UPDATE_CLASS: 420 case ICAL_REQUEST_UPDATE_CLASS:
419 status = ScheduleMessage::RequestUpdate; 421 status = ScheduleMessage::RequestUpdate;
420 break; 422 break;
421 case ICAL_UNKNOWN_CLASS: 423 case ICAL_UNKNOWN_CLASS:
422 default: 424 default:
423 status = ScheduleMessage::Unknown; 425 status = ScheduleMessage::Unknown;
424 break; 426 break;
425 } 427 }
426#endif 428#endif
427 status = ScheduleMessage::RequestUpdate; 429 status = ScheduleMessage::RequestUpdate;
428 return new ScheduleMessage(incidence,method,status); 430 return new ScheduleMessage(incidence,method,status);
429} 431}
430 432
431void ICalFormat::setTimeZone( const QString &id, bool utc ) 433void ICalFormat::setTimeZone( const QString &id, bool utc )
432{ 434{
433 435
434 436
435 mTimeZoneId = id; 437 mTimeZoneId = id;
436 mUtc = utc; 438 mUtc = utc;
437 439
438 tzOffsetMin = KGlobal::locale()->timezoneOffset(mTimeZoneId); 440 tzOffsetMin = KGlobal::locale()->timezoneOffset(mTimeZoneId);
439 441
440 //qDebug("ICalFormat::setTimeZoneOffset %s %d ",mTimeZoneId.latin1(), tzOffsetMin); 442 //qDebug("ICalFormat::setTimeZoneOffset %s %d ",mTimeZoneId.latin1(), tzOffsetMin);
441} 443}
442 444
443QString ICalFormat::timeZoneId() const 445QString ICalFormat::timeZoneId() const
444{ 446{
445 return mTimeZoneId; 447 return mTimeZoneId;
446} 448}
447 449
448bool ICalFormat::utc() const 450bool ICalFormat::utc() const
449{ 451{
450 return mUtc; 452 return mUtc;
451} 453}
452int ICalFormat::timeOffset() 454int ICalFormat::timeOffset()
453{ 455{
454 return tzOffsetMin; 456 return tzOffsetMin;
455} 457}
456const char *ICalFormat::tzString() 458const char *ICalFormat::tzString()
457{ 459{
458 const char* ret = (const char* ) mTzString; 460 const char* ret = (const char* ) mTzString;
459 return ret; 461 return ret;
460} 462}