-rw-r--r-- | korganizer/koagenda.cpp | 172 |
1 files changed, 80 insertions, 92 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index 14f52b8..ed7a443 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp @@ -332,72 +332,63 @@ void KOAgenda::clear() void KOAgenda::clearSelection() { mSelectionCellX = 0; mSelectionYTop = 0; mSelectionHeight = 0; } void KOAgenda::marcus_bains() { if(mMarcusBains) mMarcusBains->updateLocation(true); } void KOAgenda::changeColumns(int columns) { - if (columns == 0) { - kdDebug() << "KOAgenda::changeColumns() called with argument 0" << endl; - return; - } - - clear(); - - mColumns = columns; -// setMinimumSize(mColumns * 10, mGridSpacingY + 1); -// init(); -// update(); - //qDebug("KOAgenda::changeColumns "); + if (columns == 0) { + qDebug("KOAgenda::changeColumns() called with argument 0 "); + return; + } + clear(); + mColumns = columns; computeSizes(); - // QResizeEvent event( size(), size() ); - - //QApplication::sendEvent( this, &event ); } /* This is the eventFilter function, which gets all events from the KOAgendaItems contained in the agenda. It has to handle moving and resizing for all items. */ bool KOAgenda::eventFilter ( QObject *object, QEvent *event ) { -// kdDebug() << "KOAgenda::eventFilter" << endl; - switch(event->type()) { + // kdDebug() << "KOAgenda::eventFilter" << endl; + switch(event->type()) { case QEvent::MouseButtonPress: case QEvent::MouseButtonDblClick: case QEvent::MouseButtonRelease: case QEvent::MouseMove: - return eventFilter_mouse(object, static_cast<QMouseEvent *>(event)); + return eventFilter_mouse(object, static_cast<QMouseEvent *>(event)); case (QEvent::Leave): - if (!mActionItem) - setCursor(arrowCursor); - return true; + if (!mActionItem) + setCursor(arrowCursor); + return true; default: - return QScrollView::eventFilter(object,event); - } + return QScrollView::eventFilter(object,event); + } } void KOAgenda::popupMenu() { mPopupTimer->stop(); if ( mPopupKind == 1 ) { if (mActionItem ) { endItemAction(); } mLeftMouseDown = false; // no more leftMouse computation if (mPopupItem) { selectItem(mPopupItem); emit showIncidencePopupSignal(mPopupItem->incidence()); } } else if ( mPopupKind == 2 ) { if ( mLeftMouseDown ) { // we have a simulated right click - clear left mouse action @@ -1735,45 +1726,42 @@ void KOAgenda::updateTodo( Todo * todo, int days, bool remove) itemit=oldconflictItems.next() ) { globalFlagBlockAgendaItemUpdate = 0; itemit->repaintMe(); globalFlagBlockAgendaItemUpdate = 1; itemit->repaint(); } globalFlagBlockAgendaItemUpdate = 0; item->repaintMe(); globalFlagBlockAgendaItemUpdate = 1; item->repaint(); } /* Insert KOAgendaItem into agenda. */ KOAgendaItem *KOAgenda::insertItem (Incidence *event,QDate qd,int X,int YTop,int YBottom) { - //kdDebug() << "KOAgenda::insertItem:" << event->summary() << "-" << qd.toString() << " ;top, bottom:" << YTop << "," << YBottom << endl; - if (mAllDayMode) { - kdDebug() << "KOAgenda: calling insertItem in all-day mode is illegal." << endl; + qDebug("KOAgenda: calling insertItem in all-day mode is illegal. "); return 0; } KOAgendaItem *agendaItem = getNewItem(event,qd,viewport()); //agendaItem->setFrameStyle(WinPanel|Raised); int YSize = YBottom - YTop + 1; if (YSize < 0) { - kdDebug() << "KOAgenda::insertItem(): Text: " << agendaItem->text() << " YSize<0" << endl; YSize = 1; } int iheight = mGridSpacingY * YSize; agendaItem->resize(mGridSpacingX,iheight ); agendaItem->setCellXY(X,YTop,YBottom); agendaItem->setCellXWidth(X); //addChild(agendaItem,X*mGridSpacingX,YTop*mGridSpacingY); mItems.append(agendaItem); placeSubCells(agendaItem); //agendaItem->show(); marcus_bains(); @@ -1877,116 +1865,116 @@ void KOAgenda::finishResize ( ) } /* Overridden from QScrollView to provide proper resizing of KOAgendaItems. */ void KOAgenda::resizeEvent ( QResizeEvent *ev ) { mResizeTimer.start( 150 , true ); computeSizes(); return; } void KOAgenda::computeSizes() { if ( globalFlagBlockStartup ) return; + int frameOffset = frameWidth() * 2 +1; + if (mAllDayMode) { + mGridSpacingX = (width()-frameOffset) / mColumns; + mGridSpacingY = height() - 2 * frameWidth() - 1; + resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY + 1); + // mGridSpacingY = height(); + // resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); - if (mAllDayMode) { - mGridSpacingX = (width()-3) / mColumns; - mGridSpacingY = height() - 2 * frameWidth() - 1; - resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY + 1); -// mGridSpacingY = height(); -// resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); - - KOAgendaItem *item; - int subCellWidth; - for ( item=mItems.first(); item != 0; item=mItems.next() ) { - subCellWidth = mGridSpacingY / item->subCells(); - item->resize(mGridSpacingX * item->cellWidth(),subCellWidth); - moveChild(item,KOGlobals::self()->reverseLayout() ? - (mColumns - 1 - item->cellX()) * mGridSpacingX : + KOAgendaItem *item; + int subCellWidth; + for ( item=mItems.first(); item != 0; item=mItems.next() ) { + subCellWidth = mGridSpacingY / item->subCells(); + item->resize(mGridSpacingX * item->cellWidth(),subCellWidth); + moveChild(item,KOGlobals::self()->reverseLayout() ? + (mColumns - 1 - item->cellX()) * mGridSpacingX : item->cellX() * mGridSpacingX, item->subCell() * subCellWidth); - } - KOPrefs::instance()->mAllDaySize = mGridSpacingY; - } else { - mGridSpacingX = (width() - verticalScrollBar()->width()-3)/mColumns; - if (height() > mGridSpacingY * mRows + 1 ) { - KOPrefs::instance()->mHourSize = ((height())/mRows)+1; - mGridSpacingY = KOPrefs::instance()->mHourSize ; - resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); - emit resizedSignal(); - } else - resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); - KOAgendaItem *item; - int subCellWidth; + } + KOPrefs::instance()->mAllDaySize = mGridSpacingY; + } else { + mGridSpacingX = (width() - verticalScrollBar()->width()-frameOffset)/mColumns; + if (height() > mGridSpacingY * mRows + 1 ) { + KOPrefs::instance()->mHourSize = ((height())/mRows)+1; + mGridSpacingY = KOPrefs::instance()->mHourSize ; + resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); + emit resizedSignal(); + } else + resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); + KOAgendaItem *item; + int subCellWidth; - for ( item=mItems.first(); item != 0; item=mItems.next() ) { - subCellWidth = mGridSpacingX / item->subCells(); - item->resize(subCellWidth,item->height()); - moveChild(item,(KOGlobals::self()->reverseLayout() ? - (mColumns - 1 - item->cellX()) * mGridSpacingX : - item->cellX() * mGridSpacingX) + - item->subCell() * subCellWidth,childY(item)); + for ( item=mItems.first(); item != 0; item=mItems.next() ) { + subCellWidth = mGridSpacingX / item->subCells(); + item->resize(subCellWidth,item->height()); + moveChild(item,(KOGlobals::self()->reverseLayout() ? + (mColumns - 1 - item->cellX()) * mGridSpacingX : + item->cellX() * mGridSpacingX) + + item->subCell() * subCellWidth,childY(item)); + } + } + int cw = contentsWidth(); + int ch = contentsHeight(); + if ( mAllDayMode ) { + QPixmap* paintPixAll = KOAgendaItem::paintPixAllday(); + if ( (paintPixAll->width() < cw || paintPixAll->height() < ch) && cw > 0 && ch > 0 ) + paintPixAll->resize( cw, ch ); + } else { + QPixmap* paintPix = KOAgendaItem::paintPix(); + if ( paintPix->width() < cw || paintPix->height() < ch ) + KOAgendaItem::resizePixmap( cw , ch ); } - } - int cw = contentsWidth(); - int ch = contentsHeight(); - if ( mAllDayMode ) { - QPixmap* paintPixAll = KOAgendaItem::paintPixAllday(); - if ( (paintPixAll->width() < cw || paintPixAll->height() < ch) && cw > 0 && ch > 0 ) - paintPixAll->resize( cw, ch ); - } else { - QPixmap* paintPix = KOAgendaItem::paintPix(); - if ( paintPix->width() < cw || paintPix->height() < ch ) - KOAgendaItem::resizePixmap( cw , ch ); - } - checkScrollBoundaries(); - marcus_bains(); - drawContentsToPainter(); - viewport()->repaint(false); + checkScrollBoundaries(); + marcus_bains(); + drawContentsToPainter(); + viewport()->repaint(false); } void KOAgenda::scrollUp() { - scrollBy(0,-mScrollOffset); + scrollBy(0,-mScrollOffset); } void KOAgenda::scrollDown() { - scrollBy(0,mScrollOffset); + scrollBy(0,mScrollOffset); } void KOAgenda::popupAlarm() { - if (!mClickedItem) { - qDebug("KOAgenda::popupAlarm() called without having a clicked item "); - return; - } -// TODO: deal correctly with multiple alarms - Alarm* alarm; - QPtrList<Alarm> list(mClickedItem->incidence()->alarms()); - for(alarm=list.first();alarm;alarm=list.next()) { - alarm->toggleAlarm(); - } - emit itemModified( mClickedItem , KOGlobals::EVENTEDITED ); - mClickedItem->paintMe( true ); - mClickedItem->repaint( false ); + if (!mClickedItem) { + qDebug("KOAgenda::popupAlarm() called without having a clicked item "); + return; + } + // TODO: deal correctly with multiple alarms + Alarm* alarm; + QPtrList<Alarm> list(mClickedItem->incidence()->alarms()); + for(alarm=list.first();alarm;alarm=list.next()) { + alarm->toggleAlarm(); + } + emit itemModified( mClickedItem , KOGlobals::EVENTEDITED ); + mClickedItem->paintMe( true ); + mClickedItem->repaint( false ); } /* Calculates the minimum width */ int KOAgenda::minimumWidth() const { // TODO:: develop a way to dynamically determine the minimum width int min = 100; return min; } void KOAgenda::updateConfig() { if ( viewport()->backgroundColor() != KOPrefs::instance()->mAgendaBgColor) |