author | zautrix <zautrix> | 2005-04-04 18:43:08 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-04-04 18:43:08 (UTC) |
commit | 8e7f4812c4ad239b6a17cce8aa84c00274ced4df (patch) (unidiff) | |
tree | 4245f8dbe39ce59c1199a9a97dc68ec74825271b | |
parent | ff205358654ed8741f0008eabd64a0e8b0476b61 (diff) | |
download | kdepimpi-8e7f4812c4ad239b6a17cce8aa84c00274ced4df.zip kdepimpi-8e7f4812c4ad239b6a17cce8aa84c00274ced4df.tar.gz kdepimpi-8e7f4812c4ad239b6a17cce8aa84c00274ced4df.tar.bz2 |
fix
-rw-r--r-- | korganizer/koagendaitem.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp index b30ad75..23afe7a 100644 --- a/korganizer/koagendaitem.cpp +++ b/korganizer/koagendaitem.cpp | |||
@@ -296,256 +296,260 @@ bool KOAgendaItem::eventFilter ( QObject *object, QEvent *e ) | |||
296 | QMouseEvent *me = (QMouseEvent *)e; | 296 | QMouseEvent *me = (QMouseEvent *)e; |
297 | QPoint itemPos = this->mapFromGlobal(((QWidget *)object)-> | 297 | QPoint itemPos = this->mapFromGlobal(((QWidget *)object)-> |
298 | mapToGlobal(me->pos())); | 298 | mapToGlobal(me->pos())); |
299 | QMouseEvent returnEvent (e->type(),itemPos,me->button(),me->state()); | 299 | QMouseEvent returnEvent (e->type(),itemPos,me->button(),me->state()); |
300 | return event(&returnEvent); | 300 | return event(&returnEvent); |
301 | } else { | 301 | } else { |
302 | return false; | 302 | return false; |
303 | } | 303 | } |
304 | } | 304 | } |
305 | void KOAgendaItem::repaintMe( ) | 305 | void KOAgendaItem::repaintMe( ) |
306 | { | 306 | { |
307 | paintMe ( mSelected ); | 307 | paintMe ( mSelected ); |
308 | } | 308 | } |
309 | void KOAgendaItem::paintMe( bool selected, QPainter* paint ) | 309 | void KOAgendaItem::paintMe( bool selected, QPainter* paint ) |
310 | { | 310 | { |
311 | if ( globalFlagBlockAgendaItemUpdate && ! selected) | 311 | if ( globalFlagBlockAgendaItemUpdate && ! selected) |
312 | return; | 312 | return; |
313 | QPainter pa; | 313 | QPainter pa; |
314 | 314 | ||
315 | if ( mSelected ) { | 315 | if ( mSelected ) { |
316 | pa.begin( paintPixSel() ); | 316 | pa.begin( paintPixSel() ); |
317 | } else { | 317 | } else { |
318 | if ( mAllDay ) | 318 | if ( mAllDay ) |
319 | pa.begin( paintPixAllday() ); | 319 | pa.begin( paintPixAllday() ); |
320 | else | 320 | else |
321 | pa.begin( paintPix() ); | 321 | pa.begin( paintPix() ); |
322 | } | 322 | } |
323 | int x, yy, w, h; | 323 | int x, yy, w, h; |
324 | float nfh = 7.0; | 324 | float nfh = 7.0; |
325 | x = pos().x(); w = width(); h = height (); | 325 | x = pos().x(); w = width(); h = height (); |
326 | if ( mAllDay ) | 326 | if ( mAllDay ) |
327 | yy = y(); | 327 | yy = y(); |
328 | else | 328 | else |
329 | yy = mCellYTop * ( height() / cellHeight() ); | 329 | yy = mCellYTop * ( height() / cellHeight() ); |
330 | xPaintCoord= x; | 330 | xPaintCoord= x; |
331 | yPaintCoord = yy; | 331 | yPaintCoord = yy; |
332 | wPaintCoord = width(); | 332 | wPaintCoord = width(); |
333 | hPaintCoord = height(); | 333 | hPaintCoord = height(); |
334 | //qDebug("paintMe %s %d %d %d %d",incidence()->summary().latin1(), x, yy, width(), height()); | 334 | //qDebug("paintMe %s %d %d %d %d",incidence()->summary().latin1(), x, yy, width(), height()); |
335 | if ( paint == 0 ) | 335 | if ( paint == 0 ) |
336 | paint = &pa; | 336 | paint = &pa; |
337 | bool horLayout = ( w < h ); | 337 | bool horLayout = ( w < h ); |
338 | int maxhei = mFontPixelSize+4; | 338 | int maxhei = mFontPixelSize+4; |
339 | if ( horLayout ) | 339 | if ( horLayout ) |
340 | maxhei += AGENDA_ICON_SIZE -4; | 340 | maxhei += AGENDA_ICON_SIZE -4; |
341 | bool small = ( h < maxhei ); | 341 | bool small = ( h < maxhei ); |
342 | if ( ! small ) | 342 | if ( ! small ) |
343 | paint->setFont(KOPrefs::instance()->mAgendaViewFont); | 343 | paint->setFont(KOPrefs::instance()->mAgendaViewFont); |
344 | else { | 344 | else { |
345 | QFont f = KOPrefs::instance()->mAgendaViewFont; | 345 | QFont f = KOPrefs::instance()->mAgendaViewFont; |
346 | f.setBold( false ); | 346 | f.setBold( false ); |
347 | int fh = f.pointSize(); | 347 | int fh = f.pointSize(); |
348 | nfh = (((float)height())/(float)(mFontPixelSize+4))*fh; | 348 | nfh = (((float)height())/(float)(mFontPixelSize+4))*fh; |
349 | if ( nfh < 6 ) | 349 | if ( nfh < 6 ) |
350 | nfh = 6; | 350 | nfh = 6; |
351 | f.setPointSize( nfh ); | 351 | f.setPointSize( nfh ); |
352 | paint->setFont(f); | 352 | paint->setFont(f); |
353 | } | 353 | } |
354 | paint->fillRect ( x, yy, w, h, mBackgroundColor ); | 354 | paint->fillRect ( x, yy, w, h, mBackgroundColor ); |
355 | static const QPixmap completedPxmp = SmallIcon("greenhook16"); | 355 | static const QPixmap completedPxmp = SmallIcon("greenhook16"); |
356 | static const QPixmap overduePxmp = SmallIcon("redcross16"); | 356 | static const QPixmap overduePxmp = SmallIcon("redcross16"); |
357 | if ( mIncidence->type() == "Todo" ) { | 357 | if ( mIncidence->type() == "Todo" ) { |
358 | Todo* tempTodo = static_cast<Todo*>(mIncidence); | 358 | Todo* tempTodo = static_cast<Todo*>(mIncidence); |
359 | int xx = pos().x()+(width()-completedPxmp.width()-3 ); | 359 | int xx = pos().x()+(width()-completedPxmp.width()-3 ); |
360 | int yyy = yy+3; | 360 | int yyy = yy+3; |
361 | if ( tempTodo->isCompleted() ) | 361 | if ( tempTodo->isCompleted() ) |
362 | paint->drawPixmap ( xx, yyy, completedPxmp ); | 362 | paint->drawPixmap ( xx, yyy, completedPxmp ); |
363 | else { | 363 | else { |
364 | paint->drawPixmap ( xx, yyy, overduePxmp ); | 364 | paint->drawPixmap ( xx, yyy, overduePxmp ); |
365 | 365 | ||
366 | } | 366 | } |
367 | } | 367 | } |
368 | bool addIcon = false; | 368 | bool addIcon = false; |
369 | if ( ! small || w > 3 * h || h > 3* w ) | 369 | if ( ! small || w > 3 * h || h > 3* w ) |
370 | addIcon = updateIcons( paint, horLayout ); | 370 | addIcon = updateIcons( paint, horLayout ); |
371 | 371 | ||
372 | qDrawShadePanel (paint, x, yy, w, h, mColorGroup, selected , 2, 0); | 372 | qDrawShadePanel (paint, x, yy, w, h, mColorGroup, selected , 2, 0); |
373 | //qDebug("draw rect %d %d %d %d ",x, yy, w, h ); | 373 | //qDebug("draw rect %d %d %d %d ",x, yy, w, h ); |
374 | if ( ! small ) { | 374 | if ( ! small ) { |
375 | x += 3; yy += 3;w -= 6; h-= 5; | 375 | x += 3; yy += 3;w -= 6; h-= 5; |
376 | } else { | 376 | } else { |
377 | x += 2; yy += 1;w -= 4; h-= 4; | 377 | x += 2; yy += 1;w -= 4; h-= 4; |
378 | if ( nfh < 6.01 ) { | 378 | if ( nfh < 6.01 ) { |
379 | yy -= 2; | 379 | yy -= 2; |
380 | h += 4; | 380 | h += 4; |
381 | } | 381 | } |
382 | else | 382 | else |
383 | if ( nfh < h -2 ) | 383 | if ( nfh < h -2 ) |
384 | ++yy; | 384 | ++yy; |
385 | } | 385 | } |
386 | int align; | 386 | int align; |
387 | #ifndef DESKTOP_VERSION | 387 | #ifndef DESKTOP_VERSION |
388 | align = ( AlignLeft|WordBreak|AlignTop); | 388 | align = ( AlignLeft|WordBreak|AlignTop); |
389 | #else | 389 | #else |
390 | align = ( AlignLeft|BreakAnywhere|WordBreak|AlignTop); | 390 | align = ( AlignLeft|BreakAnywhere|WordBreak|AlignTop); |
391 | #endif | 391 | #endif |
392 | if ( addIcon ) { | 392 | if ( addIcon ) { |
393 | if ( ! horLayout ) { | 393 | if ( ! horLayout ) { |
394 | x += AGENDA_ICON_SIZE+3; | 394 | x += AGENDA_ICON_SIZE+3; |
395 | w -= (AGENDA_ICON_SIZE+3); | 395 | w -= (AGENDA_ICON_SIZE+3); |
396 | } | 396 | } |
397 | else { | 397 | else { |
398 | yy+= AGENDA_ICON_SIZE+2; | 398 | yy+= AGENDA_ICON_SIZE+2; |
399 | h -=(AGENDA_ICON_SIZE+3); | 399 | h -=(AGENDA_ICON_SIZE+3); |
400 | } | 400 | } |
401 | } | 401 | } |
402 | int colsum = mBackgroundColor.red() + mBackgroundColor.green() + mBackgroundColor.blue(); | 402 | int colsum = mBackgroundColor.red() + mBackgroundColor.green() + mBackgroundColor.blue(); |
403 | if ( colsum < 250 ) | 403 | if ( colsum < 250 ) |
404 | paint->setPen ( white); | 404 | paint->setPen ( white); |
405 | if ( x < 0 ) { | 405 | if ( x < 0 ) { |
406 | w = w+x-3; | 406 | w = w+x-3; |
407 | x = 3; | 407 | x = 3; |
408 | if ( w > parentWidget()->width() ){ | 408 | if ( w > parentWidget()->width() ){ |
409 | w = parentWidget()->width() - 6; | 409 | w = parentWidget()->width() - 6; |
410 | #ifndef DESKTOP_VERSION | 410 | #ifndef DESKTOP_VERSION |
411 | align = ( AlignHCenter|WordBreak|AlignTop); | 411 | align = ( AlignHCenter|WordBreak|AlignTop); |
412 | #else | 412 | #else |
413 | align = ( AlignHCenter|BreakAnywhere|WordBreak|AlignTop); | 413 | align = ( AlignHCenter|BreakAnywhere|WordBreak|AlignTop); |
414 | #endif | 414 | #endif |
415 | 415 | ||
416 | } | 416 | } |
417 | } | 417 | } |
418 | QRect dr; | 418 | QRect dr; |
419 | if ( w + x > parentWidget()->width() ) | 419 | if ( w + x > parentWidget()->width() ) |
420 | w = parentWidget()->width()-x; | 420 | w = parentWidget()->width()-x; |
421 | paint->drawText ( x, yy, w, h, align, mDisplayedText, -1, &dr ); | 421 | paint->drawText ( x, yy, w, h, align, mDisplayedText, -1, &dr ); |
422 | //qDebug("%d %d %d %d ", x, yy, w, h ); | 422 | //qDebug("%d %d %d %d ", x, yy, w, h ); |
423 | if ( mIncidence->cancelled() ){ | 423 | if ( mIncidence->cancelled() ){ |
424 | |||
425 | |||
426 | small = ( height() < 20 ); | ||
427 | |||
424 | if ( ! small ) { | 428 | if ( ! small ) { |
425 | QFontMetrics fm ( paint->font() ); | 429 | QFontMetrics fm ( paint->font() ); |
426 | paint->drawLine(dr.left(), yy+fm.height()/2, dr.right()-2, yy+fm.height()/2); | 430 | paint->drawLine(dr.left(), yy+fm.height()/2, dr.right()-2, yy+fm.height()/2); |
427 | } | 431 | } |
428 | 432 | ||
429 | } | 433 | } |
430 | pa.end(); | 434 | pa.end(); |
431 | 435 | ||
432 | } | 436 | } |
433 | void KOAgendaItem::resizePixmap( int w , int h ) | 437 | void KOAgendaItem::resizePixmap( int w , int h ) |
434 | { | 438 | { |
435 | paintPix()->resize( w, h ); | 439 | paintPix()->resize( w, h ); |
436 | paintPixSel()->resize( w, h ); | 440 | paintPixSel()->resize( w, h ); |
437 | 441 | ||
438 | } | 442 | } |
439 | QPixmap * KOAgendaItem::paintPix() | 443 | QPixmap * KOAgendaItem::paintPix() |
440 | { | 444 | { |
441 | static QPixmap* mPaintPix = 0; | 445 | static QPixmap* mPaintPix = 0; |
442 | if ( ! mPaintPix ) | 446 | if ( ! mPaintPix ) |
443 | mPaintPix = new QPixmap(1,1); | 447 | mPaintPix = new QPixmap(1,1); |
444 | return mPaintPix ; | 448 | return mPaintPix ; |
445 | } | 449 | } |
446 | QPixmap * KOAgendaItem::paintPixAllday() | 450 | QPixmap * KOAgendaItem::paintPixAllday() |
447 | { | 451 | { |
448 | static QPixmap* mPaintPixA = 0; | 452 | static QPixmap* mPaintPixA = 0; |
449 | if ( ! mPaintPixA ) | 453 | if ( ! mPaintPixA ) |
450 | mPaintPixA = new QPixmap(1,1); | 454 | mPaintPixA = new QPixmap(1,1); |
451 | return mPaintPixA ; | 455 | return mPaintPixA ; |
452 | } | 456 | } |
453 | QPixmap * KOAgendaItem::paintPixSel() | 457 | QPixmap * KOAgendaItem::paintPixSel() |
454 | { | 458 | { |
455 | static QPixmap* mPaintPixSel = 0; | 459 | static QPixmap* mPaintPixSel = 0; |
456 | if ( ! mPaintPixSel ) | 460 | if ( ! mPaintPixSel ) |
457 | mPaintPixSel = new QPixmap(1,1); | 461 | mPaintPixSel = new QPixmap(1,1); |
458 | return mPaintPixSel ; | 462 | return mPaintPixSel ; |
459 | } | 463 | } |
460 | void KOAgendaItem::paintEvent ( QPaintEvent *e ) | 464 | void KOAgendaItem::paintEvent ( QPaintEvent *e ) |
461 | { | 465 | { |
462 | 466 | ||
463 | if ( globalFlagBlockAgendaItemPaint ) | 467 | if ( globalFlagBlockAgendaItemPaint ) |
464 | return; | 468 | return; |
465 | if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 ) | 469 | if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 ) |
466 | return; | 470 | return; |
467 | int yy; | 471 | int yy; |
468 | if ( mAllDay ) | 472 | if ( mAllDay ) |
469 | yy = y(); | 473 | yy = y(); |
470 | else | 474 | else |
471 | yy = mCellYTop * ( height() / cellHeight() ); | 475 | yy = mCellYTop * ( height() / cellHeight() ); |
472 | int xx = x(); | 476 | int xx = x(); |
473 | 477 | ||
474 | if ( xPaintCoord != xx || yPaintCoord != yy || | 478 | if ( xPaintCoord != xx || yPaintCoord != yy || |
475 | wPaintCoord != width() || hPaintCoord != height()) { | 479 | wPaintCoord != width() || hPaintCoord != height()) { |
476 | xPaintCoord= xx; | 480 | xPaintCoord= xx; |
477 | yPaintCoord = yy; | 481 | yPaintCoord = yy; |
478 | wPaintCoord = width(); | 482 | wPaintCoord = width(); |
479 | hPaintCoord = height(); | 483 | hPaintCoord = height(); |
480 | globalFlagBlockAgendaItemUpdate = 0; | 484 | globalFlagBlockAgendaItemUpdate = 0; |
481 | paintMe( mSelected ); | 485 | paintMe( mSelected ); |
482 | //qDebug("calling paintMe "); | 486 | //qDebug("calling paintMe "); |
483 | globalFlagBlockAgendaItemUpdate = 1; | 487 | globalFlagBlockAgendaItemUpdate = 1; |
484 | } | 488 | } |
485 | int rx, ry, rw, rh; | 489 | int rx, ry, rw, rh; |
486 | rx = e->rect().x(); | 490 | rx = e->rect().x(); |
487 | ry = e->rect().y(); | 491 | ry = e->rect().y(); |
488 | rw = e->rect().width(); | 492 | rw = e->rect().width(); |
489 | rh = e->rect().height(); | 493 | rh = e->rect().height(); |
490 | //qDebug(" paintevent %s %d %d %d %d", mIncidence->summary().latin1(), x(), yy, width(), height()); | 494 | //qDebug(" paintevent %s %d %d %d %d", mIncidence->summary().latin1(), x(), yy, width(), height()); |
491 | 495 | ||
492 | QPixmap* paintFrom ; | 496 | QPixmap* paintFrom ; |
493 | if ( mSelected ) { | 497 | if ( mSelected ) { |
494 | paintFrom = paintPixSel(); | 498 | paintFrom = paintPixSel(); |
495 | } else { | 499 | } else { |
496 | if ( mAllDay ) | 500 | if ( mAllDay ) |
497 | paintFrom = paintPixAllday(); | 501 | paintFrom = paintPixAllday(); |
498 | else | 502 | else |
499 | paintFrom = paintPix(); | 503 | paintFrom = paintPix(); |
500 | } | 504 | } |
501 | xx += rx; | 505 | xx += rx; |
502 | 506 | ||
503 | if ( xx < 0 ) { | 507 | if ( xx < 0 ) { |
504 | rw = rw + xx; | 508 | rw = rw + xx; |
505 | rx -= xx; | 509 | rx -= xx; |
506 | xx = 0; | 510 | xx = 0; |
507 | if ( rw <= 1 ) { | 511 | if ( rw <= 1 ) { |
508 | //qDebug("KOAgendaItem::Width1 <= 1 (%d). Returning. %s",rw,mDisplayedText.latin1()); | 512 | //qDebug("KOAgendaItem::Width1 <= 1 (%d). Returning. %s",rw,mDisplayedText.latin1()); |
509 | return; | 513 | return; |
510 | } | 514 | } |
511 | } | 515 | } |
512 | if ( paintFrom->width() < xx+rw ) { | 516 | if ( paintFrom->width() < xx+rw ) { |
513 | rw = paintFrom->width() - xx; | 517 | rw = paintFrom->width() - xx; |
514 | if ( rw <= 1 ) { | 518 | if ( rw <= 1 ) { |
515 | //qDebug("KOAgendaItem::Width2 <= 1 (%d). Returning.%s ",rw,mDisplayedText.latin1() ); | 519 | //qDebug("KOAgendaItem::Width2 <= 1 (%d). Returning.%s ",rw,mDisplayedText.latin1() ); |
516 | return; | 520 | return; |
517 | } | 521 | } |
518 | } | 522 | } |
519 | //qDebug("%d %d %d %d %d %d %d",rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh); | 523 | //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); | 524 | bitBlt (this, rx, ry, paintFrom, xx ,yPaintCoord+ry, rw, rh ,CopyROP); |
521 | } | 525 | } |
522 | void KOAgendaItem::computeText() | 526 | void KOAgendaItem::computeText() |
523 | { | 527 | { |
524 | 528 | ||
525 | mDisplayedText = mIncidence->summary(); | 529 | mDisplayedText = mIncidence->summary(); |
526 | if ( (mIncidence->type() == "Todo") ) { | 530 | if ( (mIncidence->type() == "Todo") ) { |
527 | if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) { | 531 | if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) { |
528 | if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) | 532 | if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) |
529 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")"; | 533 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")"; |
530 | else if ( !(mIncidence->doesFloat())) | 534 | else if ( !(mIncidence->doesFloat())) |
531 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")"; | 535 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")"; |
532 | } | 536 | } |
533 | } else { | 537 | } else { |
534 | if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda) | 538 | if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda) |
535 | mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + "-" + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ; | 539 | mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + "-" + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ; |
536 | 540 | ||
537 | if ( mAllDay ) { | 541 | if ( mAllDay ) { |
538 | if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) { | 542 | if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) { |
539 | mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ; | 543 | mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ; |
540 | } | 544 | } |
541 | } | 545 | } |
542 | 546 | ||
543 | } | 547 | } |
544 | 548 | ||
545 | if ( !mIncidence->location().isEmpty() ) { | 549 | if ( !mIncidence->location().isEmpty() ) { |
546 | if ( mAllDay ) | 550 | if ( mAllDay ) |
547 | mDisplayedText += " ("; | 551 | mDisplayedText += " ("; |
548 | else | 552 | else |
549 | mDisplayedText += "\n("; | 553 | mDisplayedText += "\n("; |
550 | mDisplayedText += mIncidence->location() +")"; | 554 | mDisplayedText += mIncidence->location() +")"; |
551 | } | 555 | } |