summaryrefslogtreecommitdiffabout
path: root/libkcal
Unidiff
Diffstat (limited to 'libkcal') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/incidence.cpp8
-rw-r--r--libkcal/incidencebase.cpp4
2 files changed, 8 insertions, 4 deletions
diff --git a/libkcal/incidence.cpp b/libkcal/incidence.cpp
index 56c9801..55ac6d4 100644
--- a/libkcal/incidence.cpp
+++ b/libkcal/incidence.cpp
@@ -561,39 +561,43 @@ ushort Incidence::doesRecur() const
561QDateTime Incidence::getNextOccurence( const QDateTime& dt, bool* ok ) const 561QDateTime Incidence::getNextOccurence( const QDateTime& dt, bool* ok ) const
562{ 562{
563 QDateTime incidenceStart = dt; 563 QDateTime incidenceStart = dt;
564 *ok = false; 564 *ok = false;
565 if ( doesRecur() ) { 565 if ( doesRecur() ) {
566 bool last; 566 bool last;
567 recurrence()->getPreviousDateTime( incidenceStart , &last ); 567 recurrence()->getPreviousDateTime( incidenceStart , &last );
568 int count = 0; 568 int count = 0;
569 if ( !last ) { 569 if ( !last ) {
570 while ( !last ) { 570 while ( !last ) {
571 ++count; 571 ++count;
572 incidenceStart = recurrence()->getNextDateTime( incidenceStart, &last ); 572 incidenceStart = recurrence()->getNextDateTime( incidenceStart, &last );
573 if ( recursOn( incidenceStart.date() ) ) { 573 if ( recursOn( incidenceStart.date() ) ) {
574 last = true; // exit while llop 574 last = true; // exit while llop
575 } else { 575 } else {
576 if ( last ) { // no alarm on last recurrence 576 if ( last ) { // no alarm on last recurrence
577 return QDateTime (); 577 return QDateTime ();
578 } 578 }
579 int year = incidenceStart.date().year(); 579 int year = incidenceStart.date().year();
580 // workaround for bug in recurrence 580 // workaround for bug in recurrence
581 if ( count == 100 || year < 1980 || year > 5000 ) { 581 if ( count == 100 || year < 1980 || year > 5000 ) {
582 return QDateTime (); 582 return QDateTime ();
583 } 583 }
584 incidenceStart = incidenceStart.addSecs( 1 ); 584 incidenceStart = incidenceStart.addSecs( 1 );
585 } 585 }
586 } 586 }
587 } else { 587 } else {
588 return QDateTime (); 588 return QDateTime ();
589 } 589 }
590 } else { 590 } else {
591 if ( hasStartDate () ) { 591 if ( hasStartDate () ) {
592 incidenceStart = dtStart(); 592 incidenceStart = dtStart();
593 593 }
594 } 594 if ( type() =="Todo" ) {
595 if ( ((Todo*)this)->hasDueDate() )
596 incidenceStart = ((Todo*)this)->dtDue();
597
598 }
595 } 599 }
596 if ( incidenceStart > dt ) 600 if ( incidenceStart > dt )
597 *ok = true; 601 *ok = true;
598 return incidenceStart; 602 return incidenceStart;
599} 603}
diff --git a/libkcal/incidencebase.cpp b/libkcal/incidencebase.cpp
index 64a343c..b36dc1a 100644
--- a/libkcal/incidencebase.cpp
+++ b/libkcal/incidencebase.cpp
@@ -242,83 +242,83 @@ void IncidenceBase::removeAttendee(const char *n)
242 break; 242 break;
243 } 243 }
244} 244}
245#endif 245#endif
246 246
247void IncidenceBase::clearAttendees() 247void IncidenceBase::clearAttendees()
248{ 248{
249 if (mReadOnly) return; 249 if (mReadOnly) return;
250 mAttendees.clear(); 250 mAttendees.clear();
251} 251}
252 252
253#if 0 253#if 0
254Attendee *IncidenceBase::getAttendee(const char *n) const 254Attendee *IncidenceBase::getAttendee(const char *n) const
255{ 255{
256 QPtrListIterator<Attendee> qli(mAttendees); 256 QPtrListIterator<Attendee> qli(mAttendees);
257 257
258 qli.toFirst(); 258 qli.toFirst();
259 while (qli) { 259 while (qli) {
260 if (qli.current()->getName() == n) 260 if (qli.current()->getName() == n)
261 return qli.current(); 261 return qli.current();
262 ++qli; 262 ++qli;
263 } 263 }
264 return 0L; 264 return 0L;
265} 265}
266#endif 266#endif
267 267
268Attendee *IncidenceBase::attendeeByMail(const QString &email) 268Attendee *IncidenceBase::attendeeByMail(const QString &email)
269{ 269{
270 QPtrListIterator<Attendee> qli(mAttendees); 270 QPtrListIterator<Attendee> qli(mAttendees);
271 271
272 qli.toFirst(); 272 qli.toFirst();
273 while (qli) { 273 while (qli) {
274 if (qli.current()->email() == email) 274 if (qli.current()->email().lower() == email.lower())
275 return qli.current(); 275 return qli.current();
276 ++qli; 276 ++qli;
277 } 277 }
278 return 0L; 278 return 0L;
279} 279}
280 280
281Attendee *IncidenceBase::attendeeByMails(const QStringList &emails, const QString& email) 281Attendee *IncidenceBase::attendeeByMails(const QStringList &emails, const QString& email)
282{ 282{
283 QPtrListIterator<Attendee> qli(mAttendees); 283 QPtrListIterator<Attendee> qli(mAttendees);
284 284
285 QStringList mails = emails; 285 QStringList mails = emails;
286 if (!email.isEmpty()) { 286 if (!email.isEmpty()) {
287 mails.append(email); 287 mails.append(email);
288 } 288 }
289 qli.toFirst(); 289 qli.toFirst();
290 while (qli) { 290 while (qli) {
291 for ( QStringList::Iterator it = mails.begin(); it != mails.end(); ++it ) { 291 for ( QStringList::Iterator it = mails.begin(); it != mails.end(); ++it ) {
292 if (qli.current()->email() == *it) 292 if (qli.current()->email().lower() == (*it).lower())
293 return qli.current(); 293 return qli.current();
294 } 294 }
295 295
296 ++qli; 296 ++qli;
297 } 297 }
298 return 0L; 298 return 0L;
299} 299}
300 300
301void IncidenceBase::setDuration(int seconds) 301void IncidenceBase::setDuration(int seconds)
302{ 302{
303 mDuration = seconds; 303 mDuration = seconds;
304 setHasDuration(true); 304 setHasDuration(true);
305} 305}
306 306
307int IncidenceBase::duration() const 307int IncidenceBase::duration() const
308{ 308{
309 return mDuration; 309 return mDuration;
310} 310}
311 311
312void IncidenceBase::setHasDuration(bool b) 312void IncidenceBase::setHasDuration(bool b)
313{ 313{
314 mHasDuration = b; 314 mHasDuration = b;
315} 315}
316 316
317bool IncidenceBase::hasDuration() const 317bool IncidenceBase::hasDuration() const
318{ 318{
319 return mHasDuration; 319 return mHasDuration;
320} 320}
321 321
322void IncidenceBase::setSyncStatus(int stat) 322void IncidenceBase::setSyncStatus(int stat)
323{ 323{
324 if (mReadOnly) return; 324 if (mReadOnly) return;