summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-05 05:29:02 (UTC)
committer zautrix <zautrix>2005-07-05 05:29:02 (UTC)
commit5992ea9025ebddde8be72322c90aac8edeaf4d1c (patch) (unidiff)
treef0d9385d80fe74af453aa23fd69715d66aeaee12
parent671d832454c8b68e0bb44e439f28fb1c768e033d (diff)
downloadkdepimpi-5992ea9025ebddde8be72322c90aac8edeaf4d1c.zip
kdepimpi-5992ea9025ebddde8be72322c90aac8edeaf4d1c.tar.gz
kdepimpi-5992ea9025ebddde8be72322c90aac8edeaf4d1c.tar.bz2
rf
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagenda.cpp6
-rw-r--r--korganizer/koagendaitem.cpp11
-rw-r--r--korganizer/koagendaitem.h1
3 files changed, 15 insertions, 3 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index 01cef35..0280c74 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -1573,194 +1573,196 @@ QTime KOAgenda::gyToTime(int gy)
1573 int secondsPerCell = 24 * 60 * 60/ mRows; 1573 int secondsPerCell = 24 * 60 * 60/ mRows;
1574 1574
1575 int timeSeconds = secondsPerCell * gy; 1575 int timeSeconds = secondsPerCell * gy;
1576 1576
1577 QTime time( 0, 0, 0 ); 1577 QTime time( 0, 0, 0 );
1578 if ( timeSeconds < 24 * 60 * 60 ) { 1578 if ( timeSeconds < 24 * 60 * 60 ) {
1579 time = time.addSecs(timeSeconds); 1579 time = time.addSecs(timeSeconds);
1580 } else { 1580 } else {
1581 time.setHMS( 23, 59, 59 ); 1581 time.setHMS( 23, 59, 59 );
1582 } 1582 }
1583 1583
1584 return time; 1584 return time;
1585} 1585}
1586 1586
1587void KOAgenda::setStartHour(int startHour) 1587void KOAgenda::setStartHour(int startHour)
1588{ 1588{
1589 int startCell = startHour * mRows / 24; 1589 int startCell = startHour * mRows / 24;
1590 setContentsPos(0,startCell * gridSpacingY()); 1590 setContentsPos(0,startCell * gridSpacingY());
1591} 1591}
1592void KOAgenda::hideUnused() 1592void KOAgenda::hideUnused()
1593{ 1593{
1594 // experimental only 1594 // experimental only
1595 // return; 1595 // return;
1596 KOAgendaItem *item; 1596 KOAgendaItem *item;
1597 for ( item=mUnusedItems.first(); item != 0; item=mUnusedItems.next() ) { 1597 for ( item=mUnusedItems.first(); item != 0; item=mUnusedItems.next() ) {
1598 item->hide(); 1598 item->hide();
1599 } 1599 }
1600} 1600}
1601 1601
1602 1602
1603KOAgendaItem *KOAgenda::getNewItem(Incidence * event,QDate qd, QWidget* view) 1603KOAgendaItem *KOAgenda::getNewItem(Incidence * event,QDate qd, QWidget* view)
1604{ 1604{
1605 1605
1606 KOAgendaItem *fi; 1606 KOAgendaItem *fi;
1607 for ( fi=mUnusedItems.first(); fi != 0; fi=mUnusedItems.next() ) { 1607 for ( fi=mUnusedItems.first(); fi != 0; fi=mUnusedItems.next() ) {
1608 if ( fi->incidence() == event ) { 1608 if ( fi->incidence() == event ) {
1609 mUnusedItems.remove(); 1609 mUnusedItems.remove();
1610 fi->init( event, qd ); 1610 fi->init( event, qd );
1611 return fi; 1611 return fi;
1612 } 1612 }
1613 } 1613 }
1614 fi=mUnusedItems.first(); 1614 fi=mUnusedItems.first();
1615 if ( fi ) { 1615 if ( fi ) {
1616 mUnusedItems.remove(); 1616 mUnusedItems.remove();
1617 fi->init( event, qd ); 1617 fi->init( event, qd );
1618 return fi; 1618 return fi;
1619 } 1619 }
1620 // qDebug("new KOAgendaItem "); 1620 // qDebug("new KOAgendaItem ");
1621 1621
1622 KOAgendaItem* agendaItem = new KOAgendaItem( event, qd, view, mAllDayMode ); 1622 KOAgendaItem* agendaItem = new KOAgendaItem( event, qd, view, mAllDayMode );
1623 agendaItem->installEventFilter(this); 1623 agendaItem->installEventFilter(this);
1624 addChild(agendaItem,0,0); 1624 addChild(agendaItem,0,0);
1625 return agendaItem; 1625 return agendaItem;
1626} 1626}
1627KOAgendaItem * KOAgenda::getItemForTodo ( Todo * todo ) 1627KOAgendaItem * KOAgenda::getItemForTodo ( Todo * todo )
1628{ 1628{
1629 KOAgendaItem *item; 1629 KOAgendaItem *item;
1630 for ( item=mItems.first(); item != 0; item=mItems.next() ) { 1630 for ( item=mItems.first(); item != 0; item=mItems.next() ) {
1631 if ( item->incidence() == todo ) { 1631 if ( item->incidence() == todo ) {
1632 mItems.remove(); 1632 mItems.remove();
1633 return item; 1633 return item;
1634 } 1634 }
1635 } 1635 }
1636 return 0; 1636 return 0;
1637} 1637}
1638 1638
1639 1639
1640void KOAgenda::updateTodo( Todo * todo, int days, bool remove) 1640void KOAgenda::updateTodo( Todo * todo, int days, bool remove)
1641{ 1641{
1642 // ( todo->hasCompletedDate() && todo->completed().date() == currentDate )|| 1642 // ( todo->hasCompletedDate() && todo->completed().date() == currentDate )||
1643 KOAgendaItem *item; 1643 KOAgendaItem *item;
1644 item = getItemForTodo ( todo ); 1644 item = getItemForTodo ( todo );
1645 //qDebug("KOAgenda::updateTodo %d %d %d %d", this, todo, days, remove); 1645 //qDebug("KOAgenda::updateTodo %d %d %d %d", this, todo, days, remove);
1646 if ( item ) { 1646 if ( item ) {
1647 blockSignals( true ); 1647 blockSignals( true );
1648 //qDebug("item found "); 1648 //qDebug("item found ");
1649 item->hide(); 1649 item->hide();
1650 item->setCellX(-2, -1 ); 1650 item->setCellX(-2, -1 );
1651 item->select(false); 1651 item->select(false);
1652 mUnusedItems.append( item ); 1652 mUnusedItems.append( item );
1653 mItems.remove( item ); 1653 mItems.remove( item );
1654 QPtrList<KOAgendaItem> oldconflictItems = item->conflictItems(); 1654 QPtrList<KOAgendaItem> oldconflictItems = item->conflictItems();
1655 KOAgendaItem *itemit; 1655 KOAgendaItem *itemit;
1656 //globalFlagBlockAgendaItemPaint = 1; 1656 //globalFlagBlockAgendaItemPaint = 1;
1657 for ( itemit=oldconflictItems.first(); itemit != 0; 1657 for ( itemit=oldconflictItems.first(); itemit != 0;
1658 itemit=oldconflictItems.next() ) { 1658 itemit=oldconflictItems.next() ) {
1659 if ( itemit != item ) 1659 if ( itemit != item )
1660 placeSubCells(itemit); 1660 placeSubCells(itemit);
1661 } 1661 }
1662 qApp->processEvents(); 1662 qApp->processEvents();
1663 //globalFlagBlockAgendaItemPaint = 0; 1663 //globalFlagBlockAgendaItemPaint = 0;
1664 for ( itemit=oldconflictItems.first(); itemit != 0; 1664 for ( itemit=oldconflictItems.first(); itemit != 0;
1665 itemit=oldconflictItems.next() ) { 1665 itemit=oldconflictItems.next() ) {
1666 globalFlagBlockAgendaItemUpdate = 0; 1666 globalFlagBlockAgendaItemUpdate = 0;
1667 if ( itemit != item ) 1667 if ( itemit != item )
1668 itemit->repaintMe(); 1668 itemit->repaintMe();
1669 globalFlagBlockAgendaItemUpdate = 1; 1669 globalFlagBlockAgendaItemUpdate = 1;
1670 itemit->repaint(); 1670 //qDebug("sigleshot ");
1671 QTimer::singleShot( 0, itemit, SLOT ( repaintItem() ));
1672 //itemit->repaint( false ); repaintItem()
1671 } 1673 }
1672 blockSignals( false ); 1674 blockSignals( false );
1673 } 1675 }
1674 if ( remove ) { 1676 if ( remove ) {
1675 //qDebug("remove****************************************** "); 1677 //qDebug("remove****************************************** ");
1676 return; 1678 return;
1677 } 1679 }
1678 if ( todo->hasCompletedDate() && !KOPrefs::instance()->mShowCompletedTodoInAgenda ) 1680 if ( todo->hasCompletedDate() && !KOPrefs::instance()->mShowCompletedTodoInAgenda )
1679 return; 1681 return;
1680 //qDebug("updateTodo+++++++++++++++++++++++++++++++++++++ "); 1682 //qDebug("updateTodo+++++++++++++++++++++++++++++++++++++ ");
1681 QDate currentDate = QDate::currentDate(); 1683 QDate currentDate = QDate::currentDate();
1682 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < currentDate)&& ( KOPrefs::instance()->mShowTodoInAgenda ); 1684 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < currentDate)&& ( KOPrefs::instance()->mShowTodoInAgenda );
1683 QDateTime dt; 1685 QDateTime dt;
1684 if ( todo->hasCompletedDate() ) 1686 if ( todo->hasCompletedDate() )
1685 dt = todo->completed(); 1687 dt = todo->completed();
1686 else 1688 else
1687 dt = todo->dtDue(); 1689 dt = todo->dtDue();
1688 if ( overdue ) { 1690 if ( overdue ) {
1689 days += todo->dtDue().date().daysTo( currentDate ); 1691 days += todo->dtDue().date().daysTo( currentDate );
1690 } 1692 }
1691 else 1693 else
1692 currentDate = dt.date(); 1694 currentDate = dt.date();
1693 1695
1694 if (( todo->doesFloat() || overdue) && !todo->hasCompletedDate() ) { 1696 if (( todo->doesFloat() || overdue) && !todo->hasCompletedDate() ) {
1695 if ( ! mAllDayMode ) return; 1697 if ( ! mAllDayMode ) return;
1696 // aldayagenda 1698 // aldayagenda
1697 globalFlagBlockAgendaItemPaint = 1; 1699 globalFlagBlockAgendaItemPaint = 1;
1698 item = insertAllDayItem(todo, currentDate,days, days); 1700 item = insertAllDayItem(todo, currentDate,days, days);
1699 item->show(); 1701 item->show();
1700 1702
1701 } 1703 }
1702 else { 1704 else {
1703 if ( mAllDayMode ) return; 1705 if ( mAllDayMode ) return;
1704 // mAgenda 1706 // mAgenda
1705 globalFlagBlockAgendaItemPaint = 1; 1707 globalFlagBlockAgendaItemPaint = 1;
1706 int endY = timeToY(dt.time()) - 1; 1708 int endY = timeToY(dt.time()) - 1;
1707 int hi = 12/KOPrefs::instance()->mHourSize; 1709 int hi = 12/KOPrefs::instance()->mHourSize;
1708 int startY = endY - 1-hi; 1710 int startY = endY - 1-hi;
1709 item = insertItem(todo,currentDate,days,startY,endY); 1711 item = insertItem(todo,currentDate,days,startY,endY);
1710 item->show(); 1712 item->show();
1711 } 1713 }
1712 qApp->processEvents(); 1714 qApp->processEvents();
1713 globalFlagBlockAgendaItemPaint = 0; 1715 globalFlagBlockAgendaItemPaint = 0;
1714 QPtrList<KOAgendaItem> oldconflictItems = item->conflictItems(); 1716 QPtrList<KOAgendaItem> oldconflictItems = item->conflictItems();
1715 KOAgendaItem *itemit; 1717 KOAgendaItem *itemit;
1716 for ( itemit=oldconflictItems.first(); itemit != 0; 1718 for ( itemit=oldconflictItems.first(); itemit != 0;
1717 itemit=oldconflictItems.next() ) { 1719 itemit=oldconflictItems.next() ) {
1718 globalFlagBlockAgendaItemUpdate = 0; 1720 globalFlagBlockAgendaItemUpdate = 0;
1719 itemit->repaintMe(); 1721 itemit->repaintMe();
1720 globalFlagBlockAgendaItemUpdate = 1; 1722 globalFlagBlockAgendaItemUpdate = 1;
1721 itemit->repaint(); 1723 itemit->repaint();
1722 } 1724 }
1723 globalFlagBlockAgendaItemUpdate = 0; 1725 globalFlagBlockAgendaItemUpdate = 0;
1724 item->repaintMe(); 1726 item->repaintMe();
1725 globalFlagBlockAgendaItemUpdate = 1; 1727 globalFlagBlockAgendaItemUpdate = 1;
1726 item->repaint(); 1728 item->repaint();
1727} 1729}
1728/* 1730/*
1729 Insert KOAgendaItem into agenda. 1731 Insert KOAgendaItem into agenda.
1730*/ 1732*/
1731KOAgendaItem *KOAgenda::insertItem (Incidence *event,QDate qd,int X,int YTop,int YBottom) 1733KOAgendaItem *KOAgenda::insertItem (Incidence *event,QDate qd,int X,int YTop,int YBottom)
1732{ 1734{
1733 if (mAllDayMode) { 1735 if (mAllDayMode) {
1734 qDebug("KOAgenda: calling insertItem in all-day mode is illegal. "); 1736 qDebug("KOAgenda: calling insertItem in all-day mode is illegal. ");
1735 return 0; 1737 return 0;
1736 } 1738 }
1737 1739
1738 KOAgendaItem *agendaItem = getNewItem(event,qd,viewport()); 1740 KOAgendaItem *agendaItem = getNewItem(event,qd,viewport());
1739 //agendaItem->setFrameStyle(WinPanel|Raised); 1741 //agendaItem->setFrameStyle(WinPanel|Raised);
1740 1742
1741 int YSize = YBottom - YTop + 1; 1743 int YSize = YBottom - YTop + 1;
1742 if (YSize < 0) { 1744 if (YSize < 0) {
1743 YSize = 1; 1745 YSize = 1;
1744 } 1746 }
1745 int iheight = mGridSpacingY * YSize; 1747 int iheight = mGridSpacingY * YSize;
1746 1748
1747 agendaItem->resize(mGridSpacingX,iheight ); 1749 agendaItem->resize(mGridSpacingX,iheight );
1748 agendaItem->setCellXY(X,YTop,YBottom); 1750 agendaItem->setCellXY(X,YTop,YBottom);
1749 agendaItem->setCellXWidth(X); 1751 agendaItem->setCellXWidth(X);
1750 1752
1751 //addChild(agendaItem,X*mGridSpacingX,YTop*mGridSpacingY); 1753 //addChild(agendaItem,X*mGridSpacingX,YTop*mGridSpacingY);
1752 mItems.append(agendaItem); 1754 mItems.append(agendaItem);
1753 1755
1754 placeSubCells(agendaItem); 1756 placeSubCells(agendaItem);
1755 1757
1756 //agendaItem->show(); 1758 //agendaItem->show();
1757 1759
1758 marcus_bains(); 1760 marcus_bains();
1759 1761
1760 return agendaItem; 1762 return agendaItem;
1761} 1763}
1762 1764
1763 1765
1764/* 1766/*
1765 Insert all-day KOAgendaItem into agenda. 1767 Insert all-day KOAgendaItem into agenda.
1766*/ 1768*/
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp
index f855b03..8675ff6 100644
--- a/korganizer/koagendaitem.cpp
+++ b/korganizer/koagendaitem.cpp
@@ -399,199 +399,208 @@ void KOAgendaItem::paintMe( bool selected, QPainter* paint )
399 399
400 } 400 }
401 } 401 }
402 bool addIcon = false; 402 bool addIcon = false;
403 if ( ! small || w > 3 * h || h > 3* w ) 403 if ( ! small || w > 3 * h || h > 3* w )
404 addIcon = updateIcons( paint, horLayout ); 404 addIcon = updateIcons( paint, horLayout );
405 405
406 //qDrawShadePanel (paint, x, yy, w, h, mColorGroup, selected , 2, 0); 406 //qDrawShadePanel (paint, x, yy, w, h, mColorGroup, selected , 2, 0);
407 qDrawWinPanel (paint, x, yy, w, h, mColorGroup, selected ,0); 407 qDrawWinPanel (paint, x, yy, w, h, mColorGroup, selected ,0);
408 //qDebug("draw rect %d %d %d %d ",x, yy, w, h ); 408 //qDebug("draw rect %d %d %d %d ",x, yy, w, h );
409 if ( ! small ) { 409 if ( ! small ) {
410 x += 3; yy += 3;w -= 6; h-= 5; 410 x += 3; yy += 3;w -= 6; h-= 5;
411 } else { 411 } else {
412 x += 2; yy += 1;w -= 4; h-= 4; 412 x += 2; yy += 1;w -= 4; h-= 4;
413 if ( nfh < 6.01 ) { 413 if ( nfh < 6.01 ) {
414 yy -= 2; 414 yy -= 2;
415 h += 4; 415 h += 4;
416 } 416 }
417 else 417 else
418 if ( nfh < h -2 ) 418 if ( nfh < h -2 )
419 ++yy; 419 ++yy;
420 } 420 }
421 int align; 421 int align;
422#ifndef DESKTOP_VERSION 422#ifndef DESKTOP_VERSION
423 align = ( AlignLeft|WordBreak|AlignTop); 423 align = ( AlignLeft|WordBreak|AlignTop);
424#else 424#else
425 align = ( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 425 align = ( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
426#endif 426#endif
427 if ( addIcon ) { 427 if ( addIcon ) {
428 if ( ! horLayout ) { 428 if ( ! horLayout ) {
429 x += AGENDA_ICON_SIZE+3; 429 x += AGENDA_ICON_SIZE+3;
430 w -= (AGENDA_ICON_SIZE+3); 430 w -= (AGENDA_ICON_SIZE+3);
431 } 431 }
432 else { 432 else {
433 yy+= AGENDA_ICON_SIZE+2; 433 yy+= AGENDA_ICON_SIZE+2;
434 h -=(AGENDA_ICON_SIZE+3); 434 h -=(AGENDA_ICON_SIZE+3);
435 } 435 }
436 } 436 }
437 if ( mWhiteText ) 437 if ( mWhiteText )
438 paint->setPen ( white); 438 paint->setPen ( white);
439 if ( x < 0 ) { 439 if ( x < 0 ) {
440 w = w+x-3; 440 w = w+x-3;
441 x = 3; 441 x = 3;
442 if ( !horLayout && addIcon ) 442 if ( !horLayout && addIcon )
443 x += AGENDA_ICON_SIZE+3; 443 x += AGENDA_ICON_SIZE+3;
444 if ( w > parentWidget()->width() ){ 444 if ( w > parentWidget()->width() ){
445 w = parentWidget()->width() - 6; 445 w = parentWidget()->width() - 6;
446#ifndef DESKTOP_VERSION 446#ifndef DESKTOP_VERSION
447 align = ( AlignHCenter|WordBreak|AlignTop); 447 align = ( AlignHCenter|WordBreak|AlignTop);
448#else 448#else
449 align = ( AlignHCenter|BreakAnywhere|WordBreak|AlignTop); 449 align = ( AlignHCenter|BreakAnywhere|WordBreak|AlignTop);
450#endif 450#endif
451 451
452 } 452 }
453 } 453 }
454 QRect dr; 454 QRect dr;
455 if ( w + x > parentWidget()->width() ) 455 if ( w + x > parentWidget()->width() )
456 w = parentWidget()->width()-x; 456 w = parentWidget()->width()-x;
457 paint->drawText ( x, yy, w, h, align, mDisplayedText, -1, &dr ); 457 paint->drawText ( x, yy, w, h, align, mDisplayedText, -1, &dr );
458 //qDebug("%d %d %d %d ", x, yy, w, h ); 458 //qDebug("%d %d %d %d ", x, yy, w, h );
459 if ( mIncidence->cancelled() ){ 459 if ( mIncidence->cancelled() ){
460 460
461 461
462 small = ( height() < 20 ); 462 small = ( height() < 20 );
463 463
464 if ( ! small ) { 464 if ( ! small ) {
465 QFontMetrics fm ( paint->font() ); 465 QFontMetrics fm ( paint->font() );
466 paint->drawLine(dr.left(), yy+fm.height()/2, dr.right()-2, yy+fm.height()/2); 466 paint->drawLine(dr.left(), yy+fm.height()/2, dr.right()-2, yy+fm.height()/2);
467 } 467 }
468 468
469 } 469 }
470 pa.end(); 470 pa.end();
471 471
472} 472}
473 473
474QPixmap * KOAgendaItem::paintPix() 474QPixmap * KOAgendaItem::paintPix()
475{ 475{
476 static QPixmap* mPaintPix = 0; 476 static QPixmap* mPaintPix = 0;
477 if ( ! mPaintPix ) { 477 if ( ! mPaintPix ) {
478 int w = QApplication::desktop()->width(); 478 int w = QApplication::desktop()->width();
479 int h = QApplication::desktop()->height(); 479 int h = QApplication::desktop()->height();
480 mPaintPix = new QPixmap(w,h); 480 mPaintPix = new QPixmap(w,h);
481 } 481 }
482 return mPaintPix ; 482 return mPaintPix ;
483} 483}
484QPixmap * KOAgendaItem::paintPixAllday() 484QPixmap * KOAgendaItem::paintPixAllday()
485{ 485{
486 static QPixmap* mPaintPixA = 0; 486 static QPixmap* mPaintPixA = 0;
487 if ( ! mPaintPixA ) { 487 if ( ! mPaintPixA ) {
488 int w = QApplication::desktop()->width(); 488 int w = QApplication::desktop()->width();
489 int h = QApplication::desktop()->height()/5; 489 int h = QApplication::desktop()->height()/5;
490 mPaintPixA = new QPixmap(w,h); 490 mPaintPixA = new QPixmap(w,h);
491 } 491 }
492 return mPaintPixA ; 492 return mPaintPixA ;
493} 493}
494 494
495void KOAgendaItem::repaintItem()
496{
497 globalFlagBlockAgendaItemPaint = 0;
498 globalFlagBlockAgenda = 0;
499 //qDebug("AAA ");
500 repaint( false );
501 //qDebug("BBB ");
502}
495void KOAgendaItem::paintEvent ( QPaintEvent *e ) 503void KOAgendaItem::paintEvent ( QPaintEvent *e )
496{ 504{
497 505 qDebug("CCC ");
498 if ( globalFlagBlockAgendaItemPaint ) 506 if ( globalFlagBlockAgendaItemPaint )
499 return; 507 return;
500 if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 ) 508 if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 )
501 return; 509 return;
510 qDebug("DDD ");
502 int yy; 511 int yy;
503 if ( mAllDay ) 512 if ( mAllDay )
504 yy = y(); 513 yy = y();
505 else 514 else
506 yy = mCellYTop * ( height() / cellHeight() ); 515 yy = mCellYTop * ( height() / cellHeight() );
507 int xx = x(); 516 int xx = x();
508 517
509 if ( xPaintCoord != xx || yPaintCoord != yy || 518 if ( xPaintCoord != xx || yPaintCoord != yy ||
510 wPaintCoord != width() || hPaintCoord != height()) { 519 wPaintCoord != width() || hPaintCoord != height()) {
511 xPaintCoord= xx; 520 xPaintCoord= xx;
512 yPaintCoord = yy; 521 yPaintCoord = yy;
513 wPaintCoord = width(); 522 wPaintCoord = width();
514 hPaintCoord = height(); 523 hPaintCoord = height();
515 globalFlagBlockAgendaItemUpdate = 0; 524 globalFlagBlockAgendaItemUpdate = 0;
516 paintMe( mSelected ); 525 paintMe( mSelected );
517 //qDebug("calling paintMe "); 526 //qDebug("calling paintMe ");
518 globalFlagBlockAgendaItemUpdate = 1; 527 globalFlagBlockAgendaItemUpdate = 1;
519 if ( mSelected ) 528 if ( mSelected )
520 return; 529 return;
521 } 530 }
522 int rx, ry, rw, rh; 531 int rx, ry, rw, rh;
523 rx = e->rect().x(); 532 rx = e->rect().x();
524 ry = e->rect().y(); 533 ry = e->rect().y();
525 rw = e->rect().width(); 534 rw = e->rect().width();
526 rh = e->rect().height(); 535 rh = e->rect().height();
527 //qDebug(" paintevent %s %d %d %d %d", mIncidence->summary().latin1(), x(), yy, width(), height()); 536 //qDebug(" paintevent %s %d %d %d %d", mIncidence->summary().latin1(), x(), yy, width(), height());
528 537
529 QPixmap* paintFrom ; 538 QPixmap* paintFrom ;
530 if ( mSelected ) { 539 if ( mSelected ) {
531 paintMe( mSelected ); 540 paintMe( mSelected );
532 return; 541 return;
533 } else { 542 } else {
534 if ( mAllDay ) 543 if ( mAllDay )
535 paintFrom = paintPixAllday(); 544 paintFrom = paintPixAllday();
536 else 545 else
537 paintFrom = paintPix(); 546 paintFrom = paintPix();
538 } 547 }
539 xx += rx; 548 xx += rx;
540 549
541 if ( xx < 0 ) { 550 if ( xx < 0 ) {
542 rw = rw + xx; 551 rw = rw + xx;
543 rx -= xx; 552 rx -= xx;
544 xx = 0; 553 xx = 0;
545 if ( rw <= 1 ) { 554 if ( rw <= 1 ) {
546 //qDebug("KOAgendaItem::Width1 <= 1 (%d). Returning. %s",rw,mDisplayedText.latin1()); 555 //qDebug("KOAgendaItem::Width1 <= 1 (%d). Returning. %s",rw,mDisplayedText.latin1());
547 return; 556 return;
548 } 557 }
549 } 558 }
550 if ( paintFrom->width() < xx+rw ) { 559 if ( paintFrom->width() < xx+rw ) {
551 rw = paintFrom->width() - xx; 560 rw = paintFrom->width() - xx;
552 if ( rw <= 1 ) { 561 if ( rw <= 1 ) {
553 //qDebug("KOAgendaItem::Width2 <= 1 (%d). Returning.%s ",rw,mDisplayedText.latin1() ); 562 //qDebug("KOAgendaItem::Width2 <= 1 (%d). Returning.%s ",rw,mDisplayedText.latin1() );
554 return; 563 return;
555 } 564 }
556 } 565 }
557 //qDebug("%d %d %d %d %d %d %d",rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh); 566 //qDebug("%d %d %d %d %d %d %d",rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh);
558 bitBlt (this, rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh ,CopyROP); 567 bitBlt (this, rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh ,CopyROP);
559} 568}
560void KOAgendaItem::computeText() 569void KOAgendaItem::computeText()
561{ 570{
562 mDisplayedText = mIncidence->summary(); 571 mDisplayedText = mIncidence->summary();
563 if ( (mIncidence->typeID() == todoID ) ) { 572 if ( (mIncidence->typeID() == todoID ) ) {
564 if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) { 573 if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) {
565 if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) 574 if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() )
566 mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")"; 575 mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")";
567 else if ( !(mIncidence->doesFloat())) 576 else if ( !(mIncidence->doesFloat()))
568 mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")"; 577 mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")";
569 } 578 }
570 } else { 579 } else {
571 if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda) 580 if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda)
572 mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + " - " + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ; 581 mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + " - " + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ;
573 582
574 if ( mAllDay ) { 583 if ( mAllDay ) {
575 if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) { 584 if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) {
576 if ( mIncidence->doesRecur() ) { 585 if ( mIncidence->doesRecur() ) {
577 mDisplayedText += " (" + mIncidence->recurrence()->recurrenceText() + ")"; 586 mDisplayedText += " (" + mIncidence->recurrence()->recurrenceText() + ")";
578 } else { 587 } else {
579 mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ; 588 mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ;
580 } 589 }
581 } 590 }
582 } 591 }
583 } 592 }
584 593
585 if ( !mIncidence->location().isEmpty() ) { 594 if ( !mIncidence->location().isEmpty() ) {
586 if ( mAllDay ) 595 if ( mAllDay )
587 mDisplayedText += " ("; 596 mDisplayedText += " (";
588 else 597 else
589 mDisplayedText += "\n("; 598 mDisplayedText += "\n(";
590 mDisplayedText += mIncidence->location() +")"; 599 mDisplayedText += mIncidence->location() +")";
591 } 600 }
592#ifdef DESKTOP_VERSION 601#ifdef DESKTOP_VERSION
593 QString tipText = mIncidence->summary(); 602 QString tipText = mIncidence->summary();
594 if ( !mIncidence->doesFloat() ) { 603 if ( !mIncidence->doesFloat() ) {
595 if ( mIncidence->typeID() == eventID ) { 604 if ( mIncidence->typeID() == eventID ) {
596 if ( (static_cast<Event*>(mIncidence))->isMultiDay() ) { 605 if ( (static_cast<Event*>(mIncidence))->isMultiDay() ) {
597 tipText += "\n"+i18n("From: ")+mIncidence->dtStartStr(); 606 tipText += "\n"+i18n("From: ")+mIncidence->dtStartStr();
diff --git a/korganizer/koagendaitem.h b/korganizer/koagendaitem.h
index 3ed68b0..99c564a 100644
--- a/korganizer/koagendaitem.h
+++ b/korganizer/koagendaitem.h
@@ -18,147 +18,148 @@
18*/ 18*/
19#ifndef KOAGENDAITEM_H 19#ifndef KOAGENDAITEM_H
20#define KOAGENDAITEM_H 20#define KOAGENDAITEM_H
21 21
22#include <qframe.h> 22#include <qframe.h>
23#include <qlabel.h> 23#include <qlabel.h>
24#include <qpixmap.h> 24#include <qpixmap.h>
25#include <qdatetime.h> 25#include <qdatetime.h>
26#include <qpalette.h> 26#include <qpalette.h>
27 27
28#include <libkcal/incidence.h> 28#include <libkcal/incidence.h>
29 29
30class KOAgendaItemWhatsThis; 30class KOAgendaItemWhatsThis;
31class QToolTipGroup; 31class QToolTipGroup;
32class QDragEnterEvent; 32class QDragEnterEvent;
33class QDropEvent; 33class QDropEvent;
34 34
35using namespace KCal; 35using namespace KCal;
36 36
37/* 37/*
38 The KOAgendaItem has to make sure that it receives all mouse events, which are 38 The KOAgendaItem has to make sure that it receives all mouse events, which are
39 to be used for dragging and resizing. That means it has to be installed as 39 to be used for dragging and resizing. That means it has to be installed as
40 eventfiler for its children, if it has children, and it has to pass mouse 40 eventfiler for its children, if it has children, and it has to pass mouse
41 events from the cildren to itself. See eventFilter(). 41 events from the cildren to itself. See eventFilter().
42*/ 42*/
43class KOAgendaItem : public QWidget 43class KOAgendaItem : public QWidget
44{ 44{
45 Q_OBJECT 45 Q_OBJECT
46 public: 46 public:
47 KOAgendaItem(Incidence *incidence, QDate qd, QWidget *parent, bool allday, const char *name=0, 47 KOAgendaItem(Incidence *incidence, QDate qd, QWidget *parent, bool allday, const char *name=0,
48 WFlags f=0 ); 48 WFlags f=0 );
49 ~KOAgendaItem(); 49 ~KOAgendaItem();
50 QString getWhatsThisText(); 50 QString getWhatsThisText();
51 void init ( Incidence *incidence, QDate qd ); 51 void init ( Incidence *incidence, QDate qd );
52 int cellX() { return mCellX; } 52 int cellX() { return mCellX; }
53 int cellXWidth() { return mCellXWidth; } 53 int cellXWidth() { return mCellXWidth; }
54 int cellYTop() { return mCellYTop; } 54 int cellYTop() { return mCellYTop; }
55 int cellYBottom() { return mCellYBottom; } 55 int cellYBottom() { return mCellYBottom; }
56 int cellHeight(); 56 int cellHeight();
57 int cellWidth(); 57 int cellWidth();
58 int subCell() { return mSubCell; } 58 int subCell() { return mSubCell; }
59 int subCells() { return mSubCells; } 59 int subCells() { return mSubCells; }
60 60
61 void setCellXY(int X, int YTop, int YBottom); 61 void setCellXY(int X, int YTop, int YBottom);
62 void setCellY(int YTop, int YBottom); 62 void setCellY(int YTop, int YBottom);
63 void setCellX(int XLeft, int XRight); 63 void setCellX(int XLeft, int XRight);
64 void setCellXWidth(int xwidth); 64 void setCellXWidth(int xwidth);
65 void setSubCell(int subCell); 65 void setSubCell(int subCell);
66 void setSubCells(int subCells); 66 void setSubCells(int subCells);
67 67
68 /** Start movement */ 68 /** Start movement */
69 void startMove(); 69 void startMove();
70 /** Reset to original values */ 70 /** Reset to original values */
71 void resetMove(); 71 void resetMove();
72 72
73 void moveRelative(int dx,int dy); 73 void moveRelative(int dx,int dy);
74 void expandTop(int dy); 74 void expandTop(int dy);
75 void expandBottom(int dy); 75 void expandBottom(int dy);
76 void expandLeft(int dx); 76 void expandLeft(int dx);
77 void expandRight(int dx); 77 void expandRight(int dx);
78 int mLastMoveXPos; 78 int mLastMoveXPos;
79 79
80 void setMultiItem(KOAgendaItem *first,KOAgendaItem *next, 80 void setMultiItem(KOAgendaItem *first,KOAgendaItem *next,
81 KOAgendaItem *last); 81 KOAgendaItem *last);
82 KOAgendaItem *firstMultiItem() { return mFirstMultiItem; } 82 KOAgendaItem *firstMultiItem() { return mFirstMultiItem; }
83 KOAgendaItem *nextMultiItem() { return mNextMultiItem; } 83 KOAgendaItem *nextMultiItem() { return mNextMultiItem; }
84 KOAgendaItem *lastMultiItem() { return mLastMultiItem; } 84 KOAgendaItem *lastMultiItem() { return mLastMultiItem; }
85 85
86 Incidence *incidence() const { return mIncidence; } 86 Incidence *incidence() const { return mIncidence; }
87 QDate itemDate() { return mDate; } 87 QDate itemDate() { return mDate; }
88 88
89 /** Update the date of this item's occurence (not in the event) */ 89 /** Update the date of this item's occurence (not in the event) */
90 void setItemDate(QDate qd); 90 void setItemDate(QDate qd);
91 91
92 void setText ( const QString & text ) { mDisplayedText = text; } 92 void setText ( const QString & text ) { mDisplayedText = text; }
93 QString text () { return mDisplayedText; } 93 QString text () { return mDisplayedText; }
94 94
95 virtual bool eventFilter ( QObject *, QEvent * ); 95 virtual bool eventFilter ( QObject *, QEvent * );
96 96
97 static QToolTipGroup *toolTipGroup(); 97 static QToolTipGroup *toolTipGroup();
98 98
99 QPtrList<KOAgendaItem> conflictItems(); 99 QPtrList<KOAgendaItem> conflictItems();
100 void setConflictItems(QPtrList<KOAgendaItem>); 100 void setConflictItems(QPtrList<KOAgendaItem>);
101 void addConflictItem(KOAgendaItem *ci); 101 void addConflictItem(KOAgendaItem *ci);
102 void paintMe( bool, QPainter* painter = 0 ); 102 void paintMe( bool, QPainter* painter = 0 );
103 void repaintMe(); 103 void repaintMe();
104 static QPixmap * paintPix(); 104 static QPixmap * paintPix();
105 static QPixmap * paintPixAllday(); 105 static QPixmap * paintPixAllday();
106 void updateItem(); 106 void updateItem();
107 void computeText(); 107 void computeText();
108 void recreateIncidence(); 108 void recreateIncidence();
109 bool checkLayout(); 109 bool checkLayout();
110 void initColor (); 110 void initColor ();
111 public slots: 111 public slots:
112 bool updateIcons( QPainter *, bool ); 112 bool updateIcons( QPainter *, bool );
113 void select(bool=true); 113 void select(bool=true);
114 void repaintItem();
114 115
115 protected: 116 protected:
116 void dragEnterEvent(QDragEnterEvent *e); 117 void dragEnterEvent(QDragEnterEvent *e);
117 void dropEvent(QDropEvent *e); 118 void dropEvent(QDropEvent *e);
118 void paintEvent ( QPaintEvent * ); 119 void paintEvent ( QPaintEvent * );
119 void resizeEvent ( QResizeEvent *ev ); 120 void resizeEvent ( QResizeEvent *ev );
120 121
121 private: 122 private:
122 KOAgendaItemWhatsThis* mKOAgendaItemWhatsThis; 123 KOAgendaItemWhatsThis* mKOAgendaItemWhatsThis;
123 bool mAllDay; 124 bool mAllDay;
124 bool mWhiteText; 125 bool mWhiteText;
125 int mCellX; 126 int mCellX;
126 int mCellXWidth; 127 int mCellXWidth;
127 int mCellYTop,mCellYBottom; 128 int mCellYTop,mCellYBottom;
128 int mSubCell; // subcell number of this item 129 int mSubCell; // subcell number of this item
129 int mSubCells; // Total number of subcells in cell of this item 130 int mSubCells; // Total number of subcells in cell of this item
130 int xPaintCoord; 131 int xPaintCoord;
131 int yPaintCoord; 132 int yPaintCoord;
132 int wPaintCoord; 133 int wPaintCoord;
133 int hPaintCoord; 134 int hPaintCoord;
134 // Variables to remember start position 135 // Variables to remember start position
135 int mStartCellX; 136 int mStartCellX;
136 int mStartCellXWidth; 137 int mStartCellXWidth;
137 int mStartCellYTop,mStartCellYBottom; 138 int mStartCellYTop,mStartCellYBottom;
138 int mLastMovePos; 139 int mLastMovePos;
139 140
140 // Multi item pointers 141 // Multi item pointers
141 KOAgendaItem *mFirstMultiItem; 142 KOAgendaItem *mFirstMultiItem;
142 KOAgendaItem *mNextMultiItem; 143 KOAgendaItem *mNextMultiItem;
143 KOAgendaItem *mLastMultiItem; 144 KOAgendaItem *mLastMultiItem;
144 145
145 int mFontPixelSize; 146 int mFontPixelSize;
146 Incidence *mIncidence; // corresponding event or todo 147 Incidence *mIncidence; // corresponding event or todo
147 QDate mDate; //date this events occurs (for recurrence) 148 QDate mDate; //date this events occurs (for recurrence)
148 //void showIcon( QLabel*, int ); 149 //void showIcon( QLabel*, int );
149 //QLabel *mTodoIconLabel; 150 //QLabel *mTodoIconLabel;
150 //QLabel *mItemLabel; 151 //QLabel *mItemLabel;
151 //QWidget *mIconBox; 152 //QWidget *mIconBox;
152 //QLabel *mIconAlarm,*mIconRecur,*mIconReadonly; 153 //QLabel *mIconAlarm,*mIconRecur,*mIconReadonly;
153 //QLabel *mIconReply,*mIconGroup,*mIconOrganizer; 154 //QLabel *mIconReply,*mIconGroup,*mIconOrganizer;
154 //QLabel *mIconMoreInfo; 155 //QLabel *mIconMoreInfo;
155 static QToolTipGroup *mToolTipGroup; 156 static QToolTipGroup *mToolTipGroup;
156 157
157 QColor mBackgroundColor; 158 QColor mBackgroundColor;
158 QColorGroup mColorGroup; 159 QColorGroup mColorGroup;
159 QString mDisplayedText; 160 QString mDisplayedText;
160 bool mSelected; 161 bool mSelected;
161 QPtrList<KOAgendaItem> mConflictItems; 162 QPtrList<KOAgendaItem> mConflictItems;
162}; 163};
163 164
164#endif // KOAGENDAITEM_H 165#endif // KOAGENDAITEM_H