summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-04 22:19:14 (UTC)
committer zautrix <zautrix>2005-07-04 22:19:14 (UTC)
commit671d832454c8b68e0bb44e439f28fb1c768e033d (patch) (unidiff)
treea938029d62ba7d54ee5cb3de0c6cc0cc449dba51
parentd7931731fcf0ffeb5b5267f25fce741ebe1ced13 (diff)
downloadkdepimpi-671d832454c8b68e0bb44e439f28fb1c768e033d.zip
kdepimpi-671d832454c8b68e0bb44e439f28fb1c768e033d.tar.gz
kdepimpi-671d832454c8b68e0bb44e439f28fb1c768e033d.tar.bz2
fixix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagenda.cpp10
-rw-r--r--korganizer/koagendaitem.cpp6
-rw-r--r--korganizer/koagendaitem.h1
3 files changed, 8 insertions, 9 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index 9b817bc..01cef35 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -1532,686 +1532,690 @@ void KOAgenda::drawContentsToPainter( QPainter* paint, bool backgroundOnly )// i
1532/* 1532/*
1533 Convert srcollview contents coordinates to agenda grid coordinates. 1533 Convert srcollview contents coordinates to agenda grid coordinates.
1534*/ 1534*/
1535void KOAgenda::contentsToGrid (int x, int y, int& gx, int& gy) 1535void KOAgenda::contentsToGrid (int x, int y, int& gx, int& gy)
1536{ 1536{
1537 gx = KOGlobals::self()->reverseLayout() ? mColumns - 1 - x/mGridSpacingX : 1537 gx = KOGlobals::self()->reverseLayout() ? mColumns - 1 - x/mGridSpacingX :
1538 x/mGridSpacingX; 1538 x/mGridSpacingX;
1539 gy = y/mGridSpacingY; 1539 gy = y/mGridSpacingY;
1540} 1540}
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 itemit->repaint();
1671 } 1671 }
1672 blockSignals( false ); 1672 blockSignals( false );
1673 } 1673 }
1674 if ( remove ) { 1674 if ( remove ) {
1675 //qDebug("remove****************************************** "); 1675 //qDebug("remove****************************************** ");
1676 return; 1676 return;
1677 } 1677 }
1678 if ( todo->hasCompletedDate() && !KOPrefs::instance()->mShowCompletedTodoInAgenda ) 1678 if ( todo->hasCompletedDate() && !KOPrefs::instance()->mShowCompletedTodoInAgenda )
1679 return; 1679 return;
1680 //qDebug("updateTodo+++++++++++++++++++++++++++++++++++++ "); 1680 //qDebug("updateTodo+++++++++++++++++++++++++++++++++++++ ");
1681 QDate currentDate = QDate::currentDate(); 1681 QDate currentDate = QDate::currentDate();
1682 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < currentDate)&& ( KOPrefs::instance()->mShowTodoInAgenda ); 1682 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < currentDate)&& ( KOPrefs::instance()->mShowTodoInAgenda );
1683 QDateTime dt; 1683 QDateTime dt;
1684 if ( todo->hasCompletedDate() ) 1684 if ( todo->hasCompletedDate() )
1685 dt = todo->completed(); 1685 dt = todo->completed();
1686 else 1686 else
1687 dt = todo->dtDue(); 1687 dt = todo->dtDue();
1688 if ( overdue ) { 1688 if ( overdue ) {
1689 days += todo->dtDue().date().daysTo( currentDate ); 1689 days += todo->dtDue().date().daysTo( currentDate );
1690 } 1690 }
1691 else 1691 else
1692 currentDate = dt.date(); 1692 currentDate = dt.date();
1693 1693
1694 if (( todo->doesFloat() || overdue) && !todo->hasCompletedDate() ) { 1694 if (( todo->doesFloat() || overdue) && !todo->hasCompletedDate() ) {
1695 if ( ! mAllDayMode ) return; 1695 if ( ! mAllDayMode ) return;
1696 // aldayagenda 1696 // aldayagenda
1697 globalFlagBlockAgendaItemPaint = 1; 1697 globalFlagBlockAgendaItemPaint = 1;
1698 item = insertAllDayItem(todo, currentDate,days, days); 1698 item = insertAllDayItem(todo, currentDate,days, days);
1699 item->show(); 1699 item->show();
1700 1700
1701 } 1701 }
1702 else { 1702 else {
1703 if ( mAllDayMode ) return; 1703 if ( mAllDayMode ) return;
1704 // mAgenda 1704 // mAgenda
1705 globalFlagBlockAgendaItemPaint = 1; 1705 globalFlagBlockAgendaItemPaint = 1;
1706 int endY = timeToY(dt.time()) - 1; 1706 int endY = timeToY(dt.time()) - 1;
1707 int hi = 12/KOPrefs::instance()->mHourSize; 1707 int hi = 12/KOPrefs::instance()->mHourSize;
1708 int startY = endY - 1-hi; 1708 int startY = endY - 1-hi;
1709 item = insertItem(todo,currentDate,days,startY,endY); 1709 item = insertItem(todo,currentDate,days,startY,endY);
1710 item->show(); 1710 item->show();
1711 } 1711 }
1712 qApp->processEvents(); 1712 qApp->processEvents();
1713 globalFlagBlockAgendaItemPaint = 0; 1713 globalFlagBlockAgendaItemPaint = 0;
1714 QPtrList<KOAgendaItem> oldconflictItems = item->conflictItems(); 1714 QPtrList<KOAgendaItem> oldconflictItems = item->conflictItems();
1715 KOAgendaItem *itemit; 1715 KOAgendaItem *itemit;
1716 for ( itemit=oldconflictItems.first(); itemit != 0; 1716 for ( itemit=oldconflictItems.first(); itemit != 0;
1717 itemit=oldconflictItems.next() ) { 1717 itemit=oldconflictItems.next() ) {
1718 globalFlagBlockAgendaItemUpdate = 0; 1718 globalFlagBlockAgendaItemUpdate = 0;
1719 itemit->repaintMe(); 1719 itemit->repaintMe();
1720 globalFlagBlockAgendaItemUpdate = 1; 1720 globalFlagBlockAgendaItemUpdate = 1;
1721 itemit->repaint(); 1721 itemit->repaint();
1722 } 1722 }
1723 globalFlagBlockAgendaItemUpdate = 0; 1723 globalFlagBlockAgendaItemUpdate = 0;
1724 item->repaintMe(); 1724 item->repaintMe();
1725 globalFlagBlockAgendaItemUpdate = 1; 1725 globalFlagBlockAgendaItemUpdate = 1;
1726 item->repaint(); 1726 item->repaint();
1727} 1727}
1728/* 1728/*
1729 Insert KOAgendaItem into agenda. 1729 Insert KOAgendaItem into agenda.
1730*/ 1730*/
1731KOAgendaItem *KOAgenda::insertItem (Incidence *event,QDate qd,int X,int YTop,int YBottom) 1731KOAgendaItem *KOAgenda::insertItem (Incidence *event,QDate qd,int X,int YTop,int YBottom)
1732{ 1732{
1733 if (mAllDayMode) { 1733 if (mAllDayMode) {
1734 qDebug("KOAgenda: calling insertItem in all-day mode is illegal. "); 1734 qDebug("KOAgenda: calling insertItem in all-day mode is illegal. ");
1735 return 0; 1735 return 0;
1736 } 1736 }
1737 1737
1738 KOAgendaItem *agendaItem = getNewItem(event,qd,viewport()); 1738 KOAgendaItem *agendaItem = getNewItem(event,qd,viewport());
1739 //agendaItem->setFrameStyle(WinPanel|Raised); 1739 //agendaItem->setFrameStyle(WinPanel|Raised);
1740 1740
1741 int YSize = YBottom - YTop + 1; 1741 int YSize = YBottom - YTop + 1;
1742 if (YSize < 0) { 1742 if (YSize < 0) {
1743 YSize = 1; 1743 YSize = 1;
1744 } 1744 }
1745 int iheight = mGridSpacingY * YSize; 1745 int iheight = mGridSpacingY * YSize;
1746 1746
1747 agendaItem->resize(mGridSpacingX,iheight ); 1747 agendaItem->resize(mGridSpacingX,iheight );
1748 agendaItem->setCellXY(X,YTop,YBottom); 1748 agendaItem->setCellXY(X,YTop,YBottom);
1749 agendaItem->setCellXWidth(X); 1749 agendaItem->setCellXWidth(X);
1750 1750
1751 //addChild(agendaItem,X*mGridSpacingX,YTop*mGridSpacingY); 1751 //addChild(agendaItem,X*mGridSpacingX,YTop*mGridSpacingY);
1752 mItems.append(agendaItem); 1752 mItems.append(agendaItem);
1753 1753
1754 placeSubCells(agendaItem); 1754 placeSubCells(agendaItem);
1755 1755
1756 //agendaItem->show(); 1756 //agendaItem->show();
1757 1757
1758 marcus_bains(); 1758 marcus_bains();
1759 1759
1760 return agendaItem; 1760 return agendaItem;
1761} 1761}
1762 1762
1763 1763
1764/* 1764/*
1765 Insert all-day KOAgendaItem into agenda. 1765 Insert all-day KOAgendaItem into agenda.
1766*/ 1766*/
1767KOAgendaItem *KOAgenda::insertAllDayItem (Incidence *event,QDate qd,int XBegin,int XEnd) 1767KOAgendaItem *KOAgenda::insertAllDayItem (Incidence *event,QDate qd,int XBegin,int XEnd)
1768{ 1768{
1769 if (!mAllDayMode) { 1769 if (!mAllDayMode) {
1770 return 0; 1770 return 0;
1771 } 1771 }
1772 1772
1773 KOAgendaItem *agendaItem = getNewItem(event,qd,viewport()); 1773 KOAgendaItem *agendaItem = getNewItem(event,qd,viewport());
1774 1774
1775 agendaItem->setCellXY(XBegin,0,0); 1775 agendaItem->setCellXY(XBegin,0,0);
1776 agendaItem->setCellXWidth(XEnd); 1776 agendaItem->setCellXWidth(XEnd);
1777 agendaItem->resize(mGridSpacingX * agendaItem->cellWidth(),mGridSpacingY); 1777 agendaItem->resize(mGridSpacingX * agendaItem->cellWidth(),mGridSpacingY);
1778 1778
1779 //addChild(agendaItem,XBegin*mGridSpacingX,0); 1779 //addChild(agendaItem,XBegin*mGridSpacingX,0);
1780 mItems.append(agendaItem); 1780 mItems.append(agendaItem);
1781 1781
1782 placeSubCells(agendaItem); 1782 placeSubCells(agendaItem);
1783 1783
1784 //agendaItem->show(); 1784 //agendaItem->show();
1785 1785
1786 return agendaItem; 1786 return agendaItem;
1787} 1787}
1788 1788
1789 1789
1790void KOAgenda::insertMultiItem (Event *event,QDate qd,int XBegin,int XEnd, 1790void KOAgenda::insertMultiItem (Event *event,QDate qd,int XBegin,int XEnd,
1791 int YTop,int YBottom) 1791 int YTop,int YBottom)
1792{ 1792{
1793 if (mAllDayMode) { 1793 if (mAllDayMode) {
1794 ; 1794 ;
1795 return; 1795 return;
1796 } 1796 }
1797 1797
1798 int cellX,cellYTop,cellYBottom; 1798 int cellX,cellYTop,cellYBottom;
1799 QString newtext; 1799 QString newtext;
1800 int width = XEnd - XBegin + 1; 1800 int width = XEnd - XBegin + 1;
1801 int count = 0; 1801 int count = 0;
1802 KOAgendaItem *current = 0; 1802 KOAgendaItem *current = 0;
1803 QPtrList<KOAgendaItem> multiItems; 1803 QPtrList<KOAgendaItem> multiItems;
1804 for (cellX = XBegin;cellX <= XEnd;++cellX) { 1804 for (cellX = XBegin;cellX <= XEnd;++cellX) {
1805 if (cellX == XBegin) cellYTop = YTop; 1805 if (cellX == XBegin) cellYTop = YTop;
1806 else cellYTop = 0; 1806 else cellYTop = 0;
1807 if (cellX == XEnd) cellYBottom = YBottom; 1807 if (cellX == XEnd) cellYBottom = YBottom;
1808 else cellYBottom = rows() - 1; 1808 else cellYBottom = rows() - 1;
1809 newtext = QString("(%1/%2): ").arg(++count).arg(width); 1809 newtext = QString("(%1/%2): ").arg(++count).arg(width);
1810 newtext.append(event->summary()); 1810 newtext.append(event->summary());
1811 current = insertItem(event,qd,cellX,cellYTop,cellYBottom); 1811 current = insertItem(event,qd,cellX,cellYTop,cellYBottom);
1812 current->setText(newtext); 1812 current->setText(newtext);
1813 multiItems.append(current); 1813 multiItems.append(current);
1814 } 1814 }
1815 1815
1816 KOAgendaItem *next = 0; 1816 KOAgendaItem *next = 0;
1817 KOAgendaItem *last = multiItems.last(); 1817 KOAgendaItem *last = multiItems.last();
1818 KOAgendaItem *first = multiItems.first(); 1818 KOAgendaItem *first = multiItems.first();
1819 KOAgendaItem *setFirst,*setLast; 1819 KOAgendaItem *setFirst,*setLast;
1820 current = first; 1820 current = first;
1821 while (current) { 1821 while (current) {
1822 next = multiItems.next(); 1822 next = multiItems.next();
1823 if (current == first) setFirst = 0; 1823 if (current == first) setFirst = 0;
1824 else setFirst = first; 1824 else setFirst = first;
1825 if (current == last) setLast = 0; 1825 if (current == last) setLast = 0;
1826 else setLast = last; 1826 else setLast = last;
1827 1827
1828 current->setMultiItem(setFirst,next,setLast); 1828 current->setMultiItem(setFirst,next,setLast);
1829 current = next; 1829 current = next;
1830 } 1830 }
1831 1831
1832 marcus_bains(); 1832 marcus_bains();
1833} 1833}
1834 1834
1835 1835
1836//QSizePolicy KOAgenda::sizePolicy() const 1836//QSizePolicy KOAgenda::sizePolicy() const
1837//{ 1837//{
1838 // Thought this would make the all-day event agenda minimum size and the 1838 // Thought this would make the all-day event agenda minimum size and the
1839 // normal agenda take the remaining space. But it doesn´t work. The QSplitter 1839 // normal agenda take the remaining space. But it doesn´t work. The QSplitter
1840 // don´t seem to think that an Expanding widget needs more space than a 1840 // don´t seem to think that an Expanding widget needs more space than a
1841 // Preferred one. 1841 // Preferred one.
1842 // But it doesn´t hurt, so it stays. 1842 // But it doesn´t hurt, so it stays.
1843// if (mAllDayMode) { 1843// if (mAllDayMode) {
1844// return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred); 1844// return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
1845// } else { 1845// } else {
1846// return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); 1846// return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
1847// } 1847// }
1848//} 1848//}
1849void KOAgenda::finishResize ( ) 1849void KOAgenda::finishResize ( )
1850{ 1850{
1851 //qDebug("finishResize+++++++++++++++++++++++++++++++ ( ) "); 1851 //qDebug("finishResize+++++++++++++++++++++++++++++++ ( ) ");
1852 if ( globalFlagBlockAgenda == 0 ) { 1852 if ( globalFlagBlockAgenda == 0 ) {
1853 finishUpdate(); 1853 finishUpdate();
1854 //qDebug("finishUpdate() called "); 1854 //qDebug("finishUpdate() called ");
1855 } 1855 }
1856} 1856}
1857/* 1857/*
1858 Overridden from QScrollView to provide proper resizing of KOAgendaItems. 1858 Overridden from QScrollView to provide proper resizing of KOAgendaItems.
1859*/ 1859*/
1860void KOAgenda::resizeEvent ( QResizeEvent *ev ) 1860void KOAgenda::resizeEvent ( QResizeEvent *ev )
1861{ 1861{
1862 mSelectionHeight = 0; 1862 mSelectionHeight = 0;
1863 mResizeTimer.start( 150 , true ); 1863 mResizeTimer.start( 150 , true );
1864 computeSizes(); 1864 computeSizes();
1865 return; 1865 return;
1866 1866
1867} 1867}
1868void KOAgenda::computeSizes() 1868void KOAgenda::computeSizes()
1869{ 1869{
1870 if ( globalFlagBlockStartup ) 1870 if ( globalFlagBlockStartup )
1871 return; 1871 return;
1872 int frameOffset = frameWidth() * 2 +1; 1872 int frameOffset = frameWidth() * 2 +1;
1873 if (mAllDayMode) { 1873 if (mAllDayMode) {
1874 mGridSpacingX = (width()-frameOffset) / mColumns; 1874 mGridSpacingX = (width()-frameOffset) / mColumns;
1875 mGridSpacingY = height() - 2 * frameWidth() - 1; 1875 mGridSpacingY = height() - 2 * frameWidth() - 1;
1876 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY + 1); 1876 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY + 1);
1877 // mGridSpacingY = height(); 1877 // mGridSpacingY = height();
1878 // resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); 1878 // resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 );
1879 1879
1880 KOAgendaItem *item; 1880 KOAgendaItem *item;
1881 int subCellWidth; 1881 int subCellWidth;
1882 for ( item=mItems.first(); item != 0; item=mItems.next() ) { 1882 for ( item=mItems.first(); item != 0; item=mItems.next() ) {
1883 subCellWidth = mGridSpacingY / item->subCells(); 1883 subCellWidth = mGridSpacingY / item->subCells();
1884 item->resize(mGridSpacingX * item->cellWidth(),subCellWidth); 1884 item->resize(mGridSpacingX * item->cellWidth(),subCellWidth);
1885 moveChild(item,KOGlobals::self()->reverseLayout() ? 1885 moveChild(item,KOGlobals::self()->reverseLayout() ?
1886 (mColumns - 1 - item->cellX()) * mGridSpacingX : 1886 (mColumns - 1 - item->cellX()) * mGridSpacingX :
1887 item->cellX() * mGridSpacingX, 1887 item->cellX() * mGridSpacingX,
1888 item->subCell() * subCellWidth); 1888 item->subCell() * subCellWidth);
1889 } 1889 }
1890 KOPrefs::instance()->mAllDaySize = mGridSpacingY; 1890 KOPrefs::instance()->mAllDaySize = mGridSpacingY;
1891 } else { 1891 } else {
1892 mGridSpacingX = (width() - verticalScrollBar()->width()-frameOffset)/mColumns; 1892 mGridSpacingX = (width() - verticalScrollBar()->width()-frameOffset)/mColumns;
1893 if (height() > mGridSpacingY * mRows + 1 ) { 1893 if (height() > mGridSpacingY * mRows + 1 ) {
1894 KOPrefs::instance()->mHourSize = ((height())/mRows)+1; 1894 KOPrefs::instance()->mHourSize = ((height())/mRows)+1;
1895 mGridSpacingY = KOPrefs::instance()->mHourSize ; 1895 mGridSpacingY = KOPrefs::instance()->mHourSize ;
1896 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); 1896 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 );
1897 emit resizedSignal(); 1897 emit resizedSignal();
1898 } else 1898 } else
1899 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); 1899 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 );
1900 KOAgendaItem *item; 1900 KOAgendaItem *item;
1901 int subCellWidth; 1901 int subCellWidth;
1902 1902
1903 for ( item=mItems.first(); item != 0; item=mItems.next() ) { 1903 for ( item=mItems.first(); item != 0; item=mItems.next() ) {
1904 subCellWidth = mGridSpacingX / item->subCells(); 1904 subCellWidth = mGridSpacingX / item->subCells();
1905 item->resize(subCellWidth,item->height()); 1905 item->resize(subCellWidth,item->height());
1906 moveChild(item,(KOGlobals::self()->reverseLayout() ? 1906 moveChild(item,(KOGlobals::self()->reverseLayout() ?
1907 (mColumns - 1 - item->cellX()) * mGridSpacingX : 1907 (mColumns - 1 - item->cellX()) * mGridSpacingX :
1908 item->cellX() * mGridSpacingX) + 1908 item->cellX() * mGridSpacingX) +
1909 item->subCell() * subCellWidth,childY(item)); 1909 item->subCell() * subCellWidth,childY(item));
1910 } 1910 }
1911 } 1911 }
1912 int cw = contentsWidth(); 1912 int cw = contentsWidth();
1913 int ch = contentsHeight(); 1913 int ch = contentsHeight();
1914 if ( mAllDayMode ) { 1914 if ( mAllDayMode ) {
1915 QPixmap* paintPixAll = KOAgendaItem::paintPixAllday(); 1915 QPixmap* paintPixAll = KOAgendaItem::paintPixAllday();
1916 if ( (paintPixAll->width() < cw || paintPixAll->height() < ch) && cw > 0 && ch > 0 ) 1916 if ( (paintPixAll->width() < cw || paintPixAll->height() < ch) && cw > 0 && ch > 0 ) {
1917 //qDebug("paintPixAll->resize ");
1917 paintPixAll->resize( cw, ch ); 1918 paintPixAll->resize( cw, ch );
1919 }
1918 } else { 1920 } else {
1919 QPixmap* paintPix = KOAgendaItem::paintPix(); 1921 QPixmap* paintPix = KOAgendaItem::paintPix();
1920 if ( paintPix->width() < cw || paintPix->height() < ch ) 1922 if ( paintPix->width() < cw || paintPix->height() < ch ) {
1921 KOAgendaItem::resizePixmap( cw , ch ); 1923 //qDebug("paintPix->resize ");
1924 paintPix->resize( cw , ch );
1925 }
1922 } 1926 }
1923 1927
1924 checkScrollBoundaries(); 1928 checkScrollBoundaries();
1925 marcus_bains(); 1929 marcus_bains();
1926 drawContentsToPainter(); 1930 drawContentsToPainter();
1927 viewport()->repaint(false); 1931 viewport()->repaint(false);
1928} 1932}
1929 1933
1930void KOAgenda::scrollUp() 1934void KOAgenda::scrollUp()
1931{ 1935{
1932 scrollBy(0,-mScrollOffset); 1936 scrollBy(0,-mScrollOffset);
1933} 1937}
1934 1938
1935 1939
1936void KOAgenda::scrollDown() 1940void KOAgenda::scrollDown()
1937{ 1941{
1938 scrollBy(0,mScrollOffset); 1942 scrollBy(0,mScrollOffset);
1939} 1943}
1940 1944
1941void KOAgenda::popupAlarm() 1945void KOAgenda::popupAlarm()
1942{ 1946{
1943 if (!mClickedItem) { 1947 if (!mClickedItem) {
1944 qDebug("KOAgenda::popupAlarm() called without having a clicked item "); 1948 qDebug("KOAgenda::popupAlarm() called without having a clicked item ");
1945 return; 1949 return;
1946 } 1950 }
1947 // TODO: deal correctly with multiple alarms 1951 // TODO: deal correctly with multiple alarms
1948 Alarm* alarm; 1952 Alarm* alarm;
1949 QPtrList<Alarm> list(mClickedItem->incidence()->alarms()); 1953 QPtrList<Alarm> list(mClickedItem->incidence()->alarms());
1950 for(alarm=list.first();alarm;alarm=list.next()) { 1954 for(alarm=list.first();alarm;alarm=list.next()) {
1951 alarm->toggleAlarm(); 1955 alarm->toggleAlarm();
1952 } 1956 }
1953 emit itemModified( mClickedItem , KOGlobals::EVENTEDITED ); 1957 emit itemModified( mClickedItem , KOGlobals::EVENTEDITED );
1954 mClickedItem->paintMe( true ); 1958 mClickedItem->paintMe( true );
1955 mClickedItem->repaint( false ); 1959 mClickedItem->repaint( false );
1956} 1960}
1957 1961
1958/* 1962/*
1959 Calculates the minimum width 1963 Calculates the minimum width
1960*/ 1964*/
1961int KOAgenda::minimumWidth() const 1965int KOAgenda::minimumWidth() const
1962{ 1966{
1963 // TODO:: develop a way to dynamically determine the minimum width 1967 // TODO:: develop a way to dynamically determine the minimum width
1964 int min = 100; 1968 int min = 100;
1965 1969
1966 return min; 1970 return min;
1967} 1971}
1968 1972
1969void KOAgenda::updateConfig() 1973void KOAgenda::updateConfig()
1970{ 1974{
1971 if ( viewport()->backgroundColor() != KOPrefs::instance()->mAgendaBgColor) 1975 if ( viewport()->backgroundColor() != KOPrefs::instance()->mAgendaBgColor)
1972 viewport()->setBackgroundColor(KOPrefs::instance()->mAgendaBgColor); 1976 viewport()->setBackgroundColor(KOPrefs::instance()->mAgendaBgColor);
1973 if ( mAllDayMode ) { 1977 if ( mAllDayMode ) {
1974 mGridSpacingY = height() - 1 ;// KOPrefs::instance()->mAllDaySize; 1978 mGridSpacingY = height() - 1 ;// KOPrefs::instance()->mAllDaySize;
1975 //mGridSpacingY = KOPrefs::instance()->mAllDaySize; 1979 //mGridSpacingY = KOPrefs::instance()->mAllDaySize;
1976 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY+1 ); 1980 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY+1 );
1977 // setMaximumHeight( mGridSpacingY+1 ); 1981 // setMaximumHeight( mGridSpacingY+1 );
1978 viewport()->repaint( false ); 1982 viewport()->repaint( false );
1979 //setFixedHeight( mGridSpacingY+1 ); 1983 //setFixedHeight( mGridSpacingY+1 );
1980 //qDebug("KOPrefs:aaaaa:instance()->mAllDaySize %d ", KOPrefs::instance()->mAllDaySize); 1984 //qDebug("KOPrefs:aaaaa:instance()->mAllDaySize %d ", KOPrefs::instance()->mAllDaySize);
1981 } 1985 }
1982 else { 1986 else {
1983 mGridSpacingY = KOPrefs::instance()->mHourSize; 1987 mGridSpacingY = KOPrefs::instance()->mHourSize;
1984 calculateWorkingHours(); 1988 calculateWorkingHours();
1985 marcus_bains(); 1989 marcus_bains();
1986 } 1990 }
1987} 1991}
1988 1992
1989void KOAgenda::checkScrollBoundaries() 1993void KOAgenda::checkScrollBoundaries()
1990{ 1994{
1991 // Invalidate old values to force update 1995 // Invalidate old values to force update
1992 mOldLowerScrollValue = -1; 1996 mOldLowerScrollValue = -1;
1993 mOldUpperScrollValue = -1; 1997 mOldUpperScrollValue = -1;
1994 1998
1995 checkScrollBoundaries(verticalScrollBar()->value()); 1999 checkScrollBoundaries(verticalScrollBar()->value());
1996} 2000}
1997 2001
1998void KOAgenda::checkScrollBoundaries(int v) 2002void KOAgenda::checkScrollBoundaries(int v)
1999{ 2003{
2000 if ( mGridSpacingY == 0 ) 2004 if ( mGridSpacingY == 0 )
2001 return; 2005 return;
2002 int yMin = v/mGridSpacingY; 2006 int yMin = v/mGridSpacingY;
2003 int yMax = (v+visibleHeight())/mGridSpacingY; 2007 int yMax = (v+visibleHeight())/mGridSpacingY;
2004 2008
2005// kdDebug() << "--- yMin: " << yMin << " yMax: " << yMax << endl; 2009// kdDebug() << "--- yMin: " << yMin << " yMax: " << yMax << endl;
2006 2010
2007 if (yMin != mOldLowerScrollValue) { 2011 if (yMin != mOldLowerScrollValue) {
2008 mOldLowerScrollValue = yMin; 2012 mOldLowerScrollValue = yMin;
2009 emit lowerYChanged(yMin); 2013 emit lowerYChanged(yMin);
2010 } 2014 }
2011 if (yMax != mOldUpperScrollValue) { 2015 if (yMax != mOldUpperScrollValue) {
2012 mOldUpperScrollValue = yMax; 2016 mOldUpperScrollValue = yMax;
2013 emit upperYChanged(yMax); 2017 emit upperYChanged(yMax);
2014 } 2018 }
2015} 2019}
2016 2020
2017void KOAgenda::deselectItem() 2021void KOAgenda::deselectItem()
2018{ 2022{
2019 if (mSelectedItem.isNull()) return; 2023 if (mSelectedItem.isNull()) return;
2020 mSelectedItem->select(false); 2024 mSelectedItem->select(false);
2021 mSelectedItem = 0; 2025 mSelectedItem = 0;
2022} 2026}
2023 2027
2024void KOAgenda::selectItem(KOAgendaItem *item) 2028void KOAgenda::selectItem(KOAgendaItem *item)
2025{ 2029{
2026 if ((KOAgendaItem *)mSelectedItem == item) return; 2030 if ((KOAgendaItem *)mSelectedItem == item) return;
2027 deselectItem(); 2031 deselectItem();
2028 if (item == 0) { 2032 if (item == 0) {
2029 emit incidenceSelected( 0 ); 2033 emit incidenceSelected( 0 );
2030 return; 2034 return;
2031 } 2035 }
2032 mSelectedItem = item; 2036 mSelectedItem = item;
2033 mSelectedItem->select(); 2037 mSelectedItem->select();
2034 emit incidenceSelected( mSelectedItem->incidence() ); 2038 emit incidenceSelected( mSelectedItem->incidence() );
2035} 2039}
2036 2040
2037// This function seems never be called. 2041// This function seems never be called.
2038void KOAgenda::keyPressEvent( QKeyEvent *kev ) 2042void KOAgenda::keyPressEvent( QKeyEvent *kev )
2039{ 2043{
2040 switch(kev->key()) { 2044 switch(kev->key()) {
2041 case Key_PageDown: 2045 case Key_PageDown:
2042 verticalScrollBar()->addPage(); 2046 verticalScrollBar()->addPage();
2043 break; 2047 break;
2044 case Key_PageUp: 2048 case Key_PageUp:
2045 verticalScrollBar()->subtractPage(); 2049 verticalScrollBar()->subtractPage();
2046 break; 2050 break;
2047 case Key_Down: 2051 case Key_Down:
2048 verticalScrollBar()->addLine(); 2052 verticalScrollBar()->addLine();
2049 break; 2053 break;
2050 case Key_Up: 2054 case Key_Up:
2051 verticalScrollBar()->subtractLine(); 2055 verticalScrollBar()->subtractLine();
2052 break; 2056 break;
2053 default: 2057 default:
2054 ; 2058 ;
2055 } 2059 }
2056} 2060}
2057 2061
2058void KOAgenda::calculateWorkingHours() 2062void KOAgenda::calculateWorkingHours()
2059{ 2063{
2060// mWorkingHoursEnable = KOPrefs::instance()->mEnableWorkingHours; 2064// mWorkingHoursEnable = KOPrefs::instance()->mEnableWorkingHours;
2061 mWorkingHoursEnable = !mAllDayMode; 2065 mWorkingHoursEnable = !mAllDayMode;
2062 2066
2063 mWorkingHoursYTop = mGridSpacingY * 2067 mWorkingHoursYTop = mGridSpacingY *
2064 KOPrefs::instance()->mWorkingHoursStart * 4; 2068 KOPrefs::instance()->mWorkingHoursStart * 4;
2065 mWorkingHoursYBottom = mGridSpacingY * 2069 mWorkingHoursYBottom = mGridSpacingY *
2066 KOPrefs::instance()->mWorkingHoursEnd * 4 - 1; 2070 KOPrefs::instance()->mWorkingHoursEnd * 4 - 1;
2067} 2071}
2068 2072
2069 2073
2070DateList KOAgenda::dateList() const 2074DateList KOAgenda::dateList() const
2071{ 2075{
2072 return mSelectedDates; 2076 return mSelectedDates;
2073} 2077}
2074 2078
2075void KOAgenda::setDateList(const DateList &selectedDates) 2079void KOAgenda::setDateList(const DateList &selectedDates)
2076{ 2080{
2077 mSelectedDates = selectedDates; 2081 mSelectedDates = selectedDates;
2078 marcus_bains(); 2082 marcus_bains();
2079} 2083}
2080 2084
2081void KOAgenda::setHolidayMask(QMemArray<bool> *mask) 2085void KOAgenda::setHolidayMask(QMemArray<bool> *mask)
2082{ 2086{
2083 mHolidayMask = mask; 2087 mHolidayMask = mask;
2084 2088
2085/* 2089/*
2086 kdDebug() << "HolidayMask: "; 2090 kdDebug() << "HolidayMask: ";
2087 for(uint i=0;i<mask->count();++i) { 2091 for(uint i=0;i<mask->count();++i) {
2088 kdDebug() << (mask->at(i) ? "*" : "o"); 2092 kdDebug() << (mask->at(i) ? "*" : "o");
2089 } 2093 }
2090 kdDebug() << endl; 2094 kdDebug() << endl;
2091*/ 2095*/
2092} 2096}
2093 2097
2094void KOAgenda::contentsMousePressEvent ( QMouseEvent *event ) 2098void KOAgenda::contentsMousePressEvent ( QMouseEvent *event )
2095{ 2099{
2096 2100
2097 QScrollView::contentsMousePressEvent(event); 2101 QScrollView::contentsMousePressEvent(event);
2098} 2102}
2099 2103
2100void KOAgenda::storePosition() 2104void KOAgenda::storePosition()
2101{ 2105{
2102 //mContentPosition 2106 //mContentPosition
2103 int max = mGridSpacingY*4*24; 2107 int max = mGridSpacingY*4*24;
2104 if ( contentsY() < 5 && max > viewport()->height()*3/2 ) 2108 if ( contentsY() < 5 && max > viewport()->height()*3/2 )
2105 mContentPosition = 0; 2109 mContentPosition = 0;
2106 else if ( contentsY() + viewport()->height() > max - 5 && max > viewport()->height()*3/2) 2110 else if ( contentsY() + viewport()->height() > max - 5 && max > viewport()->height()*3/2)
2107 mContentPosition = -1.0; 2111 mContentPosition = -1.0;
2108 else 2112 else
2109 mContentPosition = ((float) max)/ ((float)(contentsY()+ ( viewport()->height()/2))); 2113 mContentPosition = ((float) max)/ ((float)(contentsY()+ ( viewport()->height()/2)));
2110 //qDebug("mContentPosition %f %d %d %d",mContentPosition , max, contentsY() ,viewport()->height()); 2114 //qDebug("mContentPosition %f %d %d %d",mContentPosition , max, contentsY() ,viewport()->height());
2111 2115
2112} 2116}
2113void KOAgenda::restorePosition() 2117void KOAgenda::restorePosition()
2114{ 2118{
2115 int posY; 2119 int posY;
2116 int max = mGridSpacingY*4*24; 2120 int max = mGridSpacingY*4*24;
2117 if ( mContentPosition < 0 ) 2121 if ( mContentPosition < 0 )
2118 posY = max-viewport()->height(); 2122 posY = max-viewport()->height();
2119 else 2123 else
2120 if ( mContentPosition == 0 ) 2124 if ( mContentPosition == 0 )
2121 posY = 0; 2125 posY = 0;
2122 else 2126 else
2123 posY = (max/mContentPosition)-(viewport()->height()/2); 2127 posY = (max/mContentPosition)-(viewport()->height()/2);
2124 setContentsPos (0, posY ); 2128 setContentsPos (0, posY );
2125 //qDebug("posY %d hei %d", posY, max); 2129 //qDebug("posY %d hei %d", posY, max);
2126 2130
2127} 2131}
2128void KOAgenda::moveChild( QWidget *w, int x , int y ) 2132void KOAgenda::moveChild( QWidget *w, int x , int y )
2129{ 2133{
2130 ++x; 2134 ++x;
2131 QScrollView::moveChild( w, x , y ); 2135 QScrollView::moveChild( w, x , y );
2132} 2136}
2133#include <qmessagebox.h> 2137#include <qmessagebox.h>
2134#ifdef DESKTOP_VERSION 2138#ifdef DESKTOP_VERSION
2135#include <qprinter.h> 2139#include <qprinter.h>
2136#include <qpainter.h> 2140#include <qpainter.h>
2137#include <qpaintdevicemetrics.h> 2141#include <qpaintdevicemetrics.h>
2138 2142
2139#endif 2143#endif
2140void KOAgenda::printSelection() 2144void KOAgenda::printSelection()
2141{ 2145{
2142#ifdef DESKTOP_VERSION 2146#ifdef DESKTOP_VERSION
2143 if ( mStartCellY == mCurrentCellY ) { 2147 if ( mStartCellY == mCurrentCellY ) {
2144 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2148 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2145 i18n("Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. "), 2149 i18n("Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. "),
2146 i18n("OK"), 0, 0, 2150 i18n("OK"), 0, 0,
2147 0, 1 ); 2151 0, 1 );
2148 return; 2152 return;
2149 } 2153 }
2150 2154
2151 float dx, dy; 2155 float dx, dy;
2152 int x,y,w,h; 2156 int x,y,w,h;
2153 x= 0; 2157 x= 0;
2154 w= contentsWidth()+2; 2158 w= contentsWidth()+2;
2155 // h= contentsHeight(); 2159 // h= contentsHeight();
2156 y = mGridSpacingY*mStartCellY; 2160 y = mGridSpacingY*mStartCellY;
2157 h = mGridSpacingY*(mCurrentCellY+1)-y+2; 2161 h = mGridSpacingY*(mCurrentCellY+1)-y+2;
2158 2162
2159 //return; 2163 //return;
2160 QPrinter* printer = new QPrinter(); 2164 QPrinter* printer = new QPrinter();
2161 if ( !printer->setup()) { 2165 if ( !printer->setup()) {
2162 delete printer; 2166 delete printer;
2163 return; 2167 return;
2164 } 2168 }
2165 QPainter p( printer ); 2169 QPainter p( printer );
2166 QPaintDeviceMetrics m = QPaintDeviceMetrics ( printer ); 2170 QPaintDeviceMetrics m = QPaintDeviceMetrics ( printer );
2167 QString date = i18n("Date range: ")+KGlobal::locale()->formatDate( mSelectedDates.first() )+" - "+KGlobal::locale()->formatDate( mSelectedDates.last() ); 2171 QString date = i18n("Date range: ")+KGlobal::locale()->formatDate( mSelectedDates.first() )+" - "+KGlobal::locale()->formatDate( mSelectedDates.last() );
2168 //date += " --- printing time: " + KGlobal::locale()->formatDateTime(QDateTime::currentDateTime(), true ); 2172 //date += " --- printing time: " + KGlobal::locale()->formatDateTime(QDateTime::currentDateTime(), true );
2169 int hei = p.boundingRect(0,0, 5, 5, Qt::AlignLeft, date ).height(); 2173 int hei = p.boundingRect(0,0, 5, 5, Qt::AlignLeft, date ).height();
2170 // p.drawText( 0, 0, date ); 2174 // p.drawText( 0, 0, date );
2171 int offset = m.width()/8; 2175 int offset = m.width()/8;
2172 // compute the scale 2176 // compute the scale
2173 dx = ((float) m.width()-offset) / (float)w; 2177 dx = ((float) m.width()-offset) / (float)w;
2174 dy = (float)(m.height() - ( 2 * hei )-offset ) / (float)h; 2178 dy = (float)(m.height() - ( 2 * hei )-offset ) / (float)h;
2175 float scale; 2179 float scale;
2176 // scale to fit the width or height of the paper 2180 // scale to fit the width or height of the paper
2177 if ( dx < dy ) 2181 if ( dx < dy )
2178 scale = dx; 2182 scale = dx;
2179 else 2183 else
2180 scale = dy; 2184 scale = dy;
2181 // set the scale 2185 // set the scale
2182 p.drawText( offset* scale, offset* scale*3/4, date ); 2186 p.drawText( offset* scale, offset* scale*3/4, date );
2183 2187
2184 int selDay; 2188 int selDay;
2185 float widOffset = ((float) m.width()-offset) / ((float)(mSelectedDates.count())); 2189 float widOffset = ((float) m.width()-offset) / ((float)(mSelectedDates.count()));
2186 float startX = 1; 2190 float startX = 1;
2187 for ( selDay = 0; selDay < mSelectedDates.count(); ++selDay) 2191 for ( selDay = 0; selDay < mSelectedDates.count(); ++selDay)
2188 { 2192 {
2189 QString text = KGlobal::locale()->formatDate( mSelectedDates[selDay],true ); 2193 QString text = KGlobal::locale()->formatDate( mSelectedDates[selDay],true );
2190 p.setClipRect(offset* scale+startX , 0, widOffset-4, offset* scale+(2*hei* scale) ); 2194 p.setClipRect(offset* scale+startX , 0, widOffset-4, offset* scale+(2*hei* scale) );
2191 p.drawText( offset* scale+startX, (offset+hei)* scale, text ); 2195 p.drawText( offset* scale+startX, (offset+hei)* scale, text );
2192 startX += widOffset; 2196 startX += widOffset;
2193 2197
2194 } 2198 }
2195 p.translate( offset* scale,offset* scale+ (-y * scale)+(2*hei* scale)); 2199 p.translate( offset* scale,offset* scale+ (-y * scale)+(2*hei* scale));
2196 p.scale( scale, scale ); 2200 p.scale( scale, scale );
2197 p.setClipRect( offset* scale, offset* scale+(2*hei* scale), w*scale, h*scale ); 2201 p.setClipRect( offset* scale, offset* scale+(2*hei* scale), w*scale, h*scale );
2198 // now printing with y offset: 2 hei 2202 // now printing with y offset: 2 hei
2199 // p.translate( 0, -y*scale); 2203 // p.translate( 0, -y*scale);
2200 2204
2201 drawContentsToPainter(&p, true ); 2205 drawContentsToPainter(&p, true );
2202 globalFlagBlockAgendaItemUpdate = false; 2206 globalFlagBlockAgendaItemUpdate = false;
2203 KOAgendaItem *item; 2207 KOAgendaItem *item;
2204 for ( item=mItems.first(); item != 0; item=mItems.next() ) { 2208 for ( item=mItems.first(); item != 0; item=mItems.next() ) {
2205 item->select(false); 2209 item->select(false);
2206 item->paintMe( false, &p ); 2210 item->paintMe( false, &p );
2207 } 2211 }
2208 globalFlagBlockAgendaItemUpdate = true; 2212 globalFlagBlockAgendaItemUpdate = true;
2209 p.end(); 2213 p.end();
2210 delete printer; 2214 delete printer;
2211#else 2215#else
2212 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2216 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2213 i18n("Not supported \non PDA!\n"), 2217 i18n("Not supported \non PDA!\n"),
2214 i18n("OK"), 0, 0, 2218 i18n("OK"), 0, 0,
2215 0, 1 ); 2219 0, 1 );
2216#endif 2220#endif
2217} 2221}
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp
index abb29f7..f855b03 100644
--- a/korganizer/koagendaitem.cpp
+++ b/korganizer/koagendaitem.cpp
@@ -89,760 +89,756 @@ KOAgendaItem::KOAgendaItem(Incidence *incidence, QDate qd, QWidget *parent,bool
89 yPaintCoord = -1; 89 yPaintCoord = -1;
90} 90}
91QString KOAgendaItem::getWhatsThisText() 91QString KOAgendaItem::getWhatsThisText()
92{ 92{
93 if ( mIncidence ) 93 if ( mIncidence )
94 return KIncidenceFormatter::instance()->getFormattedText( mIncidence, 94 return KIncidenceFormatter::instance()->getFormattedText( mIncidence,
95 KOPrefs::instance()->mWTshowDetails, 95 KOPrefs::instance()->mWTshowDetails,
96 KOPrefs::instance()->mWTshowCreated, 96 KOPrefs::instance()->mWTshowCreated,
97 KOPrefs::instance()->mWTshowChanged); 97 KOPrefs::instance()->mWTshowChanged);
98 return "KOAgendaItem::getWhatsThisText()::internal error"; 98 return "KOAgendaItem::getWhatsThisText()::internal error";
99} 99}
100 100
101void KOAgendaItem::initColor () 101void KOAgendaItem::initColor ()
102{ 102{
103 if ( (mIncidence->typeID() == todoID ) && 103 if ( (mIncidence->typeID() == todoID ) &&
104 ( !((static_cast<Todo*>(mIncidence))->isCompleted()) && 104 ( !((static_cast<Todo*>(mIncidence))->isCompleted()) &&
105 ((static_cast<Todo*>(mIncidence))->dtDue().date() <= QDate::currentDate()) ) ) { 105 ((static_cast<Todo*>(mIncidence))->dtDue().date() <= QDate::currentDate()) ) ) {
106 if ( (static_cast<Todo*>(mIncidence))->dtDue() < QDateTime::currentDateTime().date()) 106 if ( (static_cast<Todo*>(mIncidence))->dtDue() < QDateTime::currentDateTime().date())
107 mBackgroundColor = KOPrefs::instance()->mTodoOverdueColor ; 107 mBackgroundColor = KOPrefs::instance()->mTodoOverdueColor ;
108 else 108 else
109 mBackgroundColor = KOPrefs::instance()->mTodoDueTodayColor; 109 mBackgroundColor = KOPrefs::instance()->mTodoDueTodayColor;
110 } 110 }
111 else { 111 else {
112 QStringList categories = mIncidence->categories(); 112 QStringList categories = mIncidence->categories();
113 QString cat = categories.first(); 113 QString cat = categories.first();
114 if (cat.isEmpty()) { 114 if (cat.isEmpty()) {
115 if ( (mIncidence->typeID() == todoID ) &&((static_cast<Todo*>(mIncidence))->isCompleted()) ) 115 if ( (mIncidence->typeID() == todoID ) &&((static_cast<Todo*>(mIncidence))->isCompleted()) )
116 mBackgroundColor =KOPrefs::instance()->mTodoDoneColor; 116 mBackgroundColor =KOPrefs::instance()->mTodoDoneColor;
117 else 117 else
118 mBackgroundColor =KOPrefs::instance()->defaultColor( mIncidence->calID() ); 118 mBackgroundColor =KOPrefs::instance()->defaultColor( mIncidence->calID() );
119 } else { 119 } else {
120 mBackgroundColor = *KOPrefs::instance()->categoryColor(cat); 120 mBackgroundColor = *KOPrefs::instance()->categoryColor(cat);
121 if ( (mIncidence->typeID() == todoID ) &&((static_cast<Todo*>(mIncidence))->isCompleted()) ) { 121 if ( (mIncidence->typeID() == todoID ) &&((static_cast<Todo*>(mIncidence))->isCompleted()) ) {
122 if ( mBackgroundColor == KOPrefs::instance()->mEventColor ) 122 if ( mBackgroundColor == KOPrefs::instance()->mEventColor )
123 mBackgroundColor = KOPrefs::instance()->mTodoDoneColor; 123 mBackgroundColor = KOPrefs::instance()->mTodoDoneColor;
124 } 124 }
125 } 125 }
126 126
127 } 127 }
128 128
129 QColor BackgroundColor ( mBackgroundColor ); 129 QColor BackgroundColor ( mBackgroundColor );
130 if ( mIncidence->calID() > 1 ) { 130 if ( mIncidence->calID() > 1 ) {
131 //BackgroundColor = KOPrefs::instance()->defaultColor( mIncidence->calID() ); 131 //BackgroundColor = KOPrefs::instance()->defaultColor( mIncidence->calID() );
132 } 132 }
133 mColorGroup = QColorGroup( BackgroundColor.light(), 133 mColorGroup = QColorGroup( BackgroundColor.light(),
134 BackgroundColor.dark(),BackgroundColor.light(), 134 BackgroundColor.dark(),BackgroundColor.light(),
135 BackgroundColor.dark(),BackgroundColor, black, BackgroundColor) ; 135 BackgroundColor.dark(),BackgroundColor, black, BackgroundColor) ;
136 setBackgroundColor( mBackgroundColor ); 136 setBackgroundColor( mBackgroundColor );
137 mWhiteText = (mBackgroundColor.red() + mBackgroundColor.green() + mBackgroundColor.blue() < 250); 137 mWhiteText = (mBackgroundColor.red() + mBackgroundColor.green() + mBackgroundColor.blue() < 250);
138} 138}
139void KOAgendaItem::init ( Incidence *incidence, QDate qd ) 139void KOAgendaItem::init ( Incidence *incidence, QDate qd )
140{ 140{
141 mIncidence = incidence; 141 mIncidence = incidence;
142 mDate = qd; 142 mDate = qd;
143 mFirstMultiItem = 0; 143 mFirstMultiItem = 0;
144 mNextMultiItem = 0; 144 mNextMultiItem = 0;
145 mLastMultiItem = 0; 145 mLastMultiItem = 0;
146 computeText(); 146 computeText();
147 initColor(); 147 initColor();
148 mConflictItems.clear(); 148 mConflictItems.clear();
149 setCellXY(0,0,1); 149 setCellXY(0,0,1);
150 setCellXWidth(0); 150 setCellXWidth(0);
151 setSubCell(0); 151 setSubCell(0);
152 setSubCells(1); 152 setSubCells(1);
153 setMultiItem(0,0,0); 153 setMultiItem(0,0,0);
154 startMove(); 154 startMove();
155 mSelected = true; 155 mSelected = true;
156 select(false); 156 select(false);
157 QFontMetrics fontinf(KOPrefs::instance()->mAgendaViewFont); 157 QFontMetrics fontinf(KOPrefs::instance()->mAgendaViewFont);
158 mFontPixelSize = fontinf.height();; 158 mFontPixelSize = fontinf.height();;
159 hide(); 159 hide();
160 xPaintCoord = -1; 160 xPaintCoord = -1;
161 yPaintCoord = -1; 161 yPaintCoord = -1;
162} 162}
163 163
164 164
165KOAgendaItem::~KOAgendaItem() 165KOAgendaItem::~KOAgendaItem()
166{ 166{
167#if QT_VERSION >= 0x030000 167#if QT_VERSION >= 0x030000
168 168
169#else 169#else
170 delete mKOAgendaItemWhatsThis; 170 delete mKOAgendaItemWhatsThis;
171#endif 171#endif
172 172
173} 173}
174 174
175void KOAgendaItem::recreateIncidence() 175void KOAgendaItem::recreateIncidence()
176{ 176{
177#if 0 177#if 0
178 Incidence* newInc = mIncidence->clone(); 178 Incidence* newInc = mIncidence->clone();
179 newInc->recreate(); 179 newInc->recreate();
180 if ( mIncidence->doesRecur() ) { 180 if ( mIncidence->doesRecur() ) {
181 mIncidence->addExDate( mDate ); 181 mIncidence->addExDate( mDate );
182 newInc->recurrence()->unsetRecurs(); 182 newInc->recurrence()->unsetRecurs();
183 int len = mIncidence->dtStart().secsTo( ((Event*)mIncidence)->dtEnd()); 183 int len = mIncidence->dtStart().secsTo( ((Event*)mIncidence)->dtEnd());
184 QTime tim = mIncidence->dtStart().time(); 184 QTime tim = mIncidence->dtStart().time();
185 newInc->setDtStart( QDateTime(mDate, tim) ); 185 newInc->setDtStart( QDateTime(mDate, tim) );
186 ((Event*)newInc)->setDtEnd( newInc->dtStart().addSecs( len ) ); 186 ((Event*)newInc)->setDtEnd( newInc->dtStart().addSecs( len ) );
187 } 187 }
188#endif 188#endif
189 mIncidence = mIncidence->recreateCloneException( mDate ); 189 mIncidence = mIncidence->recreateCloneException( mDate );
190} 190}
191bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout) 191bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout)
192{ 192{
193 int size = AGENDA_ICON_SIZE; 193 int size = AGENDA_ICON_SIZE;
194 194
195 int yOff = 0; 195 int yOff = 0;
196 int xOff = 0; 196 int xOff = 0;
197 int x = pos().x(); 197 int x = pos().x();
198 198
199 if ( x < 0 ) x = 0; 199 if ( x < 0 ) x = 0;
200 x += 3; 200 x += 3;
201 int y; 201 int y;
202 if ( mAllDay ) 202 if ( mAllDay )
203 y = pos().y()+3; 203 y = pos().y()+3;
204 else 204 else
205 y = mCellYTop * ( height() / cellHeight() ) +3; 205 y = mCellYTop * ( height() / cellHeight() ) +3;
206 206
207 207
208 if ( mIncidence->calID() > 1 ) { 208 if ( mIncidence->calID() > 1 ) {
209 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, KOPrefs::instance()->defaultColor( mIncidence->calID() ) ); 209 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, KOPrefs::instance()->defaultColor( mIncidence->calID() ) );
210 p->drawRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x-1, yOff*( 1 +AGENDA_ICON_SIZE)+y-1, AGENDA_ICON_SIZE+2, AGENDA_ICON_SIZE+2 ); 210 p->drawRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x-1, yOff*( 1 +AGENDA_ICON_SIZE)+y-1, AGENDA_ICON_SIZE+2, AGENDA_ICON_SIZE+2 );
211 if ( horLayout ){ 211 if ( horLayout ){
212 ++xOff; 212 ++xOff;
213 ++x; 213 ++x;
214 } 214 }
215 else { 215 else {
216 ++yOff; 216 ++yOff;
217 ++y; 217 ++y;
218 } 218 }
219 } 219 }
220 if (mIncidence->cancelled() && height() < 20 ) { 220 if (mIncidence->cancelled() && height() < 20 ) {
221 int xpos = xOff*( 1 +AGENDA_ICON_SIZE )+x; 221 int xpos = xOff*( 1 +AGENDA_ICON_SIZE )+x;
222 int ypos = yOff*( 1 +AGENDA_ICON_SIZE)+y; 222 int ypos = yOff*( 1 +AGENDA_ICON_SIZE)+y;
223 p->drawLine( xpos, ypos, xpos+AGENDA_ICON_SIZE-1, ypos+AGENDA_ICON_SIZE-1 ); 223 p->drawLine( xpos, ypos, xpos+AGENDA_ICON_SIZE-1, ypos+AGENDA_ICON_SIZE-1 );
224 p->drawLine( xpos, ypos+AGENDA_ICON_SIZE-1, xpos+AGENDA_ICON_SIZE-1, ypos ); 224 p->drawLine( xpos, ypos+AGENDA_ICON_SIZE-1, xpos+AGENDA_ICON_SIZE-1, ypos );
225 if ( horLayout ) 225 if ( horLayout )
226 ++xOff; 226 ++xOff;
227 else 227 else
228 ++yOff; 228 ++yOff;
229 } 229 }
230 if (mIncidence->isAlarmEnabled() && mIncidence->alarmEnabled()) { 230 if (mIncidence->isAlarmEnabled() && mIncidence->alarmEnabled()) {
231 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, red ); 231 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, red );
232 if ( horLayout ) 232 if ( horLayout )
233 ++xOff; 233 ++xOff;
234 else 234 else
235 ++yOff; 235 ++yOff;
236 } 236 }
237 if (mIncidence->recurrence()->doesRecur()) { 237 if (mIncidence->recurrence()->doesRecur()) {
238 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, blue ); 238 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, blue );
239 if ( horLayout ) 239 if ( horLayout )
240 ++xOff; 240 ++xOff;
241 else 241 else
242 ++yOff; 242 ++yOff;
243 } 243 }
244 if (mIncidence->description().length() > 0) { 244 if (mIncidence->description().length() > 0) {
245 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, darkGreen ); 245 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, darkGreen );
246 if ( horLayout ) 246 if ( horLayout )
247 ++xOff; 247 ++xOff;
248 else 248 else
249 ++yOff; 249 ++yOff;
250 } 250 }
251 if (mIncidence->isReadOnly()) { 251 if (mIncidence->isReadOnly()) {
252 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, white ); 252 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, white );
253 if ( horLayout ) 253 if ( horLayout )
254 ++xOff; 254 ++xOff;
255 else 255 else
256 ++yOff; 256 ++yOff;
257 } 257 }
258 258
259 if (mIncidence->attendeeCount()>0) { 259 if (mIncidence->attendeeCount()>0) {
260 260
261 if (mIncidence->organizer() == KOPrefs::instance()->email()) { 261 if (mIncidence->organizer() == KOPrefs::instance()->email()) {
262 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, black ); 262 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, black );
263 if ( horLayout ) 263 if ( horLayout )
264 ++xOff; 264 ++xOff;
265 else 265 else
266 ++yOff; 266 ++yOff;
267 } else { 267 } else {
268 Attendee *me = mIncidence->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email()); 268 Attendee *me = mIncidence->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email());
269 if (me!=0) { 269 if (me!=0) {
270 270
271 271
272 } else { 272 } else {
273 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, yellow ); 273 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, yellow );
274 if ( horLayout ) 274 if ( horLayout )
275 ++xOff; 275 ++xOff;
276 else 276 else
277 ++yOff; 277 ++yOff;
278 278
279 } 279 }
280 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, darkYellow ); 280 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, darkYellow );
281 if ( horLayout ) 281 if ( horLayout )
282 ++xOff; 282 ++xOff;
283 else 283 else
284 ++yOff; 284 ++yOff;
285 285
286 } 286 }
287 287
288 } 288 }
289 return ( yOff || xOff ); 289 return ( yOff || xOff );
290} 290}
291 291
292 292
293void KOAgendaItem::select(bool selected) 293void KOAgendaItem::select(bool selected)
294{ 294{
295 //qDebug("select %d %d",firstMultiItem(), nextMultiItem() ); 295 //qDebug("select %d %d",firstMultiItem(), nextMultiItem() );
296 if (mSelected == selected) return; 296 if (mSelected == selected) return;
297 mSelected = selected; 297 mSelected = selected;
298 if ( ! isVisible() ) 298 if ( ! isVisible() )
299 return; 299 return;
300 if ( firstMultiItem() ) 300 if ( firstMultiItem() )
301 firstMultiItem()->select( selected ); 301 firstMultiItem()->select( selected );
302 if ( !firstMultiItem() && nextMultiItem() ) { 302 if ( !firstMultiItem() && nextMultiItem() ) {
303 KOAgendaItem * placeItem = nextMultiItem(); 303 KOAgendaItem * placeItem = nextMultiItem();
304 while ( placeItem ) { 304 while ( placeItem ) {
305 placeItem->select( selected ); 305 placeItem->select( selected );
306 placeItem = placeItem->nextMultiItem(); 306 placeItem = placeItem->nextMultiItem();
307 } 307 }
308 } 308 }
309 globalFlagBlockAgendaItemUpdate = 0; 309 globalFlagBlockAgendaItemUpdate = 0;
310 paintMe( selected ); 310 paintMe( selected );
311 globalFlagBlockAgendaItemUpdate = 1; 311 globalFlagBlockAgendaItemUpdate = 1;
312 repaint( false ); 312 repaint( false );
313} 313}
314 314
315 315
316/* 316/*
317 The eventFilter has to filter the mouse events of the agenda item childs. The 317 The eventFilter has to filter the mouse events of the agenda item childs. The
318 events are fed into the event handling method of KOAgendaItem. This allows the 318 events are fed into the event handling method of KOAgendaItem. This allows the
319 KOAgenda to handle the KOAgendaItems by using an eventFilter. 319 KOAgenda to handle the KOAgendaItems by using an eventFilter.
320*/ 320*/
321bool KOAgendaItem::eventFilter ( QObject *object, QEvent *e ) 321bool KOAgendaItem::eventFilter ( QObject *object, QEvent *e )
322{ 322{
323 if (e->type() == QEvent::MouseButtonPress || 323 if (e->type() == QEvent::MouseButtonPress ||
324 e->type() == QEvent::MouseButtonDblClick || 324 e->type() == QEvent::MouseButtonDblClick ||
325 e->type() == QEvent::MouseButtonRelease || 325 e->type() == QEvent::MouseButtonRelease ||
326 e->type() == QEvent::MouseMove) { 326 e->type() == QEvent::MouseMove) {
327 QMouseEvent *me = (QMouseEvent *)e; 327 QMouseEvent *me = (QMouseEvent *)e;
328 QPoint itemPos = this->mapFromGlobal(((QWidget *)object)-> 328 QPoint itemPos = this->mapFromGlobal(((QWidget *)object)->
329 mapToGlobal(me->pos())); 329 mapToGlobal(me->pos()));
330 QMouseEvent returnEvent (e->type(),itemPos,me->button(),me->state()); 330 QMouseEvent returnEvent (e->type(),itemPos,me->button(),me->state());
331 return event(&returnEvent); 331 return event(&returnEvent);
332 } else { 332 } else {
333 return false; 333 return false;
334 } 334 }
335} 335}
336void KOAgendaItem::repaintMe( ) 336void KOAgendaItem::repaintMe( )
337{ 337{
338 paintMe ( mSelected ); 338 paintMe ( mSelected );
339} 339}
340void KOAgendaItem::paintMe( bool selected, QPainter* paint ) 340void KOAgendaItem::paintMe( bool selected, QPainter* paint )
341{ 341{
342 if ( globalFlagBlockAgendaItemUpdate && ! selected) 342 if ( globalFlagBlockAgendaItemUpdate && ! selected)
343 return; 343 return;
344 QPainter pa; 344 QPainter pa;
345 345
346 if ( mSelected ) { 346 if ( mSelected ) {
347 pa.begin( this ); 347 pa.begin( this );
348 } else { 348 } else {
349 if ( mAllDay ) 349 if ( mAllDay )
350 pa.begin( paintPixAllday() ); 350 pa.begin( paintPixAllday() );
351 else 351 else
352 pa.begin( paintPix() ); 352 pa.begin( paintPix() );
353 } 353 }
354 int x, yy, w, h; 354 int x, yy, w, h;
355 float nfh = 7.0; 355 float nfh = 7.0;
356 x = pos().x(); w = width(); h = height (); 356 x = pos().x(); w = width(); h = height ();
357 if ( mAllDay ) 357 if ( mAllDay )
358 yy = y(); 358 yy = y();
359 else 359 else
360 yy = mCellYTop * ( height() / cellHeight() ); 360 yy = mCellYTop * ( height() / cellHeight() );
361 if ( mSelected ) { 361 if ( mSelected ) {
362 pa.translate( -x, -yy ); 362 pa.translate( -x, -yy );
363 } 363 }
364 xPaintCoord= x; 364 xPaintCoord= x;
365 yPaintCoord = yy; 365 yPaintCoord = yy;
366 wPaintCoord = width(); 366 wPaintCoord = width();
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}
473void KOAgendaItem::resizePixmap( int w , int h )
474{
475 paintPix()->resize( w, h );
476 473
477}
478QPixmap * KOAgendaItem::paintPix() 474QPixmap * KOAgendaItem::paintPix()
479{ 475{
480 static QPixmap* mPaintPix = 0; 476 static QPixmap* mPaintPix = 0;
481 if ( ! mPaintPix ) { 477 if ( ! mPaintPix ) {
482 int w = QApplication::desktop()->width(); 478 int w = QApplication::desktop()->width();
483 int h = QApplication::desktop()->height(); 479 int h = QApplication::desktop()->height();
484 mPaintPix = new QPixmap(w,h); 480 mPaintPix = new QPixmap(w,h);
485 } 481 }
486 return mPaintPix ; 482 return mPaintPix ;
487} 483}
488QPixmap * KOAgendaItem::paintPixAllday() 484QPixmap * KOAgendaItem::paintPixAllday()
489{ 485{
490 static QPixmap* mPaintPixA = 0; 486 static QPixmap* mPaintPixA = 0;
491 if ( ! mPaintPixA ) { 487 if ( ! mPaintPixA ) {
492 int w = QApplication::desktop()->width(); 488 int w = QApplication::desktop()->width();
493 int h = QApplication::desktop()->height()/3; 489 int h = QApplication::desktop()->height()/5;
494 mPaintPixA = new QPixmap(w,h); 490 mPaintPixA = new QPixmap(w,h);
495 } 491 }
496 return mPaintPixA ; 492 return mPaintPixA ;
497} 493}
498 494
499void KOAgendaItem::paintEvent ( QPaintEvent *e ) 495void KOAgendaItem::paintEvent ( QPaintEvent *e )
500{ 496{
501 497
502 if ( globalFlagBlockAgendaItemPaint ) 498 if ( globalFlagBlockAgendaItemPaint )
503 return; 499 return;
504 if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 ) 500 if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 )
505 return; 501 return;
506 int yy; 502 int yy;
507 if ( mAllDay ) 503 if ( mAllDay )
508 yy = y(); 504 yy = y();
509 else 505 else
510 yy = mCellYTop * ( height() / cellHeight() ); 506 yy = mCellYTop * ( height() / cellHeight() );
511 int xx = x(); 507 int xx = x();
512 508
513 if ( xPaintCoord != xx || yPaintCoord != yy || 509 if ( xPaintCoord != xx || yPaintCoord != yy ||
514 wPaintCoord != width() || hPaintCoord != height()) { 510 wPaintCoord != width() || hPaintCoord != height()) {
515 xPaintCoord= xx; 511 xPaintCoord= xx;
516 yPaintCoord = yy; 512 yPaintCoord = yy;
517 wPaintCoord = width(); 513 wPaintCoord = width();
518 hPaintCoord = height(); 514 hPaintCoord = height();
519 globalFlagBlockAgendaItemUpdate = 0; 515 globalFlagBlockAgendaItemUpdate = 0;
520 paintMe( mSelected ); 516 paintMe( mSelected );
521 //qDebug("calling paintMe "); 517 //qDebug("calling paintMe ");
522 globalFlagBlockAgendaItemUpdate = 1; 518 globalFlagBlockAgendaItemUpdate = 1;
523 if ( mSelected ) 519 if ( mSelected )
524 return; 520 return;
525 } 521 }
526 int rx, ry, rw, rh; 522 int rx, ry, rw, rh;
527 rx = e->rect().x(); 523 rx = e->rect().x();
528 ry = e->rect().y(); 524 ry = e->rect().y();
529 rw = e->rect().width(); 525 rw = e->rect().width();
530 rh = e->rect().height(); 526 rh = e->rect().height();
531 //qDebug(" paintevent %s %d %d %d %d", mIncidence->summary().latin1(), x(), yy, width(), height()); 527 //qDebug(" paintevent %s %d %d %d %d", mIncidence->summary().latin1(), x(), yy, width(), height());
532 528
533 QPixmap* paintFrom ; 529 QPixmap* paintFrom ;
534 if ( mSelected ) { 530 if ( mSelected ) {
535 paintMe( mSelected ); 531 paintMe( mSelected );
536 return; 532 return;
537 } else { 533 } else {
538 if ( mAllDay ) 534 if ( mAllDay )
539 paintFrom = paintPixAllday(); 535 paintFrom = paintPixAllday();
540 else 536 else
541 paintFrom = paintPix(); 537 paintFrom = paintPix();
542 } 538 }
543 xx += rx; 539 xx += rx;
544 540
545 if ( xx < 0 ) { 541 if ( xx < 0 ) {
546 rw = rw + xx; 542 rw = rw + xx;
547 rx -= xx; 543 rx -= xx;
548 xx = 0; 544 xx = 0;
549 if ( rw <= 1 ) { 545 if ( rw <= 1 ) {
550 //qDebug("KOAgendaItem::Width1 <= 1 (%d). Returning. %s",rw,mDisplayedText.latin1()); 546 //qDebug("KOAgendaItem::Width1 <= 1 (%d). Returning. %s",rw,mDisplayedText.latin1());
551 return; 547 return;
552 } 548 }
553 } 549 }
554 if ( paintFrom->width() < xx+rw ) { 550 if ( paintFrom->width() < xx+rw ) {
555 rw = paintFrom->width() - xx; 551 rw = paintFrom->width() - xx;
556 if ( rw <= 1 ) { 552 if ( rw <= 1 ) {
557 //qDebug("KOAgendaItem::Width2 <= 1 (%d). Returning.%s ",rw,mDisplayedText.latin1() ); 553 //qDebug("KOAgendaItem::Width2 <= 1 (%d). Returning.%s ",rw,mDisplayedText.latin1() );
558 return; 554 return;
559 } 555 }
560 } 556 }
561 //qDebug("%d %d %d %d %d %d %d",rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh); 557 //qDebug("%d %d %d %d %d %d %d",rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh);
562 bitBlt (this, rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh ,CopyROP); 558 bitBlt (this, rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh ,CopyROP);
563} 559}
564void KOAgendaItem::computeText() 560void KOAgendaItem::computeText()
565{ 561{
566 mDisplayedText = mIncidence->summary(); 562 mDisplayedText = mIncidence->summary();
567 if ( (mIncidence->typeID() == todoID ) ) { 563 if ( (mIncidence->typeID() == todoID ) ) {
568 if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) { 564 if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) {
569 if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) 565 if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() )
570 mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")"; 566 mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")";
571 else if ( !(mIncidence->doesFloat())) 567 else if ( !(mIncidence->doesFloat()))
572 mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")"; 568 mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")";
573 } 569 }
574 } else { 570 } else {
575 if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda) 571 if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda)
576 mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + " - " + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ; 572 mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + " - " + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ;
577 573
578 if ( mAllDay ) { 574 if ( mAllDay ) {
579 if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) { 575 if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) {
580 if ( mIncidence->doesRecur() ) { 576 if ( mIncidence->doesRecur() ) {
581 mDisplayedText += " (" + mIncidence->recurrence()->recurrenceText() + ")"; 577 mDisplayedText += " (" + mIncidence->recurrence()->recurrenceText() + ")";
582 } else { 578 } else {
583 mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ; 579 mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ;
584 } 580 }
585 } 581 }
586 } 582 }
587 } 583 }
588 584
589 if ( !mIncidence->location().isEmpty() ) { 585 if ( !mIncidence->location().isEmpty() ) {
590 if ( mAllDay ) 586 if ( mAllDay )
591 mDisplayedText += " ("; 587 mDisplayedText += " (";
592 else 588 else
593 mDisplayedText += "\n("; 589 mDisplayedText += "\n(";
594 mDisplayedText += mIncidence->location() +")"; 590 mDisplayedText += mIncidence->location() +")";
595 } 591 }
596#ifdef DESKTOP_VERSION 592#ifdef DESKTOP_VERSION
597 QString tipText = mIncidence->summary(); 593 QString tipText = mIncidence->summary();
598 if ( !mIncidence->doesFloat() ) { 594 if ( !mIncidence->doesFloat() ) {
599 if ( mIncidence->typeID() == eventID ) { 595 if ( mIncidence->typeID() == eventID ) {
600 if ( (static_cast<Event*>(mIncidence))->isMultiDay() ) { 596 if ( (static_cast<Event*>(mIncidence))->isMultiDay() ) {
601 tipText += "\n"+i18n("From: ")+mIncidence->dtStartStr(); 597 tipText += "\n"+i18n("From: ")+mIncidence->dtStartStr();
602 tipText += "\n"+i18n("To: ")+(static_cast<Event*>(mIncidence))->dtEndStr(); 598 tipText += "\n"+i18n("To: ")+(static_cast<Event*>(mIncidence))->dtEndStr();
603 } 599 }
604 else { 600 else {
605 tipText += "\n"+i18n("Time: ")+mIncidence->dtStartTimeStr(); 601 tipText += "\n"+i18n("Time: ")+mIncidence->dtStartTimeStr();
606 tipText += " - "+(static_cast<Event*>(mIncidence))->dtEndTimeStr(); 602 tipText += " - "+(static_cast<Event*>(mIncidence))->dtEndTimeStr();
607 } 603 }
608 } 604 }
609 else if ( mIncidence->typeID() == todoID ) { 605 else if ( mIncidence->typeID() == todoID ) {
610 if (mIncidence->hasStartDate()) 606 if (mIncidence->hasStartDate())
611 tipText += "\n"+i18n("Start: ")+ (static_cast<Todo*>(mIncidence))->dtStartStr(); 607 tipText += "\n"+i18n("Start: ")+ (static_cast<Todo*>(mIncidence))->dtStartStr();
612 if (((Todo*)mIncidence)->hasDueDate()) 608 if (((Todo*)mIncidence)->hasDueDate())
613 tipText += "\n"+i18n("Due: ")+ (static_cast<Todo*>(mIncidence))->dtDueStr(); 609 tipText += "\n"+i18n("Due: ")+ (static_cast<Todo*>(mIncidence))->dtDueStr();
614 } 610 }
615 } else if ( mIncidence->typeID() == todoID ) { 611 } else if ( mIncidence->typeID() == todoID ) {
616 if (mIncidence->hasStartDate()) 612 if (mIncidence->hasStartDate())
617 tipText += "\n"+i18n("Start: ")+ (static_cast<Todo*>(mIncidence))->dtStartDateStr(); 613 tipText += "\n"+i18n("Start: ")+ (static_cast<Todo*>(mIncidence))->dtStartDateStr();
618 if (((Todo*)mIncidence)->hasDueDate()) 614 if (((Todo*)mIncidence)->hasDueDate())
619 tipText += "\n"+i18n("Due: ")+ (static_cast<Todo*>(mIncidence))->dtDueDateStr(); 615 tipText += "\n"+i18n("Due: ")+ (static_cast<Todo*>(mIncidence))->dtDueDateStr();
620 } 616 }
621 617
622 if (!mIncidence->location().isEmpty()) { 618 if (!mIncidence->location().isEmpty()) {
623 tipText += "\n"+i18n("Location: ")+mIncidence->location(); 619 tipText += "\n"+i18n("Location: ")+mIncidence->location();
624 } 620 }
625 QToolTip::add(this,tipText,toolTipGroup(),""); 621 QToolTip::add(this,tipText,toolTipGroup(),"");
626#endif 622#endif
627} 623}
628void KOAgendaItem::updateItem() 624void KOAgendaItem::updateItem()
629{ 625{
630 computeText(); 626 computeText();
631 627
632 //qDebug("KOAgendaItem:: updateItem() %s %d %d ",incidence()->summary().latin1(), x(), y()); 628 //qDebug("KOAgendaItem:: updateItem() %s %d %d ",incidence()->summary().latin1(), x(), y());
633 paintMe( mSelected ); 629 paintMe( mSelected );
634 repaint( false); 630 repaint( false);
635} 631}
636 632
637void KOAgendaItem::resizeEvent ( QResizeEvent *ev ) 633void KOAgendaItem::resizeEvent ( QResizeEvent *ev )
638{ 634{
639 //qDebug("KOAgendaItem::resizeEvent %s ", mIncidence->summary().latin1()); 635 //qDebug("KOAgendaItem::resizeEvent %s ", mIncidence->summary().latin1());
640 paintMe( mSelected ); 636 paintMe( mSelected );
641 repaint( false ); 637 repaint( false );
642} 638}
643 639
644/* 640/*
645 Return height of item in units of agenda cells 641 Return height of item in units of agenda cells
646*/ 642*/
647int KOAgendaItem::cellHeight() 643int KOAgendaItem::cellHeight()
648{ 644{
649 int ret = mCellYBottom - mCellYTop + 1; 645 int ret = mCellYBottom - mCellYTop + 1;
650 if ( ret <= 0 ) { 646 if ( ret <= 0 ) {
651 ret = 1; 647 ret = 1;
652 mCellYBottom = 0; 648 mCellYBottom = 0;
653 mCellYTop = 0; 649 mCellYTop = 0;
654 } 650 }
655 return ret; 651 return ret;
656} 652}
657 653
658/* 654/*
659 Return height of item in units of agenda cells 655 Return height of item in units of agenda cells
660*/ 656*/
661int KOAgendaItem::cellWidth() 657int KOAgendaItem::cellWidth()
662{ 658{
663 return mCellXWidth - mCellX + 1; 659 return mCellXWidth - mCellX + 1;
664} 660}
665 661
666void KOAgendaItem::setItemDate(QDate qd) 662void KOAgendaItem::setItemDate(QDate qd)
667{ 663{
668 mDate = qd; 664 mDate = qd;
669} 665}
670 666
671void KOAgendaItem::setCellXY(int X, int YTop, int YBottom) 667void KOAgendaItem::setCellXY(int X, int YTop, int YBottom)
672{ 668{
673 mCellX = X; 669 mCellX = X;
674 mCellYTop = YTop; 670 mCellYTop = YTop;
675 mCellYBottom = YBottom; 671 mCellYBottom = YBottom;
676} 672}
677 673
678void KOAgendaItem::setCellXWidth(int xwidth) 674void KOAgendaItem::setCellXWidth(int xwidth)
679{ 675{
680 mCellXWidth = xwidth; 676 mCellXWidth = xwidth;
681} 677}
682 678
683void KOAgendaItem::setCellX(int XLeft, int XRight) 679void KOAgendaItem::setCellX(int XLeft, int XRight)
684{ 680{
685 mCellX = XLeft; 681 mCellX = XLeft;
686 mCellXWidth = XRight; 682 mCellXWidth = XRight;
687} 683}
688 684
689void KOAgendaItem::setCellY(int YTop, int YBottom) 685void KOAgendaItem::setCellY(int YTop, int YBottom)
690{ 686{
691 mCellYTop = YTop; 687 mCellYTop = YTop;
692 mCellYBottom = YBottom; 688 mCellYBottom = YBottom;
693} 689}
694 690
695void KOAgendaItem::setSubCell(int subCell) 691void KOAgendaItem::setSubCell(int subCell)
696{ 692{
697 mSubCell = subCell; 693 mSubCell = subCell;
698} 694}
699 695
700void KOAgendaItem::setSubCells(int subCells) 696void KOAgendaItem::setSubCells(int subCells)
701{ 697{
702 mSubCells = subCells; 698 mSubCells = subCells;
703} 699}
704 700
705void KOAgendaItem::setMultiItem(KOAgendaItem *first,KOAgendaItem *next, 701void KOAgendaItem::setMultiItem(KOAgendaItem *first,KOAgendaItem *next,
706 KOAgendaItem *last) 702 KOAgendaItem *last)
707{ 703{
708 mFirstMultiItem = first; 704 mFirstMultiItem = first;
709 mNextMultiItem = next; 705 mNextMultiItem = next;
710 mLastMultiItem = last; 706 mLastMultiItem = last;
711} 707}
712 708
713void KOAgendaItem::startMove() 709void KOAgendaItem::startMove()
714{ 710{
715 mStartCellX = mCellX; 711 mStartCellX = mCellX;
716 mStartCellXWidth = mCellXWidth; 712 mStartCellXWidth = mCellXWidth;
717 mStartCellYTop = mCellYTop; 713 mStartCellYTop = mCellYTop;
718 mStartCellYBottom = mCellYBottom; 714 mStartCellYBottom = mCellYBottom;
719} 715}
720 716
721void KOAgendaItem::resetMove() 717void KOAgendaItem::resetMove()
722{ 718{
723 mCellX = mStartCellX; 719 mCellX = mStartCellX;
724 mCellXWidth = mStartCellXWidth; 720 mCellXWidth = mStartCellXWidth;
725 mCellYTop = mStartCellYTop; 721 mCellYTop = mStartCellYTop;
726 mCellYBottom = mStartCellYBottom; 722 mCellYBottom = mStartCellYBottom;
727} 723}
728 724
729void KOAgendaItem::moveRelative(int dx, int dy) 725void KOAgendaItem::moveRelative(int dx, int dy)
730{ 726{
731 int newX = cellX() + dx; 727 int newX = cellX() + dx;
732 int newXWidth = cellXWidth() + dx; 728 int newXWidth = cellXWidth() + dx;
733 int newYTop = cellYTop() + dy; 729 int newYTop = cellYTop() + dy;
734 int newYBottom = cellYBottom() + dy; 730 int newYBottom = cellYBottom() + dy;
735 setCellXY(newX,newYTop,newYBottom); 731 setCellXY(newX,newYTop,newYBottom);
736 setCellXWidth(newXWidth); 732 setCellXWidth(newXWidth);
737} 733}
738 734
739void KOAgendaItem::expandTop(int dy) 735void KOAgendaItem::expandTop(int dy)
740{ 736{
741 int newYTop = cellYTop() + dy; 737 int newYTop = cellYTop() + dy;
742 int newYBottom = cellYBottom(); 738 int newYBottom = cellYBottom();
743 if (newYTop > newYBottom) newYTop = newYBottom; 739 if (newYTop > newYBottom) newYTop = newYBottom;
744 setCellY(newYTop, newYBottom); 740 setCellY(newYTop, newYBottom);
745} 741}
746 742
747void KOAgendaItem::expandBottom(int dy) 743void KOAgendaItem::expandBottom(int dy)
748{ 744{
749 int newYTop = cellYTop(); 745 int newYTop = cellYTop();
750 int newYBottom = cellYBottom() + dy; 746 int newYBottom = cellYBottom() + dy;
751 if (newYBottom < newYTop) newYBottom = newYTop; 747 if (newYBottom < newYTop) newYBottom = newYTop;
752 setCellY(newYTop, newYBottom); 748 setCellY(newYTop, newYBottom);
753} 749}
754 750
755void KOAgendaItem::expandLeft(int dx) 751void KOAgendaItem::expandLeft(int dx)
756{ 752{
757 int newX = cellX() + dx; 753 int newX = cellX() + dx;
758 int newXWidth = cellXWidth(); 754 int newXWidth = cellXWidth();
759 if (newX > newXWidth) newX = newXWidth; 755 if (newX > newXWidth) newX = newXWidth;
760 setCellX(newX,newXWidth); 756 setCellX(newX,newXWidth);
761} 757}
762 758
763void KOAgendaItem::expandRight(int dx) 759void KOAgendaItem::expandRight(int dx)
764{ 760{
765 int newX = cellX(); 761 int newX = cellX();
766 int newXWidth = cellXWidth() + dx; 762 int newXWidth = cellXWidth() + dx;
767 if (newXWidth < newX) newXWidth = newX; 763 if (newXWidth < newX) newXWidth = newX;
768 setCellX(newX,newXWidth); 764 setCellX(newX,newXWidth);
769} 765}
770 766
771QToolTipGroup *KOAgendaItem::toolTipGroup() 767QToolTipGroup *KOAgendaItem::toolTipGroup()
772{ 768{
773 if (!mToolTipGroup) mToolTipGroup = new QToolTipGroup(0); 769 if (!mToolTipGroup) mToolTipGroup = new QToolTipGroup(0);
774 return mToolTipGroup; 770 return mToolTipGroup;
775} 771}
776 772
777void KOAgendaItem::dragEnterEvent( QDragEnterEvent *e ) 773void KOAgendaItem::dragEnterEvent( QDragEnterEvent *e )
778{ 774{
779#ifndef KORG_NODND 775#ifndef KORG_NODND
780 if ( ICalDrag::canDecode( e ) || VCalDrag::canDecode( e ) || 776 if ( ICalDrag::canDecode( e ) || VCalDrag::canDecode( e ) ||
781 !QTextDrag::canDecode( e ) ) { 777 !QTextDrag::canDecode( e ) ) {
782 e->ignore(); 778 e->ignore();
783 return; 779 return;
784 } 780 }
785 e->accept(); 781 e->accept();
786#endif 782#endif
787} 783}
788 784
789void KOAgendaItem::dropEvent( QDropEvent *e ) 785void KOAgendaItem::dropEvent( QDropEvent *e )
790{ 786{
791#ifndef KORG_NODND 787#ifndef KORG_NODND
792 QString text; 788 QString text;
793 if(QTextDrag::decode(e,text)) 789 if(QTextDrag::decode(e,text))
794 { 790 {
795 kdDebug() << "Dropped : " << text << endl; 791 kdDebug() << "Dropped : " << text << endl;
796 QStringList emails = QStringList::split(",",text); 792 QStringList emails = QStringList::split(",",text);
797 for(QStringList::ConstIterator it = emails.begin();it!=emails.end();++it) { 793 for(QStringList::ConstIterator it = emails.begin();it!=emails.end();++it) {
798 kdDebug() << " Email: " << (*it) << endl; 794 kdDebug() << " Email: " << (*it) << endl;
799 int pos = (*it).find("<"); 795 int pos = (*it).find("<");
800 QString name = (*it).left(pos); 796 QString name = (*it).left(pos);
801 QString email = (*it).mid(pos); 797 QString email = (*it).mid(pos);
802 if (!email.isEmpty()) { 798 if (!email.isEmpty()) {
803 mIncidence->addAttendee(new Attendee(name,email)); 799 mIncidence->addAttendee(new Attendee(name,email));
804 } 800 }
805 } 801 }
806 } 802 }
807#endif 803#endif
808} 804}
809 805
810 806
811QPtrList<KOAgendaItem> KOAgendaItem::conflictItems() 807QPtrList<KOAgendaItem> KOAgendaItem::conflictItems()
812{ 808{
813 return mConflictItems; 809 return mConflictItems;
814} 810}
815 811
816void KOAgendaItem::setConflictItems(QPtrList<KOAgendaItem> ci) 812void KOAgendaItem::setConflictItems(QPtrList<KOAgendaItem> ci)
817{ 813{
818 mConflictItems = ci; 814 mConflictItems = ci;
819 KOAgendaItem *item; 815 KOAgendaItem *item;
820 for ( item=mConflictItems.first(); item != 0; 816 for ( item=mConflictItems.first(); item != 0;
821 item=mConflictItems.next() ) { 817 item=mConflictItems.next() ) {
822 item->addConflictItem(this); 818 item->addConflictItem(this);
823 } 819 }
824} 820}
825 821
826void KOAgendaItem::addConflictItem(KOAgendaItem *ci) 822void KOAgendaItem::addConflictItem(KOAgendaItem *ci)
827{ 823{
828 if (mConflictItems.find(ci)<0) 824 if (mConflictItems.find(ci)<0)
829 mConflictItems.append(ci); 825 mConflictItems.append(ci);
830} 826}
831 827
832bool KOAgendaItem::checkLayout() 828bool KOAgendaItem::checkLayout()
833{ 829{
834 if ( !mConflictItems.count() ) 830 if ( !mConflictItems.count() )
835 return true; 831 return true;
836 int max = 0; 832 int max = 0;
837 KOAgendaItem *item; 833 KOAgendaItem *item;
838 for ( item=mConflictItems.first(); item != 0; 834 for ( item=mConflictItems.first(); item != 0;
839 item=mConflictItems.next() ) { 835 item=mConflictItems.next() ) {
840 if ( item->subCells() > max ) 836 if ( item->subCells() > max )
841 max = item->subCells(); 837 max = item->subCells();
842 } 838 }
843 if ( max > subCells() ) { 839 if ( max > subCells() ) {
844 setSubCells( max ); 840 setSubCells( max );
845 return false; 841 return false;
846 } 842 }
847 return true; 843 return true;
848} 844}
diff --git a/korganizer/koagendaitem.h b/korganizer/koagendaitem.h
index 7103abe..3ed68b0 100644
--- a/korganizer/koagendaitem.h
+++ b/korganizer/koagendaitem.h
@@ -1,165 +1,164 @@
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 void resizePixmap( int, int );
105 static QPixmap * paintPix(); 104 static QPixmap * paintPix();
106 static QPixmap * paintPixAllday(); 105 static QPixmap * paintPixAllday();
107 void updateItem(); 106 void updateItem();
108 void computeText(); 107 void computeText();
109 void recreateIncidence(); 108 void recreateIncidence();
110 bool checkLayout(); 109 bool checkLayout();
111 void initColor (); 110 void initColor ();
112 public slots: 111 public slots:
113 bool updateIcons( QPainter *, bool ); 112 bool updateIcons( QPainter *, bool );
114 void select(bool=true); 113 void select(bool=true);
115 114
116 protected: 115 protected:
117 void dragEnterEvent(QDragEnterEvent *e); 116 void dragEnterEvent(QDragEnterEvent *e);
118 void dropEvent(QDropEvent *e); 117 void dropEvent(QDropEvent *e);
119 void paintEvent ( QPaintEvent * ); 118 void paintEvent ( QPaintEvent * );
120 void resizeEvent ( QResizeEvent *ev ); 119 void resizeEvent ( QResizeEvent *ev );
121 120
122 private: 121 private:
123 KOAgendaItemWhatsThis* mKOAgendaItemWhatsThis; 122 KOAgendaItemWhatsThis* mKOAgendaItemWhatsThis;
124 bool mAllDay; 123 bool mAllDay;
125 bool mWhiteText; 124 bool mWhiteText;
126 int mCellX; 125 int mCellX;
127 int mCellXWidth; 126 int mCellXWidth;
128 int mCellYTop,mCellYBottom; 127 int mCellYTop,mCellYBottom;
129 int mSubCell; // subcell number of this item 128 int mSubCell; // subcell number of this item
130 int mSubCells; // Total number of subcells in cell of this item 129 int mSubCells; // Total number of subcells in cell of this item
131 int xPaintCoord; 130 int xPaintCoord;
132 int yPaintCoord; 131 int yPaintCoord;
133 int wPaintCoord; 132 int wPaintCoord;
134 int hPaintCoord; 133 int hPaintCoord;
135 // Variables to remember start position 134 // Variables to remember start position
136 int mStartCellX; 135 int mStartCellX;
137 int mStartCellXWidth; 136 int mStartCellXWidth;
138 int mStartCellYTop,mStartCellYBottom; 137 int mStartCellYTop,mStartCellYBottom;
139 int mLastMovePos; 138 int mLastMovePos;
140 139
141 // Multi item pointers 140 // Multi item pointers
142 KOAgendaItem *mFirstMultiItem; 141 KOAgendaItem *mFirstMultiItem;
143 KOAgendaItem *mNextMultiItem; 142 KOAgendaItem *mNextMultiItem;
144 KOAgendaItem *mLastMultiItem; 143 KOAgendaItem *mLastMultiItem;
145 144
146 int mFontPixelSize; 145 int mFontPixelSize;
147 Incidence *mIncidence; // corresponding event or todo 146 Incidence *mIncidence; // corresponding event or todo
148 QDate mDate; //date this events occurs (for recurrence) 147 QDate mDate; //date this events occurs (for recurrence)
149 //void showIcon( QLabel*, int ); 148 //void showIcon( QLabel*, int );
150 //QLabel *mTodoIconLabel; 149 //QLabel *mTodoIconLabel;
151 //QLabel *mItemLabel; 150 //QLabel *mItemLabel;
152 //QWidget *mIconBox; 151 //QWidget *mIconBox;
153 //QLabel *mIconAlarm,*mIconRecur,*mIconReadonly; 152 //QLabel *mIconAlarm,*mIconRecur,*mIconReadonly;
154 //QLabel *mIconReply,*mIconGroup,*mIconOrganizer; 153 //QLabel *mIconReply,*mIconGroup,*mIconOrganizer;
155 //QLabel *mIconMoreInfo; 154 //QLabel *mIconMoreInfo;
156 static QToolTipGroup *mToolTipGroup; 155 static QToolTipGroup *mToolTipGroup;
157 156
158 QColor mBackgroundColor; 157 QColor mBackgroundColor;
159 QColorGroup mColorGroup; 158 QColorGroup mColorGroup;
160 QString mDisplayedText; 159 QString mDisplayedText;
161 bool mSelected; 160 bool mSelected;
162 QPtrList<KOAgendaItem> mConflictItems; 161 QPtrList<KOAgendaItem> mConflictItems;
163}; 162};
164 163
165#endif // KOAGENDAITEM_H 164#endif // KOAGENDAITEM_H