-rw-r--r-- | korganizer/koagenda.cpp | 124 | ||||
-rw-r--r-- | korganizer/koagendaitem.cpp | 11 | ||||
-rw-r--r-- | korganizer/koagendaview.cpp | 30 |
3 files changed, 93 insertions, 72 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index 148d914..18c506e 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp | |||
@@ -1342,125 +1342,115 @@ void KOAgenda::placeSubCells(KOAgendaItem *placeItem) | |||
1342 | } | 1342 | } |
1343 | } | 1343 | } |
1344 | } else { | 1344 | } else { |
1345 | placeItem->setSubCell(0); | 1345 | placeItem->setSubCell(0); |
1346 | placeItem->setSubCells(1); | 1346 | placeItem->setSubCells(1); |
1347 | if (mAllDayMode) placeItem->resize(placeItem->width(),mGridSpacingY); | 1347 | if (mAllDayMode) placeItem->resize(placeItem->width(),mGridSpacingY); |
1348 | else placeItem->resize(mGridSpacingX,placeItem->height()); | 1348 | else placeItem->resize(mGridSpacingX,placeItem->height()); |
1349 | int x,y; | 1349 | int x,y; |
1350 | gridToContents(placeItem->cellX(),placeItem->cellYTop(),x,y); | 1350 | gridToContents(placeItem->cellX(),placeItem->cellYTop(),x,y); |
1351 | moveChild(placeItem,x,y); | 1351 | moveChild(placeItem,x,y); |
1352 | } | 1352 | } |
1353 | placeItem->setConflictItems(conflictItems); | 1353 | placeItem->setConflictItems(conflictItems); |
1354 | // for ( item=conflictItems.first(); item != 0; | 1354 | // for ( item=conflictItems.first(); item != 0; |
1355 | // item=conflictItems.next() ) { | 1355 | // item=conflictItems.next() ) { |
1356 | // //item->updateItem(); | 1356 | // //item->updateItem(); |
1357 | // //qDebug("xxx item->updateItem() %s %d %d", item->incidence()->summary().latin1(),item->x(), item->y() ); | 1357 | // //qDebug("xxx item->updateItem() %s %d %d", item->incidence()->summary().latin1(),item->x(), item->y() ); |
1358 | // } | 1358 | // } |
1359 | // placeItem->updateItem(); | 1359 | // placeItem->updateItem(); |
1360 | } | 1360 | } |
1361 | 1361 | ||
1362 | void KOAgenda::drawContents(QPainter* p, int cx, int cy, int cw, int ch) | 1362 | void KOAgenda::drawContents(QPainter* p, int cx, int cy, int cw, int ch) |
1363 | { | 1363 | { |
1364 | if ( globalFlagBlockAgenda ) | 1364 | if ( globalFlagBlockAgenda ) |
1365 | return; | 1365 | return; |
1366 | //qDebug("KOAgenda::drawContents "); | 1366 | if ( ! mAllDayMode ) { |
1367 | if ( mCurPixWid != contentsWidth() || mCurPixHei != contentsHeight() ) | 1367 | // currently not working for |
1368 | ;//drawContentsToPainter(); | ||
1369 | 1368 | ||
1370 | QPaintDevice* pd = p->device(); | 1369 | //qDebug("KOAgenda::drawContents "); |
1371 | p->end(); | 1370 | if ( mCurPixWid != contentsWidth() || mCurPixHei != contentsHeight() ) |
1372 | int vx, vy; | 1371 | ;//drawContentsToPainter(); |
1373 | int selectionX = KOGlobals::self()->reverseLayout() ? | 1372 | |
1373 | QPaintDevice* pd = p->device(); | ||
1374 | p->end(); | ||
1375 | int vx, vy; | ||
1376 | int selectionX = KOGlobals::self()->reverseLayout() ? | ||
1374 | (mColumns - 1 - mSelectionCellX) * mGridSpacingX : | 1377 | (mColumns - 1 - mSelectionCellX) * mGridSpacingX : |
1375 | mSelectionCellX * mGridSpacingX; | 1378 | mSelectionCellX * mGridSpacingX; |
1376 | contentsToViewport ( cx, cy, vx,vy); | 1379 | contentsToViewport ( cx, cy, vx,vy); |
1377 | //qDebug(" %d %d %d %d %d", cx, cy, cw,ch,mGridSpacingX-1) ; | 1380 | //qDebug(" %d %d %d %d %d", cx, cy, cw,ch,mGridSpacingX-1) ; |
1378 | 1381 | ||
1379 | if ( !(selectionX == cx && cy == mSelectionYTop && cw ==mGridSpacingX && ch == mSelectionHeight ) ) { | 1382 | if ( !(selectionX == cx && cy == mSelectionYTop && cw ==mGridSpacingX && ch == mSelectionHeight ) ) { |
1380 | if ( mGridSpacingX == cw && mSelectionHeight > 0 && ( ( cx + cw ) >= selectionX && cx <= ( selectionX + mGridSpacingX ) && | 1383 | if ( mGridSpacingX == cw && mSelectionHeight > 0 && ( ( cx + cw ) >= selectionX && cx <= ( selectionX + mGridSpacingX ) && |
1381 | ( cy + ch ) >= mSelectionYTop && cy <= ( mSelectionYTop + mSelectionHeight ) ) ) { | 1384 | ( cy + ch ) >= mSelectionYTop && cy <= ( mSelectionYTop + mSelectionHeight ) ) ) { |
1382 | 1385 | ||
1383 | int vxSel, vySel; | 1386 | int vxSel, vySel; |
1384 | contentsToViewport ( selectionX, mSelectionYTop, vxSel,vySel); | 1387 | contentsToViewport ( selectionX, mSelectionYTop, vxSel,vySel); |
1385 | int off = mSelectionHeight; | 1388 | int off = mSelectionHeight; |
1386 | if ( vySel < 0 ) | 1389 | if ( vySel < 0 ) |
1387 | off += vySel; | 1390 | off += vySel; |
1388 | //qDebug("OFF %d %d %d", off,vySel, vy ); | 1391 | //qDebug("OFF %d %d %d", off,vySel, vy ); |
1389 | bitBlt ( pd, vx, vy+off, &mPaintPixmap, cx, cy+off, cw , ch-off ,CopyROP); | 1392 | bitBlt ( pd, vx, vy+off, &mPaintPixmap, cx, cy+off, cw , ch-off ,CopyROP); |
1390 | } else { | 1393 | } else { |
1391 | bitBlt ( pd, vx, vy, &mPaintPixmap, cx, cy, cw, ch ,CopyROP); | 1394 | bitBlt ( pd, vx, vy, &mPaintPixmap, cx, cy, cw, ch ,CopyROP); |
1395 | } | ||
1392 | } | 1396 | } |
1393 | } | 1397 | if ( mSelectionHeight > 0 ) { |
1394 | if ( mSelectionHeight > 0 ) { | 1398 | //qDebug("---- %d %d %d %d ", selectionX, mSelectionYTop, mGridSpacingX, mSelectionHeight ); |
1395 | //qDebug("---- %d %d %d %d ", selectionX, mSelectionYTop, mGridSpacingX, mSelectionHeight ); | 1399 | if ( ( cx + cw ) >= selectionX && cx <= ( selectionX + mGridSpacingX ) && |
1396 | if ( ( cx + cw ) >= selectionX && cx <= ( selectionX + mGridSpacingX ) && | 1400 | ( cy + ch ) >= mSelectionYTop && cy <= ( mSelectionYTop + mSelectionHeight ) ) { |
1397 | ( cy + ch ) >= mSelectionYTop && cy <= ( mSelectionYTop + mSelectionHeight ) ) { | 1401 | contentsToViewport ( selectionX, mSelectionYTop, vx,vy); |
1398 | contentsToViewport ( selectionX, mSelectionYTop, vx,vy); | 1402 | bitBlt ( pd, vx+1, vy, &mHighlightPixmap, 0, mSelectionYTop, mGridSpacingX-1, mSelectionHeight ,CopyROP); |
1399 | bitBlt ( pd, vx+1, vy, &mHighlightPixmap, 0, mSelectionYTop, mGridSpacingX-1, mSelectionHeight ,CopyROP); | 1403 | } |
1400 | } | 1404 | } |
1401 | } | 1405 | p->begin( pd ); |
1402 | //qDebug("btbl "); | 1406 | } else { |
1403 | p->begin( pd ); | 1407 | |
1404 | //qDebug("end "); | 1408 | if ( mCurPixWid != contentsWidth() || mCurPixHei != contentsHeight() ) |
1405 | #if 0 | 1409 | ;//drawContentsToPainter(); |
1406 | |||
1407 | if ( globalFlagBlockAgenda ) | ||
1408 | return; | ||
1409 | //qDebug("KOAgenda::drawContents "); | ||
1410 | if ( mCurPixWid != contentsWidth() || mCurPixHei != contentsHeight() ) | ||
1411 | ;//drawContentsToPainter(); | ||
1412 | 1410 | ||
1413 | QPaintDevice* pd = p->device(); | 1411 | QPaintDevice* pd = p->device(); |
1414 | p->end(); | 1412 | p->end(); |
1415 | int vx, vy; | 1413 | int vx, vy; |
1416 | int selectionX = KOGlobals::self()->reverseLayout() ? | 1414 | int selectionX = KOGlobals::self()->reverseLayout() ? |
1417 | (mColumns - 1 - mSelectionCellX) * mGridSpacingX : | 1415 | (mColumns - 1 - mSelectionCellX) * mGridSpacingX : |
1418 | mSelectionCellX * mGridSpacingX; | 1416 | mSelectionCellX * mGridSpacingX; |
1419 | contentsToViewport ( cx, cy, vx,vy); | 1417 | contentsToViewport ( cx, cy, vx,vy); |
1420 | // qDebug(" %d %d %d %d ", cx, cy, cw,ch) ; | 1418 | // qDebug(" %d %d %d %d ", cx, cy, cw,ch) ; |
1421 | if ( !(selectionX == cx && cy == mSelectionYTop && cw ==mGridSpacingX && ch == mSelectionHeight ) ) | 1419 | if ( !(selectionX == cx && cy == mSelectionYTop && cw ==mGridSpacingX && ch == mSelectionHeight ) ) |
1422 | bitBlt ( pd, vx, vy, &mPaintPixmap, cx, cy, cw, ch ,CopyROP); | 1420 | bitBlt ( pd, vx, vy, &mPaintPixmap, cx, cy, cw, ch ,CopyROP); |
1423 | 1421 | ||
1424 | if ( mSelectionHeight > 0 ) { | 1422 | if ( mSelectionHeight > 0 ) { |
1425 | //qDebug("---- %d %d %d %d ", selectionX, mSelectionYTop, mGridSpacingX, mSelectionHeight ); | 1423 | //qDebug("---- %d %d %d %d ", selectionX, mSelectionYTop, mGridSpacingX, mSelectionHeight ); |
1426 | if ( ( cx + cw ) >= selectionX && cx <= ( selectionX + mGridSpacingX ) && | 1424 | if ( ( cx + cw ) >= selectionX && cx <= ( selectionX + mGridSpacingX ) && |
1427 | ( cy + ch ) >= mSelectionYTop && cy <= ( mSelectionYTop + mSelectionHeight ) ) { | 1425 | ( cy + ch ) >= mSelectionYTop && cy <= ( mSelectionYTop + mSelectionHeight ) ) { |
1428 | contentsToViewport ( selectionX, mSelectionYTop, vx,vy); | 1426 | contentsToViewport ( selectionX, mSelectionYTop, vx,vy); |
1429 | bitBlt ( pd, vx+1, vy, &mHighlightPixmap, 0, mSelectionYTop, mGridSpacingX-1, mSelectionHeight ,CopyROP); | 1427 | bitBlt ( pd, vx+1, vy, &mHighlightPixmap, 0, mSelectionYTop, mGridSpacingX-1, mSelectionHeight ,CopyROP); |
1430 | } | 1428 | } |
1431 | } | 1429 | } |
1432 | //qDebug("btbl "); | 1430 | p->begin( pd ); |
1433 | p->begin( pd ); | 1431 | } |
1434 | //qDebug("end "); | ||
1435 | |||
1436 | |||
1437 | |||
1438 | |||
1439 | |||
1440 | |||
1441 | 1432 | ||
1442 | #endif | ||
1443 | } | 1433 | } |
1444 | 1434 | ||
1445 | void KOAgenda::finishUpdate() | 1435 | void KOAgenda::finishUpdate() |
1446 | { | 1436 | { |
1447 | 1437 | ||
1448 | KOAgendaItem *item; | 1438 | KOAgendaItem *item; |
1449 | globalFlagBlockAgendaItemPaint = 1; | 1439 | globalFlagBlockAgendaItemPaint = 1; |
1450 | // Adjust sub cell geometry of all conflict items of all conflict items of all conflict items ... of the conflict item with the max number of conflictitems | 1440 | // Adjust sub cell geometry of all conflict items of all conflict items of all conflict items ... of the conflict item with the max number of conflictitems |
1451 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { | 1441 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { |
1452 | if ( !item->checkLayout() ) { | 1442 | if ( !item->checkLayout() ) { |
1453 | //qDebug(" conflictitem found "); | 1443 | //qDebug(" conflictitem found "); |
1454 | int newSubCellWidth; | 1444 | int newSubCellWidth; |
1455 | if (mAllDayMode) newSubCellWidth = mGridSpacingY / item->subCells(); | 1445 | if (mAllDayMode) newSubCellWidth = mGridSpacingY / item->subCells(); |
1456 | else newSubCellWidth = mGridSpacingX / item->subCells(); | 1446 | else newSubCellWidth = mGridSpacingX / item->subCells(); |
1457 | 1447 | ||
1458 | if (mAllDayMode) { | 1448 | if (mAllDayMode) { |
1459 | item->resize(item->cellWidth() * mGridSpacingX, newSubCellWidth); | 1449 | item->resize(item->cellWidth() * mGridSpacingX, newSubCellWidth); |
1460 | } else { | 1450 | } else { |
1461 | item->resize(newSubCellWidth, item->cellHeight() * mGridSpacingY); | 1451 | item->resize(newSubCellWidth, item->cellHeight() * mGridSpacingY); |
1462 | } | 1452 | } |
1463 | int x,y; | 1453 | int x,y; |
1464 | gridToContents(item->cellX(),item->cellYTop(),x,y); | 1454 | gridToContents(item->cellX(),item->cellYTop(),x,y); |
1465 | if (mAllDayMode) { | 1455 | if (mAllDayMode) { |
1466 | y += item->subCell() * newSubCellWidth; | 1456 | y += item->subCell() * newSubCellWidth; |
@@ -1946,49 +1936,49 @@ void KOAgenda::insertMultiItem (Event *event,QDate qd,int XBegin,int XEnd, | |||
1946 | // Thought this would make the all-day event agenda minimum size and the | 1936 | // Thought this would make the all-day event agenda minimum size and the |
1947 | // normal agenda take the remaining space. But it doesn´t work. The QSplitter | 1937 | // normal agenda take the remaining space. But it doesn´t work. The QSplitter |
1948 | // don´t seem to think that an Expanding widget needs more space than a | 1938 | // don´t seem to think that an Expanding widget needs more space than a |
1949 | // Preferred one. | 1939 | // Preferred one. |
1950 | // But it doesn´t hurt, so it stays. | 1940 | // But it doesn´t hurt, so it stays. |
1951 | // if (mAllDayMode) { | 1941 | // if (mAllDayMode) { |
1952 | // return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred); | 1942 | // return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred); |
1953 | // } else { | 1943 | // } else { |
1954 | // return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); | 1944 | // return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); |
1955 | // } | 1945 | // } |
1956 | //} | 1946 | //} |
1957 | void KOAgenda::finishResize ( ) | 1947 | void KOAgenda::finishResize ( ) |
1958 | { | 1948 | { |
1959 | //qDebug("finishResize+++++++++++++++++++++++++++++++ ( ) "); | 1949 | //qDebug("finishResize+++++++++++++++++++++++++++++++ ( ) "); |
1960 | if ( globalFlagBlockAgenda == 0 ) { | 1950 | if ( globalFlagBlockAgenda == 0 ) { |
1961 | finishUpdate(); | 1951 | finishUpdate(); |
1962 | //qDebug("finishUpdate() called "); | 1952 | //qDebug("finishUpdate() called "); |
1963 | } | 1953 | } |
1964 | } | 1954 | } |
1965 | /* | 1955 | /* |
1966 | Overridden from QScrollView to provide proper resizing of KOAgendaItems. | 1956 | Overridden from QScrollView to provide proper resizing of KOAgendaItems. |
1967 | */ | 1957 | */ |
1968 | void KOAgenda::resizeEvent ( QResizeEvent *ev ) | 1958 | void KOAgenda::resizeEvent ( QResizeEvent *ev ) |
1969 | { | 1959 | { |
1970 | 1960 | mSelectionHeight = 0; | |
1971 | mResizeTimer.start( 150 , true ); | 1961 | mResizeTimer.start( 150 , true ); |
1972 | computeSizes(); | 1962 | computeSizes(); |
1973 | return; | 1963 | return; |
1974 | 1964 | ||
1975 | } | 1965 | } |
1976 | void KOAgenda::computeSizes() | 1966 | void KOAgenda::computeSizes() |
1977 | { | 1967 | { |
1978 | if ( globalFlagBlockStartup ) | 1968 | if ( globalFlagBlockStartup ) |
1979 | return; | 1969 | return; |
1980 | int frameOffset = frameWidth() * 2 +1; | 1970 | int frameOffset = frameWidth() * 2 +1; |
1981 | if (mAllDayMode) { | 1971 | if (mAllDayMode) { |
1982 | mGridSpacingX = (width()-frameOffset) / mColumns; | 1972 | mGridSpacingX = (width()-frameOffset) / mColumns; |
1983 | mGridSpacingY = height() - 2 * frameWidth() - 1; | 1973 | mGridSpacingY = height() - 2 * frameWidth() - 1; |
1984 | resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY + 1); | 1974 | resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY + 1); |
1985 | // mGridSpacingY = height(); | 1975 | // mGridSpacingY = height(); |
1986 | // resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); | 1976 | // resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); |
1987 | 1977 | ||
1988 | KOAgendaItem *item; | 1978 | KOAgendaItem *item; |
1989 | int subCellWidth; | 1979 | int subCellWidth; |
1990 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { | 1980 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { |
1991 | subCellWidth = mGridSpacingY / item->subCells(); | 1981 | subCellWidth = mGridSpacingY / item->subCells(); |
1992 | item->resize(mGridSpacingX * item->cellWidth(),subCellWidth); | 1982 | item->resize(mGridSpacingX * item->cellWidth(),subCellWidth); |
1993 | moveChild(item,KOGlobals::self()->reverseLayout() ? | 1983 | moveChild(item,KOGlobals::self()->reverseLayout() ? |
1994 | (mColumns - 1 - item->cellX()) * mGridSpacingX : | 1984 | (mColumns - 1 - item->cellX()) * mGridSpacingX : |
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp index c9e307f..1801d7e 100644 --- a/korganizer/koagendaitem.cpp +++ b/korganizer/koagendaitem.cpp | |||
@@ -527,53 +527,56 @@ void KOAgendaItem::paintEvent ( QPaintEvent *e ) | |||
527 | rw = paintFrom->width() - xx; | 527 | rw = paintFrom->width() - xx; |
528 | if ( rw <= 1 ) { | 528 | if ( rw <= 1 ) { |
529 | //qDebug("KOAgendaItem::Width2 <= 1 (%d). Returning.%s ",rw,mDisplayedText.latin1() ); | 529 | //qDebug("KOAgendaItem::Width2 <= 1 (%d). Returning.%s ",rw,mDisplayedText.latin1() ); |
530 | return; | 530 | return; |
531 | } | 531 | } |
532 | } | 532 | } |
533 | //qDebug("%d %d %d %d %d %d %d",rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh); | 533 | //qDebug("%d %d %d %d %d %d %d",rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh); |
534 | bitBlt (this, rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh ,CopyROP); | 534 | bitBlt (this, rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh ,CopyROP); |
535 | } | 535 | } |
536 | void KOAgendaItem::computeText() | 536 | void KOAgendaItem::computeText() |
537 | { | 537 | { |
538 | mDisplayedText = mIncidence->summary(); | 538 | mDisplayedText = mIncidence->summary(); |
539 | if ( (mIncidence->type() == "Todo") ) { | 539 | if ( (mIncidence->type() == "Todo") ) { |
540 | if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) { | 540 | if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) { |
541 | if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) | 541 | if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) |
542 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")"; | 542 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")"; |
543 | else if ( !(mIncidence->doesFloat())) | 543 | else if ( !(mIncidence->doesFloat())) |
544 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")"; | 544 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")"; |
545 | } | 545 | } |
546 | } else { | 546 | } else { |
547 | if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda) | 547 | if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda) |
548 | mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + " - " + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ; | 548 | mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + " - " + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ; |
549 | 549 | ||
550 | if ( mAllDay ) { | 550 | if ( mAllDay ) { |
551 | if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) { | 551 | if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) { |
552 | mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ; | 552 | if ( mIncidence->doesRecur() ) { |
553 | } | 553 | mDisplayedText += " (" + mIncidence->recurrence()->recurrenceText() + ")"; |
554 | } else { | ||
555 | mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ; | ||
556 | } | ||
557 | } | ||
554 | } | 558 | } |
555 | |||
556 | } | 559 | } |
557 | 560 | ||
558 | if ( !mIncidence->location().isEmpty() ) { | 561 | if ( !mIncidence->location().isEmpty() ) { |
559 | if ( mAllDay ) | 562 | if ( mAllDay ) |
560 | mDisplayedText += " ("; | 563 | mDisplayedText += " ("; |
561 | else | 564 | else |
562 | mDisplayedText += "\n("; | 565 | mDisplayedText += "\n("; |
563 | mDisplayedText += mIncidence->location() +")"; | 566 | mDisplayedText += mIncidence->location() +")"; |
564 | } | 567 | } |
565 | #ifdef DESKTOP_VERSION | 568 | #ifdef DESKTOP_VERSION |
566 | QString tipText = mIncidence->summary(); | 569 | QString tipText = mIncidence->summary(); |
567 | if ( !mIncidence->doesFloat() ) { | 570 | if ( !mIncidence->doesFloat() ) { |
568 | if ( mIncidence->type() == "Event" ) { | 571 | if ( mIncidence->type() == "Event" ) { |
569 | if ( (static_cast<Event*>(mIncidence))->isMultiDay() ) { | 572 | if ( (static_cast<Event*>(mIncidence))->isMultiDay() ) { |
570 | tipText += "\n"+i18n("From: ")+mIncidence->dtStartStr(); | 573 | tipText += "\n"+i18n("From: ")+mIncidence->dtStartStr(); |
571 | tipText += "\n"+i18n("To: ")+(static_cast<Event*>(mIncidence))->dtEndStr(); | 574 | tipText += "\n"+i18n("To: ")+(static_cast<Event*>(mIncidence))->dtEndStr(); |
572 | } | 575 | } |
573 | else { | 576 | else { |
574 | tipText += "\n"+i18n("Time: ")+mIncidence->dtStartTimeStr(); | 577 | tipText += "\n"+i18n("Time: ")+mIncidence->dtStartTimeStr(); |
575 | tipText += " - "+(static_cast<Event*>(mIncidence))->dtEndTimeStr(); | 578 | tipText += " - "+(static_cast<Event*>(mIncidence))->dtEndTimeStr(); |
576 | } | 579 | } |
577 | } | 580 | } |
578 | else if ( mIncidence->type() == "Todo" ) { | 581 | else if ( mIncidence->type() == "Todo" ) { |
579 | if (mIncidence->hasStartDate()) | 582 | if (mIncidence->hasStartDate()) |
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp index 76d5c4b..f53e5d5 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp | |||
@@ -1139,49 +1139,77 @@ void KOAgendaView::fillAgenda() | |||
1139 | // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString() | 1139 | // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString() |
1140 | // << endl; | 1140 | // << endl; |
1141 | 1141 | ||
1142 | dayEvents = calendar()->events(currentDate,true); | 1142 | dayEvents = calendar()->events(currentDate,true); |
1143 | 1143 | ||
1144 | // Default values, which can never be reached | 1144 | // Default values, which can never be reached |
1145 | mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1; | 1145 | mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1; |
1146 | mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1; | 1146 | mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1; |
1147 | 1147 | ||
1148 | unsigned int numEvent; | 1148 | unsigned int numEvent; |
1149 | for(numEvent=0;numEvent<dayEvents.count();++numEvent) { | 1149 | for(numEvent=0;numEvent<dayEvents.count();++numEvent) { |
1150 | Event *event = dayEvents.at(numEvent); | 1150 | Event *event = dayEvents.at(numEvent); |
1151 | if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) | 1151 | if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) |
1152 | if ( event->uid().left(15) == QString("last-syncEvent-") ) | 1152 | if ( event->uid().left(15) == QString("last-syncEvent-") ) |
1153 | continue; | 1153 | continue; |
1154 | // kdDebug() << " Event: " << event->summary() << endl; | 1154 | // kdDebug() << " Event: " << event->summary() << endl; |
1155 | 1155 | ||
1156 | int beginX = currentDate.daysTo(event->dtStart().date()) + curCol; | 1156 | int beginX = currentDate.daysTo(event->dtStart().date()) + curCol; |
1157 | int endX = currentDate.daysTo(event->dtEnd().date()) + curCol; | 1157 | int endX = currentDate.daysTo(event->dtEnd().date()) + curCol; |
1158 | 1158 | ||
1159 | // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl; | 1159 | // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl; |
1160 | 1160 | ||
1161 | if (event->doesFloat()) { | 1161 | if (event->doesFloat()) { |
1162 | if (event->recurrence()->doesRecur()) { | 1162 | if (event->recurrence()->doesRecur()) { |
1163 | mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol); | 1163 | if (event->isMultiDay() ) { |
1164 | endX = endX - beginX;// endX is now number of days | ||
1165 | if ( event->recursOn( currentDate ) ) { | ||
1166 | endX += curCol; | ||
1167 | beginX = curCol; | ||
1168 | mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); | ||
1169 | } else { | ||
1170 | //qDebug("days %d %s",endX , currentDate.toString().latin1()); | ||
1171 | QDate dateit = currentDate.addDays( -endX ); | ||
1172 | if ( event->recursOn( dateit ) ) { | ||
1173 | //qDebug("found %d %d %d %s", endX,curCol, curCol-endX ,dateit.toString().latin1() ); | ||
1174 | if ( curCol-endX < 0 ) { | ||
1175 | mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol); | ||
1176 | } | ||
1177 | } | ||
1178 | } | ||
1179 | } else { | ||
1180 | mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol); | ||
1181 | } | ||
1182 | #if 0 | ||
1183 | if (beginX <= 0 && curCol == 0) { | ||
1184 | mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); | ||
1185 | } else if (beginX == curCol) { | ||
1186 | mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); | ||
1187 | } else { | ||
1188 | qDebug("skipped %d %d %d ",beginX , endX, curCol); | ||
1189 | } | ||
1190 | #endif | ||
1191 | //mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol); | ||
1164 | } else { | 1192 | } else { |
1165 | if (beginX <= 0 && curCol == 0) { | 1193 | if (beginX <= 0 && curCol == 0) { |
1166 | mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); | 1194 | mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); |
1167 | } else if (beginX == curCol) { | 1195 | } else if (beginX == curCol) { |
1168 | mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); | 1196 | mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); |
1169 | } | 1197 | } |
1170 | } | 1198 | } |
1171 | } else if (event->isMultiDay()) { | 1199 | } else if (event->isMultiDay()) { |
1172 | if ( event->doesRecur () ) { | 1200 | if ( event->doesRecur () ) { |
1173 | QDate dateit = currentDate; | 1201 | QDate dateit = currentDate; |
1174 | int count = 0; | 1202 | int count = 0; |
1175 | int max = event->dtStart().daysTo( event->dtEnd() ) +2; | 1203 | int max = event->dtStart().daysTo( event->dtEnd() ) +2; |
1176 | while (! event->recursOn( dateit ) && count <= max ) { | 1204 | while (! event->recursOn( dateit ) && count <= max ) { |
1177 | ++count; | 1205 | ++count; |
1178 | dateit = dateit.addDays( -1 ); | 1206 | dateit = dateit.addDays( -1 ); |
1179 | } | 1207 | } |
1180 | bool ok; | 1208 | bool ok; |
1181 | QDateTime nextOcstart = event->getNextOccurence( QDateTime(dateit) ,&ok ); | 1209 | QDateTime nextOcstart = event->getNextOccurence( QDateTime(dateit) ,&ok ); |
1182 | if ( ok ) | 1210 | if ( ok ) |
1183 | { | 1211 | { |
1184 | int secs = event->dtStart().secsTo( event->dtEnd() ); | 1212 | int secs = event->dtStart().secsTo( event->dtEnd() ); |
1185 | QDateTime nextOcend =nextOcstart.addSecs( secs ); ; | 1213 | QDateTime nextOcend =nextOcstart.addSecs( secs ); ; |
1186 | beginX = currentDate.daysTo(nextOcstart.date()) + curCol; | 1214 | beginX = currentDate.daysTo(nextOcstart.date()) + curCol; |
1187 | endX = currentDate.daysTo(nextOcend.date()) + curCol; | 1215 | endX = currentDate.daysTo(nextOcend.date()) + curCol; |