summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/komonthview.cpp15
1 files changed, 3 insertions, 12 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index cb69832..004ff50 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -1251,70 +1251,61 @@ void KOMonthView::updateView()
1251 for( i = 0; i < timeSpan + 1; ++i ) { 1251 for( i = 0; i < timeSpan + 1; ++i ) {
1252 (*cells)[i]->startUpdateCell(); 1252 (*cells)[i]->startUpdateCell();
1253 } 1253 }
1254 1254
1255 QPtrList<Event> events = calendar()->events(); 1255 QPtrList<Event> events = calendar()->events();
1256 Event *event; 1256 Event *event;
1257 QDateTime dt; 1257 QDateTime dt;
1258 bool ok; 1258 bool ok;
1259 QDate endDate = mStartDate.addDays( timeSpan ); 1259 QDate endDate = mStartDate.addDays( timeSpan );
1260 for( event = events.first(); event; event = events.next() ) { // for event 1260 for( event = events.first(); event; event = events.next() ) { // for event
1261 if ( event->doesRecur() ) { 1261 if ( event->doesRecur() ) {
1262 bool last; 1262 bool last;
1263 qDebug("********************************************** ");
1264 qDebug("Event summary: %s ", event->summary().latin1());
1265 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 1263 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
1266 QDateTime incidenceEnd; 1264 QDateTime incidenceEnd;
1267 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 1265 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
1268 qDebug("eventlen %d ", eventlen);
1269 bool invalid = false; 1266 bool invalid = false;
1270 while( true ) { 1267 while( true ) {
1271 if ( incidenceStart.isValid() ) { 1268 if ( incidenceStart.isValid() ) {
1272 incidenceEnd = incidenceStart.addDays( eventlen ); 1269 incidenceEnd = incidenceStart.addDays( eventlen );
1273 int st = incidenceStart.date().daysTo( endDate ); 1270 int st = incidenceStart.date().daysTo( endDate );
1274 if ( st >= 0 ) { // start before timeend 1271 if ( st >= 0 ) { // start before timeend
1275 int end = mStartDate.daysTo( incidenceEnd.date() ); 1272 int end = mStartDate.daysTo( incidenceEnd.date() );
1276 if ( end >= 0 ) { // end after timestart --- got one! 1273 if ( end >= 0 ) { // end after timestart --- got one!
1277 //normalize 1274 //normalize
1278 st = timeSpan - st; 1275 st = timeSpan - st;
1279 if ( st < 0 ) st = 0; 1276 if ( st < 0 ) st = 0;
1280 if ( end > timeSpan ) end = timeSpan; 1277 if ( end > timeSpan ) end = timeSpan;
1281 int iii; 1278 int iii;
1282 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 1279 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
1283 for ( iii = st;iii<= end;++iii) 1280 for ( iii = st;iii<= end;++iii)
1284 (*cells)[iii]->insertEvent( event ); 1281 (*cells)[iii]->insertEvent( event );
1285 } 1282 }
1286 } 1283 }
1287 } else { 1284 } else {
1288 if ( invalid ) 1285 if ( invalid )
1289 break; 1286 break;
1290 invalid = true; 1287 invalid = true;
1291 qDebug("invalid %s", event->summary().latin1()); 1288 //qDebug("invalid %s", event->summary().latin1());
1292 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; 1289 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );;
1293 } 1290 }
1294 if ( last ) 1291 if ( last )
1295 break; 1292 break;
1296 bool ok; 1293 bool ok;
1297 qDebug("TRY next occurence %s ", incidenceStart.toString().latin1());
1298 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 1294 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
1299 if ( ! ok ) { 1295 if ( ! ok )
1300 qDebug("NOT OK ");
1301 break; 1296 break;
1302 } 1297 if ( incidenceStart.date() > endDate )
1303 if ( incidenceStart.date() > endDate ) {
1304 qDebug("incidenceStart.date() > endDate ");
1305 break; 1298 break;
1306 } 1299 }
1307 qDebug("next occurence %s ", incidenceStart.toString().latin1());
1308 }
1309 } else { // no recur 1300 } else { // no recur
1310 int st = event->dtStart().date().daysTo( endDate ); 1301 int st = event->dtStart().date().daysTo( endDate );
1311 if ( st >= 0 ) { // start before timeend 1302 if ( st >= 0 ) { // start before timeend
1312 int end = mStartDate.daysTo( event->dtEnd().date() ); 1303 int end = mStartDate.daysTo( event->dtEnd().date() );
1313 if ( end >= 0 ) { // end after timestart --- got one! 1304 if ( end >= 0 ) { // end after timestart --- got one!
1314 //normalize 1305 //normalize
1315 st = timeSpan - st; 1306 st = timeSpan - st;
1316 if ( st < 0 ) st = 0; 1307 if ( st < 0 ) st = 0;
1317 if ( end > timeSpan ) end = timeSpan; 1308 if ( end > timeSpan ) end = timeSpan;
1318 int iii; 1309 int iii;
1319 for ( iii = st;iii<= end;++iii) 1310 for ( iii = st;iii<= end;++iii)
1320 (*cells)[iii]->insertEvent( event ); 1311 (*cells)[iii]->insertEvent( event );