summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/koagenda.cpp21
-rw-r--r--korganizer/koagendaitem.h1
-rw-r--r--korganizer/koagendaview.cpp3
3 files changed, 14 insertions, 11 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index 7d9d674..88f5d99 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -1422,111 +1422,111 @@ void KOAgenda::finishUpdate()
1422 for ( item=mItems.first(); item != 0; item=mItems.next() ) { 1422 for ( item=mItems.first(); item != 0; item=mItems.next() ) {
1423 item->repaintMe( ); 1423 item->repaintMe( );
1424 } 1424 }
1425 globalFlagBlockAgendaItemUpdate = 1; 1425 globalFlagBlockAgendaItemUpdate = 1;
1426 qApp->processEvents(); 1426 qApp->processEvents();
1427 globalFlagBlockAgendaItemPaint = 0; 1427 globalFlagBlockAgendaItemPaint = 0;
1428 for ( item=mItems.first(); item != 0; item=mItems.next() ) { 1428 for ( item=mItems.first(); item != 0; item=mItems.next() ) {
1429 item->repaint( false ); 1429 item->repaint( false );
1430 } 1430 }
1431 marcus_bains(); 1431 marcus_bains();
1432} 1432}
1433 1433
1434/* 1434/*
1435 Draw grid in the background of the agenda. 1435 Draw grid in the background of the agenda.
1436*/ 1436*/
1437void KOAgenda::drawContentsToPainter( QPainter* paint, bool backgroundOnly )// int cx, int cy, int cw, int ch) 1437void KOAgenda::drawContentsToPainter( QPainter* paint, bool backgroundOnly )// int cx, int cy, int cw, int ch)
1438{ 1438{
1439 1439
1440 1440
1441 if ( ! mGridSpacingX || ! mGridSpacingY ||! mHolidayMask ) 1441 if ( ! mGridSpacingX || ! mGridSpacingY ||! mHolidayMask )
1442 return; 1442 return;
1443 if ( globalFlagBlockAgenda > 1 && globalFlagBlockAgenda < 4 ) 1443 if ( globalFlagBlockAgenda > 1 && globalFlagBlockAgenda < 4 )
1444 return; 1444 return;
1445 int cx = 0, cy = 0, cw = contentsWidth(), ch = contentsHeight(); 1445 int cx = 0, cy = 0, cw = contentsWidth(), ch = contentsHeight();
1446 if ( ch < 1 ) 1446 if ( ch < 1 )
1447 ch = 1; 1447 ch = 1;
1448 if ( mPaintPixmap.width() < contentsWidth()+42 || mPaintPixmap.height() < ch ) { 1448 if ( mPaintPixmap.width() < contentsWidth()+42 || mPaintPixmap.height() < ch ) {
1449 mPaintPixmap.resize( contentsWidth()+42, ch ); 1449 mPaintPixmap.resize( contentsWidth()+42, ch );
1450 } 1450 }
1451 mCurPixWid = contentsWidth(); 1451 mCurPixWid = contentsWidth();
1452 mCurPixHei = ch; 1452 mCurPixHei = ch;
1453 if ( mHighlightPixmap.width() < mGridSpacingX-1 ) { 1453 if ( mHighlightPixmap.width() < mGridSpacingX-1 ) {
1454 mHighlightPixmap.resize( mGridSpacingX-1, 5 ); 1454 mHighlightPixmap.resize( mGridSpacingX-1, 5 );
1455 mHighlightPixmap.fill ( KOPrefs::instance()->mHighlightColor ); 1455 mHighlightPixmap.fill ( KOPrefs::instance()->mHighlightColor );
1456 } 1456 }
1457 mPixPainter.begin( &mPaintPixmap) ; 1457 mPixPainter.begin( &mPaintPixmap) ;
1458 //qDebug("wid %d hei %d ",mPaintPixmap.width(),mPaintPixmap.height() ); 1458 //qDebug("wid %d hei %d ",mPaintPixmap.width(),mPaintPixmap.height() );
1459 QPainter * p ; 1459 QPainter * p ;
1460 if (paint == 0) { 1460 if (paint == 0) {
1461 mPaintPixmap.fill(KOPrefs::instance()->mAgendaBgColor); 1461 mPaintPixmap.fill(KOPrefs::instance()->mAgendaBgColor);
1462 p = &mPixPainter; 1462 p = &mPixPainter;
1463 } 1463 }
1464 else 1464 else
1465 p = paint ; 1465 p = paint ;
1466 // qDebug("++++++KOAgenda::drawContentsTo Painter %d %d %d %d ", cx, cy, cw, ch); 1466 // qDebug("++++++KOAgenda::drawContentsTo Painter %d %d %d %d ", cx, cy, cw, ch);
1467 1467
1468 //--cx;++cw; 1468 //--cx;++cw;
1469 int lGridSpacingY = mGridSpacingY*2; 1469 int lGridSpacingY = mGridSpacingY*2;
1470 int selDay; 1470 uint selDay;
1471 QDate curDate = QDate::currentDate(); 1471 QDate curDate = QDate::currentDate();
1472 if ( !backgroundOnly ) { 1472 if ( !backgroundOnly ) {
1473 for ( selDay = 0; selDay < mSelectedDates.count(); ++selDay) 1473 for ( selDay = 0; selDay < mSelectedDates.count(); ++selDay)
1474 { 1474 {
1475 if ( mSelectedDates[selDay] == curDate && KOPrefs::instance()->mHighlightCurrentDay) { 1475 if ( mSelectedDates[selDay] == curDate && KOPrefs::instance()->mHighlightCurrentDay) {
1476 int x1 = cx; 1476 int x1 = cx;
1477 int y1 = 0; 1477 int y1 = 0;
1478 if (y1 < cy) y1 = cy; 1478 if (y1 < cy) y1 = cy;
1479 int x2 = cx+cw-1; 1479 int x2 = cx+cw-1;
1480 int y2 = contentsHeight(); 1480 int y2 = contentsHeight();
1481 if (y2 > cy+ch-1) y2=cy+ch-1; 1481 if (y2 > cy+ch-1) y2=cy+ch-1;
1482 if (x2 >= x1 && y2 >= y1) { 1482 if (x2 >= x1 && y2 >= y1) {
1483 int gxStart = selDay; 1483 int gxStart = selDay;
1484 int gxEnd = gxStart ; 1484 //int gxEnd = gxStart ;
1485 int xStart = KOGlobals::self()->reverseLayout() ? 1485 int xStart = KOGlobals::self()->reverseLayout() ?
1486 (mColumns - 1 - gxStart)*mGridSpacingX : 1486 (mColumns - 1 - gxStart)*mGridSpacingX :
1487 gxStart*mGridSpacingX; 1487 gxStart*mGridSpacingX;
1488 if (xStart < x1) xStart = x1; 1488 if (xStart < x1) xStart = x1;
1489 int xEnd = KOGlobals::self()->reverseLayout() ? 1489 int xEnd = KOGlobals::self()->reverseLayout() ?
1490 (mColumns - gxStart)*mGridSpacingX-1 : 1490 (mColumns - gxStart)*mGridSpacingX-1 :
1491 (gxStart+1)*mGridSpacingX-1; 1491 (gxStart+1)*mGridSpacingX-1;
1492 if (xEnd > x2) xEnd = x2; 1492 if (xEnd > x2) xEnd = x2;
1493 if ( KOPrefs::instance()->mUseHighlightLightColor ) 1493 if ( KOPrefs::instance()->mUseHighlightLightColor )
1494 p->fillRect(xStart,y1,xEnd-xStart+1,y2-y1+1, 1494 p->fillRect(xStart,y1,xEnd-xStart+1,y2-y1+1,
1495 KOPrefs::instance()->mAgendaBgColor.light()); 1495 KOPrefs::instance()->mAgendaBgColor.light());
1496 else 1496 else
1497 p->fillRect(xStart,y1,xEnd-xStart+1,y2-y1+1, 1497 p->fillRect(xStart,y1,xEnd-xStart+1,y2-y1+1,
1498 KOPrefs::instance()->mAgendaBgColor.dark()); 1498 KOPrefs::instance()->mAgendaBgColor.dark());
1499 1499
1500 } 1500 }
1501 } 1501 }
1502 } 1502 }
1503 } 1503 }
1504 // Highlight working hours 1504 // Highlight working hours
1505 1505
1506 if ( !backgroundOnly ) 1506 if ( !backgroundOnly )
1507 if (mWorkingHoursEnable) { 1507 if (mWorkingHoursEnable) {
1508 int x1 = cx; 1508 int x1 = cx;
1509 int y1 = mWorkingHoursYTop; 1509 int y1 = mWorkingHoursYTop;
1510 if (y1 < cy) y1 = cy; 1510 if (y1 < cy) y1 = cy;
1511 int x2 = cx+cw-1; 1511 int x2 = cx+cw-1;
1512 // int x2 = mGridSpacingX * 5 - 1; 1512 // int x2 = mGridSpacingX * 5 - 1;
1513 // if (x2 > cx+cw-1) x2 = cx + cw - 1; 1513 // if (x2 > cx+cw-1) x2 = cx + cw - 1;
1514 int y2 = mWorkingHoursYBottom; 1514 int y2 = mWorkingHoursYBottom;
1515 if (y2 > cy+ch-1) y2=cy+ch-1; 1515 if (y2 > cy+ch-1) y2=cy+ch-1;
1516 1516
1517 if (x2 >= x1 && y2 >= y1) { 1517 if (x2 >= x1 && y2 >= y1) {
1518 // qDebug("x1 %d mGridSpacingX %d ", x1, mGridSpacingX ); 1518 // qDebug("x1 %d mGridSpacingX %d ", x1, mGridSpacingX );
1519 int gxStart = x1/mGridSpacingX; 1519 int gxStart = x1/mGridSpacingX;
1520 int gxEnd = x2/mGridSpacingX; 1520 int gxEnd = x2/mGridSpacingX;
1521 while(gxStart <= gxEnd) { 1521 while(gxStart <= gxEnd) {
1522 if (gxStart < int(mHolidayMask->count()) && 1522 if (gxStart < int(mHolidayMask->count()) &&
1523 !mHolidayMask->at(gxStart)) { 1523 !mHolidayMask->at(gxStart)) {
1524 int xStart = KOGlobals::self()->reverseLayout() ? 1524 int xStart = KOGlobals::self()->reverseLayout() ?
1525 (mColumns - 1 - gxStart)*mGridSpacingX : 1525 (mColumns - 1 - gxStart)*mGridSpacingX :
1526 gxStart*mGridSpacingX; 1526 gxStart*mGridSpacingX;
1527 if (xStart < x1) xStart = x1; 1527 if (xStart < x1) xStart = x1;
1528 int xEnd = KOGlobals::self()->reverseLayout() ? 1528 int xEnd = KOGlobals::self()->reverseLayout() ?
1529 (mColumns - gxStart)*mGridSpacingX-1 : 1529 (mColumns - gxStart)*mGridSpacingX-1 :
1530 (gxStart+1)*mGridSpacingX-1; 1530 (gxStart+1)*mGridSpacingX-1;
1531 if (xEnd > x2) xEnd = x2; 1531 if (xEnd > x2) xEnd = x2;
1532 if ( mSelectedDates[gxStart] == curDate && KOPrefs::instance()->mHighlightCurrentDay ) { 1532 if ( mSelectedDates[gxStart] == curDate && KOPrefs::instance()->mHighlightCurrentDay ) {
@@ -1877,96 +1877,97 @@ void KOAgenda::insertMultiItem (Event *event,QDate qd,int XBegin,int XEnd,
1877 1877
1878 KOAgendaItem *next = 0; 1878 KOAgendaItem *next = 0;
1879 KOAgendaItem *last = multiItems.last(); 1879 KOAgendaItem *last = multiItems.last();
1880 KOAgendaItem *first = multiItems.first(); 1880 KOAgendaItem *first = multiItems.first();
1881 KOAgendaItem *setFirst,*setLast; 1881 KOAgendaItem *setFirst,*setLast;
1882 current = first; 1882 current = first;
1883 while (current) { 1883 while (current) {
1884 next = multiItems.next(); 1884 next = multiItems.next();
1885 if (current == first) setFirst = 0; 1885 if (current == first) setFirst = 0;
1886 else setFirst = first; 1886 else setFirst = first;
1887 if (current == last) setLast = 0; 1887 if (current == last) setLast = 0;
1888 else setLast = last; 1888 else setLast = last;
1889 1889
1890 current->setMultiItem(setFirst,next,setLast); 1890 current->setMultiItem(setFirst,next,setLast);
1891 current = next; 1891 current = next;
1892 } 1892 }
1893} 1893}
1894 1894
1895 1895
1896//QSizePolicy KOAgenda::sizePolicy() const 1896//QSizePolicy KOAgenda::sizePolicy() const
1897//{ 1897//{
1898 // Thought this would make the all-day event agenda minimum size and the 1898 // Thought this would make the all-day event agenda minimum size and the
1899 // normal agenda take the remaining space. But it doesn´t work. The QSplitter 1899 // normal agenda take the remaining space. But it doesn´t work. The QSplitter
1900 // don´t seem to think that an Expanding widget needs more space than a 1900 // don´t seem to think that an Expanding widget needs more space than a
1901 // Preferred one. 1901 // Preferred one.
1902 // But it doesn´t hurt, so it stays. 1902 // But it doesn´t hurt, so it stays.
1903// if (mAllDayMode) { 1903// if (mAllDayMode) {
1904// return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred); 1904// return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
1905// } else { 1905// } else {
1906// return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); 1906// return QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
1907// } 1907// }
1908//} 1908//}
1909void KOAgenda::finishResize ( ) 1909void KOAgenda::finishResize ( )
1910{ 1910{
1911 //qDebug("finishResize+++++++++++++++++++++++++++++++ ( ) "); 1911 //qDebug("finishResize+++++++++++++++++++++++++++++++ ( ) ");
1912 if ( globalFlagBlockAgenda == 0 ) { 1912 if ( globalFlagBlockAgenda == 0 ) {
1913 finishUpdate(); 1913 finishUpdate();
1914 //qDebug("finishUpdate() called "); 1914 //qDebug("finishUpdate() called ");
1915 } 1915 }
1916} 1916}
1917/* 1917/*
1918 Overridden from QScrollView to provide proper resizing of KOAgendaItems. 1918 Overridden from QScrollView to provide proper resizing of KOAgendaItems.
1919*/ 1919*/
1920void KOAgenda::resizeEvent ( QResizeEvent *ev ) 1920void KOAgenda::resizeEvent ( QResizeEvent *ev )
1921{ 1921{
1922 mSelectionHeight = 0; 1922 mSelectionHeight = 0;
1923 mResizeTimer.start( 150 , true ); 1923 mResizeTimer.start( 150 , true );
1924 computeSizes(); 1924 computeSizes();
1925 QScrollView::resizeEvent( ev );
1925 return; 1926 return;
1926 1927
1927} 1928}
1928void KOAgenda::computeSizes() 1929void KOAgenda::computeSizes()
1929{ 1930{
1930 if ( globalFlagBlockStartup ) 1931 if ( globalFlagBlockStartup )
1931 return; 1932 return;
1932 int frameOffset = frameWidth() * 2 +1; 1933 int frameOffset = frameWidth() * 2 +1;
1933 if (mAllDayMode) { 1934 if (mAllDayMode) {
1934 mGridSpacingX = (width()-frameOffset) / mColumns; 1935 mGridSpacingX = (width()-frameOffset) / mColumns;
1935 mGridSpacingY = height() - 2 * frameWidth() - 1; 1936 mGridSpacingY = height() - 2 * frameWidth() - 1;
1936 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY + 1); 1937 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY + 1);
1937 // mGridSpacingY = height(); 1938 // mGridSpacingY = height();
1938 // resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); 1939 // resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 );
1939 1940
1940 KOAgendaItem *item; 1941 KOAgendaItem *item;
1941 int subCellWidth; 1942 int subCellWidth;
1942 for ( item=mItems.first(); item != 0; item=mItems.next() ) { 1943 for ( item=mItems.first(); item != 0; item=mItems.next() ) {
1943 subCellWidth = mGridSpacingY / item->subCells(); 1944 subCellWidth = mGridSpacingY / item->subCells();
1944 item->resize(mGridSpacingX * item->cellWidth(),subCellWidth); 1945 item->resize(mGridSpacingX * item->cellWidth(),subCellWidth);
1945 moveChild(item,KOGlobals::self()->reverseLayout() ? 1946 moveChild(item,KOGlobals::self()->reverseLayout() ?
1946 (mColumns - 1 - item->cellX()) * mGridSpacingX : 1947 (mColumns - 1 - item->cellX()) * mGridSpacingX :
1947 item->cellX() * mGridSpacingX, 1948 item->cellX() * mGridSpacingX,
1948 item->subCell() * subCellWidth); 1949 item->subCell() * subCellWidth);
1949 } 1950 }
1950 KOPrefs::instance()->mAllDaySize = mGridSpacingY; 1951 KOPrefs::instance()->mAllDaySize = mGridSpacingY;
1951 } else { 1952 } else {
1952 mGridSpacingX = (width() - verticalScrollBar()->width()-frameOffset)/mColumns; 1953 mGridSpacingX = (width() - verticalScrollBar()->width()-frameOffset)/mColumns;
1953 if (height() > mGridSpacingY * mRows + 1 ) { 1954 if (height() > mGridSpacingY * mRows + 1 ) {
1954 KOPrefs::instance()->mHourSize = ((height())/mRows)+1; 1955 KOPrefs::instance()->mHourSize = ((height())/mRows)+1;
1955 mGridSpacingY = KOPrefs::instance()->mHourSize ; 1956 mGridSpacingY = KOPrefs::instance()->mHourSize ;
1956 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); 1957 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 );
1957 emit resizedSignal(); 1958 emit resizedSignal();
1958 } else 1959 } else
1959 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); 1960 resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 );
1960 KOAgendaItem *item; 1961 KOAgendaItem *item;
1961 int subCellWidth; 1962 int subCellWidth;
1962 1963
1963 for ( item=mItems.first(); item != 0; item=mItems.next() ) { 1964 for ( item=mItems.first(); item != 0; item=mItems.next() ) {
1964 subCellWidth = mGridSpacingX / item->subCells(); 1965 subCellWidth = mGridSpacingX / item->subCells();
1965 item->resize(subCellWidth,item->height()); 1966 item->resize(subCellWidth,item->height());
1966 moveChild(item,(KOGlobals::self()->reverseLayout() ? 1967 moveChild(item,(KOGlobals::self()->reverseLayout() ?
1967 (mColumns - 1 - item->cellX()) * mGridSpacingX : 1968 (mColumns - 1 - item->cellX()) * mGridSpacingX :
1968 item->cellX() * mGridSpacingX) + 1969 item->cellX() * mGridSpacingX) +
1969 item->subCell() * subCellWidth,childY(item)); 1970 item->subCell() * subCellWidth,childY(item));
1970 } 1971 }
1971 } 1972 }
1972 int cw = contentsWidth(); 1973 int cw = contentsWidth();
@@ -2136,143 +2137,143 @@ DateList KOAgenda::dateList() const
2136 2137
2137void KOAgenda::setDateList(const DateList &selectedDates) 2138void KOAgenda::setDateList(const DateList &selectedDates)
2138{ 2139{
2139 mSelectedDates = selectedDates; 2140 mSelectedDates = selectedDates;
2140} 2141}
2141 2142
2142void KOAgenda::setHolidayMask(QMemArray<bool> *mask) 2143void KOAgenda::setHolidayMask(QMemArray<bool> *mask)
2143{ 2144{
2144 mHolidayMask = mask; 2145 mHolidayMask = mask;
2145 2146
2146/* 2147/*
2147 kdDebug() << "HolidayMask: "; 2148 kdDebug() << "HolidayMask: ";
2148 for(uint i=0;i<mask->count();++i) { 2149 for(uint i=0;i<mask->count();++i) {
2149 kdDebug() << (mask->at(i) ? "*" : "o"); 2150 kdDebug() << (mask->at(i) ? "*" : "o");
2150 } 2151 }
2151 kdDebug() << endl; 2152 kdDebug() << endl;
2152*/ 2153*/
2153} 2154}
2154 2155
2155void KOAgenda::contentsMousePressEvent ( QMouseEvent *event ) 2156void KOAgenda::contentsMousePressEvent ( QMouseEvent *event )
2156{ 2157{
2157 2158
2158 QScrollView::contentsMousePressEvent(event); 2159 QScrollView::contentsMousePressEvent(event);
2159} 2160}
2160 2161
2161void KOAgenda::storePosition() 2162void KOAgenda::storePosition()
2162{ 2163{
2163 //mContentPosition 2164 //mContentPosition
2164 int max = mGridSpacingY*4*24; 2165 int max = mGridSpacingY*4*24;
2165 if ( contentsY() < 5 && max > viewport()->height()*3/2 ) 2166 if ( contentsY() < 5 && max > viewport()->height()*3/2 )
2166 mContentPosition = 0; 2167 mContentPosition = 0;
2167 else if ( contentsY() + viewport()->height() > max - 5 && max > viewport()->height()*3/2) 2168 else if ( contentsY() + viewport()->height() > max - 5 && max > viewport()->height()*3/2)
2168 mContentPosition = -1.0; 2169 mContentPosition = -1.0;
2169 else 2170 else
2170 mContentPosition = ((float) max)/ ((float)(contentsY()+ ( viewport()->height()/2))); 2171 mContentPosition = ((float) max)/ ((float)(contentsY()+ ( viewport()->height()/2)));
2171 //qDebug("mContentPosition %f %d %d %d",mContentPosition , max, contentsY() ,viewport()->height()); 2172 //qDebug("mContentPosition %f %d %d %d",mContentPosition , max, contentsY() ,viewport()->height());
2172 2173
2173} 2174}
2174void KOAgenda::restorePosition() 2175void KOAgenda::restorePosition()
2175{ 2176{
2176 int posY; 2177 int posY;
2177 int max = mGridSpacingY*4*24; 2178 int max = mGridSpacingY*4*24;
2178 if ( mContentPosition < 0 ) 2179 if ( mContentPosition < 0 )
2179 posY = max-viewport()->height(); 2180 posY = max-viewport()->height();
2180 else 2181 else
2181 if ( mContentPosition == 0 ) 2182 if ( mContentPosition == 0 )
2182 posY = 0; 2183 posY = 0;
2183 else 2184 else
2184 posY = (max/mContentPosition)-(viewport()->height()/2); 2185 posY = (int) ((max/mContentPosition)-(viewport()->height()/2));
2185 setContentsPos (0, posY ); 2186 setContentsPos (0, posY );
2186 //qDebug("posY %d hei %d", posY, max); 2187 //qDebug("posY %d hei %d", posY, max);
2187 2188
2188} 2189}
2189void KOAgenda::moveChild( QWidget *w, int x , int y ) 2190void KOAgenda::moveChild( QWidget *w, int x , int y )
2190{ 2191{
2191 ++x; 2192 ++x;
2192 QScrollView::moveChild( w, x , y ); 2193 QScrollView::moveChild( w, x , y );
2193} 2194}
2194#include <qmessagebox.h> 2195#include <qmessagebox.h>
2195#ifdef DESKTOP_VERSION 2196#ifdef DESKTOP_VERSION
2196#include <qprinter.h> 2197#include <qprinter.h>
2197#include <qpainter.h> 2198#include <qpainter.h>
2198#include <qpaintdevicemetrics.h> 2199#include <qpaintdevicemetrics.h>
2199 2200
2200#endif 2201#endif
2201void KOAgenda::printSelection() 2202void KOAgenda::printSelection()
2202{ 2203{
2203#ifdef DESKTOP_VERSION 2204#ifdef DESKTOP_VERSION
2204 if ( mStartCellY == mCurrentCellY ) { 2205 if ( mStartCellY == mCurrentCellY ) {
2205 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2206 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2206 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. "), 2207 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. "),
2207 i18n("OK"), 0, 0, 2208 i18n("OK"), 0, 0,
2208 0, 1 ); 2209 0, 1 );
2209 return; 2210 return;
2210 } 2211 }
2211 2212
2212 float dx, dy; 2213 float dx, dy;
2213 int x,y,w,h; 2214 int x,y,w,h;
2214 x= 0; 2215 x= 0;
2215 w= contentsWidth()+2; 2216 w= contentsWidth()+2;
2216 // h= contentsHeight(); 2217 // h= contentsHeight();
2217 y = mGridSpacingY*mStartCellY; 2218 y = mGridSpacingY*mStartCellY;
2218 h = mGridSpacingY*(mCurrentCellY+1)-y+2; 2219 h = mGridSpacingY*(mCurrentCellY+1)-y+2;
2219 2220
2220 //return; 2221 //return;
2221 QPrinter* printer = new QPrinter(); 2222 QPrinter* printer = new QPrinter();
2222 if ( !printer->setup()) { 2223 if ( !printer->setup()) {
2223 delete printer; 2224 delete printer;
2224 return; 2225 return;
2225 } 2226 }
2226 QPainter p( printer ); 2227 QPainter p( printer );
2227 QPaintDeviceMetrics m = QPaintDeviceMetrics ( printer ); 2228 QPaintDeviceMetrics m = QPaintDeviceMetrics ( printer );
2228 QString date = i18n("Date range: ")+KGlobal::locale()->formatDate( mSelectedDates.first() )+" - "+KGlobal::locale()->formatDate( mSelectedDates.last() ); 2229 QString date = i18n("Date range: ")+KGlobal::locale()->formatDate( mSelectedDates.first() )+" - "+KGlobal::locale()->formatDate( mSelectedDates.last() );
2229 //date += " --- printing time: " + KGlobal::locale()->formatDateTime(QDateTime::currentDateTime(), true ); 2230 //date += " --- printing time: " + KGlobal::locale()->formatDateTime(QDateTime::currentDateTime(), true );
2230 int hei = p.boundingRect(0,0, 5, 5, Qt::AlignLeft, date ).height(); 2231 int hei = p.boundingRect(0,0, 5, 5, Qt::AlignLeft, date ).height();
2231 // p.drawText( 0, 0, date ); 2232 // p.drawText( 0, 0, date );
2232 int offset = m.width()/8; 2233 int offset = m.width()/8;
2233 // compute the scale 2234 // compute the scale
2234 dx = ((float) m.width()-offset) / (float)w; 2235 dx = ((float) m.width()-offset) / (float)w;
2235 dy = (float)(m.height() - ( 2 * hei )-offset ) / (float)h; 2236 dy = (float)(m.height() - ( 2 * hei )-offset ) / (float)h;
2236 float scale; 2237 float scale;
2237 // scale to fit the width or height of the paper 2238 // scale to fit the width or height of the paper
2238 if ( dx < dy ) 2239 if ( dx < dy )
2239 scale = dx; 2240 scale = dx;
2240 else 2241 else
2241 scale = dy; 2242 scale = dy;
2242 // set the scale 2243 // set the scale
2243 p.drawText( offset* scale, offset* scale*3/4, date ); 2244 p.drawText( (int) (offset* scale), (int) (offset* scale*3/4), date );
2244 2245
2245 int selDay; 2246 uint selDay;
2246 float widOffset = ((float) m.width()-offset) / ((float)(mSelectedDates.count())); 2247 float widOffset = ((float) m.width()-offset) / ((float)(mSelectedDates.count()));
2247 float startX = 1; 2248 float startX = 1;
2248 for ( selDay = 0; selDay < mSelectedDates.count(); ++selDay) 2249 for ( selDay = 0; selDay < mSelectedDates.count(); ++selDay)
2249 { 2250 {
2250 QString text = KGlobal::locale()->formatDate( mSelectedDates[selDay],true ); 2251 QString text = KGlobal::locale()->formatDate( mSelectedDates[selDay],true );
2251 p.setClipRect(offset* scale+startX , 0, widOffset-4, offset* scale+(2*hei* scale) ); 2252 p.setClipRect((int) (offset* scale+startX) , 0, (int) (widOffset-4), (int) (offset* scale+(2*hei* scale)) );
2252 p.drawText( offset* scale+startX, (offset+hei)* scale, text ); 2253 p.drawText( (int) (offset* scale+startX), (int) ((offset+hei)* scale), text );
2253 startX += widOffset; 2254 startX += widOffset;
2254 2255
2255 } 2256 }
2256 p.translate( offset* scale,offset* scale+ (-y * scale)+(2*hei* scale)); 2257 p.translate( (int) (offset* scale),(int) (offset* scale+ (-y * scale)+(2*hei* scale)));
2257 p.scale( scale, scale ); 2258 p.scale( scale, scale );
2258 p.setClipRect( offset* scale, offset* scale+(2*hei* scale), w*scale, h*scale ); 2259 p.setClipRect( (int) (offset* scale), (int) (offset* scale+(2*hei* scale)), (int) (w*scale), (int) (h*scale) );
2259 // now printing with y offset: 2 hei 2260 // now printing with y offset: 2 hei
2260 // p.translate( 0, -y*scale); 2261 // p.translate( 0, -y*scale);
2261 2262
2262 drawContentsToPainter(&p, true ); 2263 drawContentsToPainter(&p, true );
2263 globalFlagBlockAgendaItemUpdate = false; 2264 globalFlagBlockAgendaItemUpdate = false;
2264 KOAgendaItem *item; 2265 KOAgendaItem *item;
2265 for ( item=mItems.first(); item != 0; item=mItems.next() ) { 2266 for ( item=mItems.first(); item != 0; item=mItems.next() ) {
2266 item->select(false); 2267 item->select(false);
2267 item->paintMe( false, &p ); 2268 item->paintMe( false, &p );
2268 } 2269 }
2269 globalFlagBlockAgendaItemUpdate = true; 2270 globalFlagBlockAgendaItemUpdate = true;
2270 p.end(); 2271 p.end();
2271 delete printer; 2272 delete printer;
2272#else 2273#else
2273 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2274 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2274 i18n("Not supported \non PDA!\n"), 2275 i18n("Not supported \non PDA!\n"),
2275 i18n("OK"), 0, 0, 2276 i18n("OK"), 0, 0,
2276 0, 1 ); 2277 0, 1 );
2277#endif 2278#endif
2278} 2279}
diff --git a/korganizer/koagendaitem.h b/korganizer/koagendaitem.h
index 99c564a..2b26e95 100644
--- a/korganizer/koagendaitem.h
+++ b/korganizer/koagendaitem.h
@@ -63,96 +63,97 @@ class KOAgendaItem : public QWidget
63 void setCellX(int XLeft, int XRight); 63 void setCellX(int XLeft, int XRight);
64 void setCellXWidth(int xwidth); 64 void setCellXWidth(int xwidth);
65 void setSubCell(int subCell); 65 void setSubCell(int subCell);
66 void setSubCells(int subCells); 66 void setSubCells(int subCells);
67 67
68 /** Start movement */ 68 /** Start movement */
69 void startMove(); 69 void startMove();
70 /** Reset to original values */ 70 /** Reset to original values */
71 void resetMove(); 71 void resetMove();
72 72
73 void moveRelative(int dx,int dy); 73 void moveRelative(int dx,int dy);
74 void expandTop(int dy); 74 void expandTop(int dy);
75 void expandBottom(int dy); 75 void expandBottom(int dy);
76 void expandLeft(int dx); 76 void expandLeft(int dx);
77 void expandRight(int dx); 77 void expandRight(int dx);
78 int mLastMoveXPos; 78 int mLastMoveXPos;
79 79
80 void setMultiItem(KOAgendaItem *first,KOAgendaItem *next, 80 void setMultiItem(KOAgendaItem *first,KOAgendaItem *next,
81 KOAgendaItem *last); 81 KOAgendaItem *last);
82 KOAgendaItem *firstMultiItem() { return mFirstMultiItem; } 82 KOAgendaItem *firstMultiItem() { return mFirstMultiItem; }
83 KOAgendaItem *nextMultiItem() { return mNextMultiItem; } 83 KOAgendaItem *nextMultiItem() { return mNextMultiItem; }
84 KOAgendaItem *lastMultiItem() { return mLastMultiItem; } 84 KOAgendaItem *lastMultiItem() { return mLastMultiItem; }
85 85
86 Incidence *incidence() const { return mIncidence; } 86 Incidence *incidence() const { return mIncidence; }
87 QDate itemDate() { return mDate; } 87 QDate itemDate() { return mDate; }
88 88
89 /** Update the date of this item's occurence (not in the event) */ 89 /** Update the date of this item's occurence (not in the event) */
90 void setItemDate(QDate qd); 90 void setItemDate(QDate qd);
91 91
92 void setText ( const QString & text ) { mDisplayedText = text; } 92 void setText ( const QString & text ) { mDisplayedText = text; }
93 QString text () { return mDisplayedText; } 93 QString text () { return mDisplayedText; }
94 94
95 virtual bool eventFilter ( QObject *, QEvent * ); 95 virtual bool eventFilter ( QObject *, QEvent * );
96 96
97 static QToolTipGroup *toolTipGroup(); 97 static QToolTipGroup *toolTipGroup();
98 98
99 QPtrList<KOAgendaItem> conflictItems(); 99 QPtrList<KOAgendaItem> conflictItems();
100 void setConflictItems(QPtrList<KOAgendaItem>); 100 void setConflictItems(QPtrList<KOAgendaItem>);
101 void addConflictItem(KOAgendaItem *ci); 101 void addConflictItem(KOAgendaItem *ci);
102 void paintMe( bool, QPainter* painter = 0 ); 102 void paintMe( bool, QPainter* painter = 0 );
103 void repaintMe(); 103 void repaintMe();
104 static QPixmap * paintPix(); 104 static QPixmap * paintPix();
105 static QPixmap * paintPixAllday(); 105 static QPixmap * paintPixAllday();
106 void updateItem(); 106 void updateItem();
107 void computeText(); 107 void computeText();
108 void recreateIncidence(); 108 void recreateIncidence();
109 bool checkLayout(); 109 bool checkLayout();
110 void initColor (); 110 void initColor ();
111 bool isAllDay() { return mAllDay; }
111 public slots: 112 public slots:
112 bool updateIcons( QPainter *, bool ); 113 bool updateIcons( QPainter *, bool );
113 void select(bool=true); 114 void select(bool=true);
114 void repaintItem(); 115 void repaintItem();
115 116
116 protected: 117 protected:
117 void dragEnterEvent(QDragEnterEvent *e); 118 void dragEnterEvent(QDragEnterEvent *e);
118 void dropEvent(QDropEvent *e); 119 void dropEvent(QDropEvent *e);
119 void paintEvent ( QPaintEvent * ); 120 void paintEvent ( QPaintEvent * );
120 void resizeEvent ( QResizeEvent *ev ); 121 void resizeEvent ( QResizeEvent *ev );
121 122
122 private: 123 private:
123 KOAgendaItemWhatsThis* mKOAgendaItemWhatsThis; 124 KOAgendaItemWhatsThis* mKOAgendaItemWhatsThis;
124 bool mAllDay; 125 bool mAllDay;
125 bool mWhiteText; 126 bool mWhiteText;
126 int mCellX; 127 int mCellX;
127 int mCellXWidth; 128 int mCellXWidth;
128 int mCellYTop,mCellYBottom; 129 int mCellYTop,mCellYBottom;
129 int mSubCell; // subcell number of this item 130 int mSubCell; // subcell number of this item
130 int mSubCells; // Total number of subcells in cell of this item 131 int mSubCells; // Total number of subcells in cell of this item
131 int xPaintCoord; 132 int xPaintCoord;
132 int yPaintCoord; 133 int yPaintCoord;
133 int wPaintCoord; 134 int wPaintCoord;
134 int hPaintCoord; 135 int hPaintCoord;
135 // Variables to remember start position 136 // Variables to remember start position
136 int mStartCellX; 137 int mStartCellX;
137 int mStartCellXWidth; 138 int mStartCellXWidth;
138 int mStartCellYTop,mStartCellYBottom; 139 int mStartCellYTop,mStartCellYBottom;
139 int mLastMovePos; 140 int mLastMovePos;
140 141
141 // Multi item pointers 142 // Multi item pointers
142 KOAgendaItem *mFirstMultiItem; 143 KOAgendaItem *mFirstMultiItem;
143 KOAgendaItem *mNextMultiItem; 144 KOAgendaItem *mNextMultiItem;
144 KOAgendaItem *mLastMultiItem; 145 KOAgendaItem *mLastMultiItem;
145 146
146 int mFontPixelSize; 147 int mFontPixelSize;
147 Incidence *mIncidence; // corresponding event or todo 148 Incidence *mIncidence; // corresponding event or todo
148 QDate mDate; //date this events occurs (for recurrence) 149 QDate mDate; //date this events occurs (for recurrence)
149 //void showIcon( QLabel*, int ); 150 //void showIcon( QLabel*, int );
150 //QLabel *mTodoIconLabel; 151 //QLabel *mTodoIconLabel;
151 //QLabel *mItemLabel; 152 //QLabel *mItemLabel;
152 //QWidget *mIconBox; 153 //QWidget *mIconBox;
153 //QLabel *mIconAlarm,*mIconRecur,*mIconReadonly; 154 //QLabel *mIconAlarm,*mIconRecur,*mIconReadonly;
154 //QLabel *mIconReply,*mIconGroup,*mIconOrganizer; 155 //QLabel *mIconReply,*mIconGroup,*mIconOrganizer;
155 //QLabel *mIconMoreInfo; 156 //QLabel *mIconMoreInfo;
156 static QToolTipGroup *mToolTipGroup; 157 static QToolTipGroup *mToolTipGroup;
157 158
158 QColor mBackgroundColor; 159 QColor mBackgroundColor;
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index f5a3a4b..1cf03a0 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -957,101 +957,102 @@ void KOAgendaView::updateView()
957/* 957/*
958 Update configuration settings for the agenda view. This method is not 958 Update configuration settings for the agenda view. This method is not
959 complete. 959 complete.
960*/ 960*/
961void KOAgendaView::updateConfig() 961void KOAgendaView::updateConfig()
962{ 962{
963 if ( mBlockUpdating ) 963 if ( mBlockUpdating )
964 return; 964 return;
965 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) { 965 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) {
966 int old = KOPrefs::instance()->mHourSize; 966 int old = KOPrefs::instance()->mHourSize;
967 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1; 967 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1;
968 //qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize ); 968 //qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize );
969 } 969 }
970 970
971 971
972 // update config for children 972 // update config for children
973 mTimeLabels->updateConfig(); 973 mTimeLabels->updateConfig();
974 mAgenda->storePosition(); 974 mAgenda->storePosition();
975 mAgenda->updateConfig(); 975 mAgenda->updateConfig();
976 mAllDayAgenda->updateConfig(); 976 mAllDayAgenda->updateConfig();
977 // widget synchronization 977 // widget synchronization
978 //TODO: find a better way, maybe signal/slot 978 //TODO: find a better way, maybe signal/slot
979 mTimeLabels->positionChanged(); 979 mTimeLabels->positionChanged();
980 980
981 // for some reason, this needs to be called explicitly 981 // for some reason, this needs to be called explicitly
982 mTimeLabels->repaint(); 982 mTimeLabels->repaint();
983 983
984 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 984 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
985 985
986 // ToolTips displaying summary of events 986 // ToolTips displaying summary of events
987 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance() 987 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance()
988 ->mEnableToolTips); 988 ->mEnableToolTips);
989 989
990 //setHolidayMasks(); 990 //setHolidayMasks();
991 991
992 //createDayLabels(); called by via updateView(); 992 //createDayLabels(); called by via updateView();
993 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth()); 993 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth());
994 updateView(); 994 updateView();
995 mAgenda->restorePosition(); 995 mAgenda->restorePosition();
996} 996}
997 997
998 998
999void KOAgendaView::updateEventDates(KOAgendaItem *item, int type) 999void KOAgendaView::updateEventDates(KOAgendaItem *item, int type)
1000{ 1000{
1001 1001
1002 1002
1003 int xxx = item->cellX(); 1003 int xxx = item->cellX();
1004 //qDebug("KOAgendaView::updateEventDates %d %d %d %d %d", xxx, mMinY.at(xxx),mMaxY.at(xxx),item->cellYTop(),item->cellYBottom() ); 1004 //qDebug("KOAgendaView::updateEventDates %d %d %d %d %d", xxx, mMinY.at(xxx),mMaxY.at(xxx),item->cellYTop(),item->cellYBottom() );
1005 if ( xxx >= 0 && xxx < mMinY.count() && !item->isAllDay() ) {
1005 if ( mMinY.at(xxx) > item->cellYTop() ) 1006 if ( mMinY.at(xxx) > item->cellYTop() )
1006 mMinY.at(xxx) = item->cellYTop(); 1007 mMinY.at(xxx) = item->cellYTop();
1007 if ( mMaxY.at(xxx) < item->cellYBottom() ) 1008 if ( mMaxY.at(xxx) < item->cellYBottom() )
1008 mMaxY.at(xxx) = item->cellYBottom(); 1009 mMaxY.at(xxx) = item->cellYBottom();
1009 1010 }
1010 QDateTime startDt,endDt; 1011 QDateTime startDt,endDt;
1011 QDate startDate; 1012 QDate startDate;
1012 int lenInSecs; 1013 int lenInSecs;
1013 // if ( type == KOAgenda::RESIZETOP ) 1014 // if ( type == KOAgenda::RESIZETOP )
1014 // qDebug("RESIZETOP "); 1015 // qDebug("RESIZETOP ");
1015 // if ( type == KOAgenda::RESIZEBOTTOM ) 1016 // if ( type == KOAgenda::RESIZEBOTTOM )
1016 // qDebug("RESIZEBOTTOM "); 1017 // qDebug("RESIZEBOTTOM ");
1017 // if ( type == KOAgenda::MOVE ) 1018 // if ( type == KOAgenda::MOVE )
1018 // qDebug("MOVE "); 1019 // qDebug("MOVE ");
1019 if ( item->incidence()->typeID() == eventID ) { 1020 if ( item->incidence()->typeID() == eventID ) {
1020 startDt =item->incidence()->dtStart(); 1021 startDt =item->incidence()->dtStart();
1021 endDt = item->incidence()->dtEnd(); 1022 endDt = item->incidence()->dtEnd();
1022 lenInSecs = startDt.secsTo( endDt ); 1023 lenInSecs = startDt.secsTo( endDt );
1023 } 1024 }
1024 1025
1025 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED ); 1026 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED );
1026 1027
1027 if ( item->incidence()->typeID()== todoID && item->mLastMoveXPos > 0 ) { 1028 if ( item->incidence()->typeID()== todoID && item->mLastMoveXPos > 0 ) {
1028 startDate = mSelectedDates[item->mLastMoveXPos]; 1029 startDate = mSelectedDates[item->mLastMoveXPos];
1029 } else { 1030 } else {
1030 if (item->cellX() < 0) { 1031 if (item->cellX() < 0) {
1031 startDate = (mSelectedDates.first()).addDays(item->cellX()); 1032 startDate = (mSelectedDates.first()).addDays(item->cellX());
1032 } else { 1033 } else {
1033 startDate = mSelectedDates[item->cellX()]; 1034 startDate = mSelectedDates[item->cellX()];
1034 } 1035 }
1035 } 1036 }
1036 startDt.setDate(startDate); 1037 startDt.setDate(startDate);
1037 1038
1038 if (item->incidence()->doesFloat()) { 1039 if (item->incidence()->doesFloat()) {
1039 endDt.setDate(startDate.addDays(item->cellWidth() - 1)); 1040 endDt.setDate(startDate.addDays(item->cellWidth() - 1));
1040 } else { 1041 } else {
1041 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE ) 1042 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE )
1042 startDt.setTime(mAgenda->gyToTime(item->cellYTop())); 1043 startDt.setTime(mAgenda->gyToTime(item->cellYTop()));
1043 if ( item->incidence()->typeID() == eventID ) { 1044 if ( item->incidence()->typeID() == eventID ) {
1044 if ( type == KOAgenda::MOVE ) { 1045 if ( type == KOAgenda::MOVE ) {
1045 endDt = startDt.addSecs(lenInSecs); 1046 endDt = startDt.addSecs(lenInSecs);
1046 1047
1047 } else if ( type == KOAgenda::RESIZEBOTTOM ) { 1048 } else if ( type == KOAgenda::RESIZEBOTTOM ) {
1048 if (item->lastMultiItem()) { 1049 if (item->lastMultiItem()) {
1049 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 1050 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
1050 endDt.setDate(startDate. 1051 endDt.setDate(startDate.
1051 addDays(item->lastMultiItem()->cellX() - item->cellX())); 1052 addDays(item->lastMultiItem()->cellX() - item->cellX()));
1052 } else { 1053 } else {
1053 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 1054 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
1054 endDt.setDate(startDate); 1055 endDt.setDate(startDate);
1055 } 1056 }
1056 } 1057 }
1057 } else { 1058 } else {