-rw-r--r-- | korganizer/koagenda.cpp | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index 0280c74..c339b57 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp @@ -57,12 +57,13 @@ //extern bool globalFlagBlockPainting; extern int globalFlagBlockAgenda; extern int globalFlagBlockAgendaItemPaint; extern int globalFlagBlockAgendaItemUpdate; extern int globalFlagBlockStartup; +bool KOAgenda::mInvalidPixmap = false; //////////////////////////////////////////////////////////////////////////// MarcusBains::MarcusBains(KOAgenda *_agenda,const char *name) : QFrame(_agenda->viewport(),name), agenda(_agenda) { setLineWidth(0); setMargin(0); @@ -175,12 +176,13 @@ KOAgenda::KOAgenda(int columns,int rows,int rowSize,QWidget *parent, mAllDayMode = false; #ifndef DESKTOP_VERSION //QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); #endif mHolidayMask = 0; init(); + connect ( this, SIGNAL (contentsMoving ( int , int ) ), this, SLOT ( slotContentMove(int,int)) ); } /* Create an agenda widget with columns columns and one row. This is used for all-day events. */ @@ -314,14 +316,30 @@ void KOAgenda::init() else { mMarcusBains = new MarcusBains(this); addChild(mMarcusBains); } mPopupKind = 0; mPopupItem = 0; + mInvalidPixmap = false; + } +void KOAgenda::shrinkPixmap() +{ + mPaintPixmap.resize( 20,20); + mInvalidPixmap = true; +} +void KOAgenda::slotContentMove(int,int) +{ + if ( mActionType == NOP ) + slotClearSelection(); + if ( mSelectedItem && !mActionItem ) { + deselectItem(); + emit incidenceSelected( 0 ); + } +} void KOAgenda::clear() { KOAgendaItem *item; for ( item=mItems.first(); item != 0; item=mItems.next() ) { mUnusedItems.append( item ); //item->hide(); @@ -919,12 +937,13 @@ void KOAgenda::performItemAction(QPoint viewportPos) else dy = gy - mCurrentCellY; moveItem->moveRelative(gx - mCurrentCellX,dy); int x,y; gridToContents(moveItem->cellX(),moveItem->cellYTop(),x,y); moveItem->resize(mGridSpacingX * moveItem->cellWidth(), mGridSpacingY * moveItem->cellHeight()); + moveItem->raise(); moveChild(moveItem,x,y); moveItem = moveItem->nextMultiItem(); } } else if (mActionType == RESIZETOP) { if (mCurrentCellY <= mActionItem->cellYBottom()) { mActionItem->expandTop(gy - mCurrentCellY); @@ -1241,12 +1260,19 @@ void KOAgenda::placeSubCells(KOAgendaItem *placeItem) } void KOAgenda::drawContents(QPainter* p, int cx, int cy, int cw, int ch) { if ( globalFlagBlockAgenda ) return; + + if ( mInvalidPixmap ) { + mInvalidPixmap = false; + qDebug("InvalidPixmap "); + QTimer::singleShot( 0, this, SIGNAL( updateViewSignal() )); + return; + } if ( ! mAllDayMode ) { // currently not working for //qDebug("KOAgenda::drawContents "); if ( mCurPixWid != contentsWidth() || mCurPixHei != contentsHeight() ) ;//drawContentsToPainter(); @@ -1913,19 +1939,19 @@ void KOAgenda::computeSizes() } int cw = contentsWidth(); int ch = contentsHeight(); if ( mAllDayMode ) { QPixmap* paintPixAll = KOAgendaItem::paintPixAllday(); if ( (paintPixAll->width() < cw || paintPixAll->height() < ch) && cw > 0 && ch > 0 ) { - //qDebug("paintPixAll->resize "); + qDebug("paintPixAll->resize "); paintPixAll->resize( cw, ch ); } } else { QPixmap* paintPix = KOAgendaItem::paintPix(); if ( paintPix->width() < cw || paintPix->height() < ch ) { - //qDebug("paintPix->resize "); + qDebug("paintPix->resize "); paintPix->resize( cw , ch ); } } checkScrollBoundaries(); marcus_bains(); |