author | zautrix <zautrix> | 2005-03-18 15:11:51 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-03-18 15:11:51 (UTC) |
commit | 66bc0202d4e2306f7029362fe09d0c7ab0e7cc36 (patch) (side-by-side diff) | |
tree | eafee97f377c32339488833065313c2494e1f5a5 | |
parent | 414cb038cbe353f2fdb90969bc2531b687acc85f (diff) | |
download | kdepimpi-66bc0202d4e2306f7029362fe09d0c7ab0e7cc36.zip kdepimpi-66bc0202d4e2306f7029362fe09d0c7ab0e7cc36.tar.gz kdepimpi-66bc0202d4e2306f7029362fe09d0c7ab0e7cc36.tar.bz2 |
rec fix
-rw-r--r-- | korganizer/komonthview.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 004ff50..cb69832 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp @@ -1247,68 +1247,77 @@ void KOMonthView::updateView() int i; int timeSpan = (*cells).size()-1; if ( KOPrefs::instance()->mMonthViewWeek ) timeSpan = 6; for( i = 0; i < timeSpan + 1; ++i ) { (*cells)[i]->startUpdateCell(); } QPtrList<Event> events = calendar()->events(); Event *event; QDateTime dt; bool ok; QDate endDate = mStartDate.addDays( timeSpan ); for( event = events.first(); event; event = events.next() ) { // for event if ( event->doesRecur() ) { bool last; + qDebug("********************************************** "); + qDebug("Event summary: %s ", event->summary().latin1()); QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); QDateTime incidenceEnd; int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); + qDebug("eventlen %d ", eventlen); bool invalid = false; while( true ) { if ( incidenceStart.isValid() ) { incidenceEnd = incidenceStart.addDays( eventlen ); int st = incidenceStart.date().daysTo( endDate ); if ( st >= 0 ) { // start before timeend int end = mStartDate.daysTo( incidenceEnd.date() ); if ( end >= 0 ) { // end after timestart --- got one! //normalize st = timeSpan - st; if ( st < 0 ) st = 0; if ( end > timeSpan ) end = timeSpan; int iii; //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); for ( iii = st;iii<= end;++iii) (*cells)[iii]->insertEvent( event ); } } } else { if ( invalid ) break; invalid = true; - //qDebug("invalid %s", event->summary().latin1()); + qDebug("invalid %s", event->summary().latin1()); incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; } if ( last ) break; bool ok; + qDebug("TRY next occurence %s ", incidenceStart.toString().latin1()); incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); - if ( ! ok ) + if ( ! ok ) { + qDebug("NOT OK "); break; - if ( incidenceStart.date() > endDate ) + } + if ( incidenceStart.date() > endDate ) { + qDebug("incidenceStart.date() > endDate "); break; + } + qDebug("next occurence %s ", incidenceStart.toString().latin1()); } } else { // no recur int st = event->dtStart().date().daysTo( endDate ); if ( st >= 0 ) { // start before timeend int end = mStartDate.daysTo( event->dtEnd().date() ); if ( end >= 0 ) { // end after timestart --- got one! //normalize st = timeSpan - st; if ( st < 0 ) st = 0; if ( end > timeSpan ) end = timeSpan; int iii; for ( iii = st;iii<= end;++iii) (*cells)[iii]->insertEvent( event ); } } } |