author | zautrix <zautrix> | 2005-03-23 11:47:33 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-03-23 11:47:33 (UTC) |
commit | 913291ec9784520cc6ff9769081c03bd74a5ab07 (patch) (unidiff) | |
tree | abc324e407ea03c312511f83d735b6039d9b36bb | |
parent | c99ce87456abd342befc7820d3e1376f9560183a (diff) | |
download | kdepimpi-913291ec9784520cc6ff9769081c03bd74a5ab07.zip kdepimpi-913291ec9784520cc6ff9769081c03bd74a5ab07.tar.gz kdepimpi-913291ec9784520cc6ff9769081c03bd74a5ab07.tar.bz2 |
koa item resize crash fix
-rw-r--r-- | korganizer/koagendaitem.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp index 5ee433a..7e6fa48 100644 --- a/korganizer/koagendaitem.cpp +++ b/korganizer/koagendaitem.cpp | |||
@@ -465,16 +465,17 @@ void KOAgendaItem::paintEvent ( QPaintEvent *e ) | |||
465 | if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 ) | 465 | if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 ) |
466 | return; | 466 | return; |
467 | int yy; | 467 | int yy; |
468 | if ( mAllDay ) | 468 | if ( mAllDay ) |
469 | yy = y(); | 469 | yy = y(); |
470 | else | 470 | else |
471 | yy = mCellYTop * ( height() / cellHeight() ); | 471 | yy = mCellYTop * ( height() / cellHeight() ); |
472 | int xx = x(); | 472 | int xx = x(); |
473 | |||
473 | if ( xPaintCoord != xx || yPaintCoord != yy || | 474 | if ( xPaintCoord != xx || yPaintCoord != yy || |
474 | wPaintCoord != width() || hPaintCoord != height()) { | 475 | wPaintCoord != width() || hPaintCoord != height()) { |
475 | xPaintCoord= xx; | 476 | xPaintCoord= xx; |
476 | yPaintCoord = yy; | 477 | yPaintCoord = yy; |
477 | wPaintCoord = width(); | 478 | wPaintCoord = width(); |
478 | hPaintCoord = height(); | 479 | hPaintCoord = height(); |
479 | globalFlagBlockAgendaItemUpdate = 0; | 480 | globalFlagBlockAgendaItemUpdate = 0; |
480 | paintMe( mSelected ); | 481 | paintMe( mSelected ); |
@@ -492,17 +493,36 @@ void KOAgendaItem::paintEvent ( QPaintEvent *e ) | |||
492 | if ( mSelected ) { | 493 | if ( mSelected ) { |
493 | paintFrom = paintPixSel(); | 494 | paintFrom = paintPixSel(); |
494 | } else { | 495 | } else { |
495 | if ( mAllDay ) | 496 | if ( mAllDay ) |
496 | paintFrom = paintPixAllday(); | 497 | paintFrom = paintPixAllday(); |
497 | else | 498 | else |
498 | paintFrom = paintPix(); | 499 | paintFrom = paintPix(); |
499 | } | 500 | } |
500 | bitBlt (this, rx, ry, paintFrom, x()+rx ,yPaintCoord+ry, rw, rh ,CopyROP); | 501 | xx += rx; |
502 | |||
503 | if ( xx < 0 ) { | ||
504 | rw = rw + xx; | ||
505 | rx -= xx; | ||
506 | xx = 0; | ||
507 | if ( rw < 0 ) { | ||
508 | qDebug("KOAgendaItem::Width1 < 0. Returning "); | ||
509 | return; | ||
510 | } | ||
511 | } | ||
512 | if ( paintFrom->width() < xx+rw ) { | ||
513 | rw = paintFrom->width() - xx; | ||
514 | if ( rw < 0 ) { | ||
515 | qDebug("KOAgendaItem::Width2 < 0. Returning "); | ||
516 | return; | ||
517 | } | ||
518 | } | ||
519 | //qDebug("%d %d %d %d %d %d %d",rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh); | ||
520 | bitBlt (this, rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh ,CopyROP); | ||
501 | } | 521 | } |
502 | void KOAgendaItem::computeText() | 522 | void KOAgendaItem::computeText() |
503 | { | 523 | { |
504 | 524 | ||
505 | mDisplayedText = mIncidence->summary(); | 525 | mDisplayedText = mIncidence->summary(); |
506 | if ( (mIncidence->type() == "Todo") ) { | 526 | if ( (mIncidence->type() == "Todo") ) { |
507 | if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) { | 527 | if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) { |
508 | if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) | 528 | if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) |