summaryrefslogtreecommitdiffabout
Unidiff
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
@@ -1541,258 +1541,260 @@ void KOAgenda::contentsToGrid (int x, int y, int& gx, int& gy)
1541 1541
1542/* 1542/*
1543 Convert agenda grid coordinates to scrollview contents coordinates. 1543 Convert agenda grid coordinates to scrollview contents coordinates.
1544*/ 1544*/
1545void KOAgenda::gridToContents (int gx, int gy, int& x, int& y) 1545void KOAgenda::gridToContents (int gx, int gy, int& x, int& y)
1546{ 1546{
1547 x = KOGlobals::self()->reverseLayout() ? (mColumns - 1 - gx)*mGridSpacingX: 1547 x = KOGlobals::self()->reverseLayout() ? (mColumns - 1 - gx)*mGridSpacingX:
1548 gx*mGridSpacingX; 1548 gx*mGridSpacingX;
1549 y = gy*mGridSpacingY; 1549 y = gy*mGridSpacingY;
1550} 1550}
1551 1551
1552 1552
1553/* 1553/*
1554 Return Y coordinate corresponding to time. Coordinates are rounded to fit into 1554 Return Y coordinate corresponding to time. Coordinates are rounded to fit into
1555 the grid. 1555 the grid.
1556*/ 1556*/
1557int KOAgenda::timeToY(const QTime &time) 1557int KOAgenda::timeToY(const QTime &time)
1558{ 1558{
1559 int minutesPerCell = 24 * 60 / mRows; 1559 int minutesPerCell = 24 * 60 / mRows;
1560 int timeMinutes = time.hour() * 60 + time.minute(); 1560 int timeMinutes = time.hour() * 60 + time.minute();
1561 int Y = (timeMinutes + (minutesPerCell / 2)) / minutesPerCell; 1561 int Y = (timeMinutes + (minutesPerCell / 2)) / minutesPerCell;
1562 return Y; 1562 return Y;
1563} 1563}
1564 1564
1565 1565
1566/* 1566/*
1567 Return time corresponding to cell y coordinate. Coordinates are rounded to 1567 Return time corresponding to cell y coordinate. Coordinates are rounded to
1568 fit into the grid. 1568 fit into the grid.
1569*/ 1569*/
1570QTime KOAgenda::gyToTime(int gy) 1570QTime KOAgenda::gyToTime(int gy)
1571{ 1571{
1572 1572
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*/
1767KOAgendaItem *KOAgenda::insertAllDayItem (Incidence *event,QDate qd,int XBegin,int XEnd) 1769KOAgendaItem *KOAgenda::insertAllDayItem (Incidence *event,QDate qd,int XBegin,int XEnd)
1768{ 1770{
1769 if (!mAllDayMode) { 1771 if (!mAllDayMode) {
1770 return 0; 1772 return 0;
1771 } 1773 }
1772 1774
1773 KOAgendaItem *agendaItem = getNewItem(event,qd,viewport()); 1775 KOAgendaItem *agendaItem = getNewItem(event,qd,viewport());
1774 1776
1775 agendaItem->setCellXY(XBegin,0,0); 1777 agendaItem->setCellXY(XBegin,0,0);
1776 agendaItem->setCellXWidth(XEnd); 1778 agendaItem->setCellXWidth(XEnd);
1777 agendaItem->resize(mGridSpacingX * agendaItem->cellWidth(),mGridSpacingY); 1779 agendaItem->resize(mGridSpacingX * agendaItem->cellWidth(),mGridSpacingY);
1778 1780
1779 //addChild(agendaItem,XBegin*mGridSpacingX,0); 1781 //addChild(agendaItem,XBegin*mGridSpacingX,0);
1780 mItems.append(agendaItem); 1782 mItems.append(agendaItem);
1781 1783
1782 placeSubCells(agendaItem); 1784 placeSubCells(agendaItem);
1783 1785
1784 //agendaItem->show(); 1786 //agendaItem->show();
1785 1787
1786 return agendaItem; 1788 return agendaItem;
1787} 1789}
1788 1790
1789 1791
1790void KOAgenda::insertMultiItem (Event *event,QDate qd,int XBegin,int XEnd, 1792void KOAgenda::insertMultiItem (Event *event,QDate qd,int XBegin,int XEnd,
1791 int YTop,int YBottom) 1793 int YTop,int YBottom)
1792{ 1794{
1793 if (mAllDayMode) { 1795 if (mAllDayMode) {
1794 ; 1796 ;
1795 return; 1797 return;
1796 } 1798 }
1797 1799
1798 int cellX,cellYTop,cellYBottom; 1800 int cellX,cellYTop,cellYBottom;
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp
index f855b03..8675ff6 100644
--- a/korganizer/koagendaitem.cpp
+++ b/korganizer/koagendaitem.cpp
@@ -367,263 +367,272 @@ void KOAgendaItem::paintMe( bool selected, QPainter* paint )
367 hPaintCoord = height(); 367 hPaintCoord = height();
368 //qDebug("paintMe %s %d %d %d %d",incidence()->summary().latin1(), x, yy, width(), height()); 368 //qDebug("paintMe %s %d %d %d %d",incidence()->summary().latin1(), x, yy, width(), height());
369 if ( paint == 0 ) 369 if ( paint == 0 )
370 paint = &pa; 370 paint = &pa;
371 bool horLayout = ( w < h ); 371 bool horLayout = ( w < h );
372 int maxhei = mFontPixelSize+4; 372 int maxhei = mFontPixelSize+4;
373 if ( horLayout ) 373 if ( horLayout )
374 maxhei += AGENDA_ICON_SIZE -4; 374 maxhei += AGENDA_ICON_SIZE -4;
375 bool small = ( h < maxhei ); 375 bool small = ( h < maxhei );
376 if ( ! small ) 376 if ( ! small )
377 paint->setFont(KOPrefs::instance()->mAgendaViewFont); 377 paint->setFont(KOPrefs::instance()->mAgendaViewFont);
378 else { 378 else {
379 QFont f = KOPrefs::instance()->mAgendaViewFont; 379 QFont f = KOPrefs::instance()->mAgendaViewFont;
380 f.setBold( false ); 380 f.setBold( false );
381 int fh = f.pointSize(); 381 int fh = f.pointSize();
382 nfh = (((float)height())/(float)(mFontPixelSize+4))*fh; 382 nfh = (((float)height())/(float)(mFontPixelSize+4))*fh;
383 if ( nfh < 6 ) 383 if ( nfh < 6 )
384 nfh = 6; 384 nfh = 6;
385 f.setPointSize( nfh ); 385 f.setPointSize( nfh );
386 paint->setFont(f); 386 paint->setFont(f);
387 } 387 }
388 paint->fillRect ( x, yy, w, h, mBackgroundColor ); 388 paint->fillRect ( x, yy, w, h, mBackgroundColor );
389 static const QPixmap completedPxmp = SmallIcon("greenhook16"); 389 static const QPixmap completedPxmp = SmallIcon("greenhook16");
390 static const QPixmap overduePxmp = SmallIcon("redcross16"); 390 static const QPixmap overduePxmp = SmallIcon("redcross16");
391 if ( mIncidence->typeID() == todoID ) { 391 if ( mIncidence->typeID() == todoID ) {
392 Todo* tempTodo = static_cast<Todo*>(mIncidence); 392 Todo* tempTodo = static_cast<Todo*>(mIncidence);
393 int xx = pos().x()+(width()-completedPxmp.width()-3 ); 393 int xx = pos().x()+(width()-completedPxmp.width()-3 );
394 int yyy = yy+3; 394 int yyy = yy+3;
395 if ( tempTodo->isCompleted() ) 395 if ( tempTodo->isCompleted() )
396 paint->drawPixmap ( xx, yyy, completedPxmp ); 396 paint->drawPixmap ( xx, yyy, completedPxmp );
397 else { 397 else {
398 paint->drawPixmap ( xx, yyy, overduePxmp ); 398 paint->drawPixmap ( xx, yyy, overduePxmp );
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();
598 tipText += "\n"+i18n("To: ")+(static_cast<Event*>(mIncidence))->dtEndStr(); 607 tipText += "\n"+i18n("To: ")+(static_cast<Event*>(mIncidence))->dtEndStr();
599 } 608 }
600 else { 609 else {
601 tipText += "\n"+i18n("Time: ")+mIncidence->dtStartTimeStr(); 610 tipText += "\n"+i18n("Time: ")+mIncidence->dtStartTimeStr();
602 tipText += " - "+(static_cast<Event*>(mIncidence))->dtEndTimeStr(); 611 tipText += " - "+(static_cast<Event*>(mIncidence))->dtEndTimeStr();
603 } 612 }
604 } 613 }
605 else if ( mIncidence->typeID() == todoID ) { 614 else if ( mIncidence->typeID() == todoID ) {
606 if (mIncidence->hasStartDate()) 615 if (mIncidence->hasStartDate())
607 tipText += "\n"+i18n("Start: ")+ (static_cast<Todo*>(mIncidence))->dtStartStr(); 616 tipText += "\n"+i18n("Start: ")+ (static_cast<Todo*>(mIncidence))->dtStartStr();
608 if (((Todo*)mIncidence)->hasDueDate()) 617 if (((Todo*)mIncidence)->hasDueDate())
609 tipText += "\n"+i18n("Due: ")+ (static_cast<Todo*>(mIncidence))->dtDueStr(); 618 tipText += "\n"+i18n("Due: ")+ (static_cast<Todo*>(mIncidence))->dtDueStr();
610 } 619 }
611 } else if ( mIncidence->typeID() == todoID ) { 620 } else if ( mIncidence->typeID() == todoID ) {
612 if (mIncidence->hasStartDate()) 621 if (mIncidence->hasStartDate())
613 tipText += "\n"+i18n("Start: ")+ (static_cast<Todo*>(mIncidence))->dtStartDateStr(); 622 tipText += "\n"+i18n("Start: ")+ (static_cast<Todo*>(mIncidence))->dtStartDateStr();
614 if (((Todo*)mIncidence)->hasDueDate()) 623 if (((Todo*)mIncidence)->hasDueDate())
615 tipText += "\n"+i18n("Due: ")+ (static_cast<Todo*>(mIncidence))->dtDueDateStr(); 624 tipText += "\n"+i18n("Due: ")+ (static_cast<Todo*>(mIncidence))->dtDueDateStr();
616 } 625 }
617 626
618 if (!mIncidence->location().isEmpty()) { 627 if (!mIncidence->location().isEmpty()) {
619 tipText += "\n"+i18n("Location: ")+mIncidence->location(); 628 tipText += "\n"+i18n("Location: ")+mIncidence->location();
620 } 629 }
621 QToolTip::add(this,tipText,toolTipGroup(),""); 630 QToolTip::add(this,tipText,toolTipGroup(),"");
622#endif 631#endif
623} 632}
624void KOAgendaItem::updateItem() 633void KOAgendaItem::updateItem()
625{ 634{
626 computeText(); 635 computeText();
627 636
628 //qDebug("KOAgendaItem:: updateItem() %s %d %d ",incidence()->summary().latin1(), x(), y()); 637 //qDebug("KOAgendaItem:: updateItem() %s %d %d ",incidence()->summary().latin1(), x(), y());
629 paintMe( mSelected ); 638 paintMe( mSelected );
diff --git a/korganizer/koagendaitem.h b/korganizer/koagendaitem.h
index 3ed68b0..99c564a 100644
--- a/korganizer/koagendaitem.h
+++ b/korganizer/koagendaitem.h
@@ -1,164 +1,165 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
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