author | umopapisdn <umopapisdn> | 2003-04-12 00:29:05 (UTC) |
---|---|---|
committer | umopapisdn <umopapisdn> | 2003-04-12 00:29:05 (UTC) |
commit | 79fcbf52d267aa3eb839de35f15992bf5e18f8eb (patch) (unidiff) | |
tree | 5e3e1432654d3c97849356e96a1fc4c538a71118 | |
parent | 59e2de381eebb33238ee1b257736a9ae0afdbb7e (diff) | |
download | opie-79fcbf52d267aa3eb839de35f15992bf5e18f8eb.zip opie-79fcbf52d267aa3eb839de35f15992bf5e18f8eb.tar.gz opie-79fcbf52d267aa3eb839de35f15992bf5e18f8eb.tar.bz2 |
Bugfix: (bug #0000811) Events are now always atleast 12 pixels high in dayview.
-rw-r--r-- | core/pim/datebook/datebookday.cpp | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/core/pim/datebook/datebookday.cpp b/core/pim/datebook/datebookday.cpp index af98e06..db4c2fd 100644 --- a/core/pim/datebook/datebookday.cpp +++ b/core/pim/datebook/datebookday.cpp | |||
@@ -548,151 +548,151 @@ void DateBookDay::slotWeekChanged( bool bStartOnMonday ) | |||
548 | void DateBookDay::keyPressEvent(QKeyEvent *e) | 548 | void DateBookDay::keyPressEvent(QKeyEvent *e) |
549 | { | 549 | { |
550 | switch(e->key()) { | 550 | switch(e->key()) { |
551 | case Key_Up: | 551 | case Key_Up: |
552 | view->moveUp(); | 552 | view->moveUp(); |
553 | break; | 553 | break; |
554 | case Key_Down: | 554 | case Key_Down: |
555 | view->moveDown(); | 555 | view->moveDown(); |
556 | break; | 556 | break; |
557 | case Key_Left: | 557 | case Key_Left: |
558 | setDate(QDate(currDate).addDays(-1)); | 558 | setDate(QDate(currDate).addDays(-1)); |
559 | break; | 559 | break; |
560 | case Key_Right: | 560 | case Key_Right: |
561 | setDate(QDate(currDate).addDays(1)); | 561 | setDate(QDate(currDate).addDays(1)); |
562 | break; | 562 | break; |
563 | default: | 563 | default: |
564 | e->ignore(); | 564 | e->ignore(); |
565 | } | 565 | } |
566 | } | 566 | } |
567 | 567 | ||
568 | //=========================================================================== | 568 | //=========================================================================== |
569 | 569 | ||
570 | DateBookDayWidget::DateBookDayWidget( const EffectiveEvent &e, | 570 | DateBookDayWidget::DateBookDayWidget( const EffectiveEvent &e, |
571 | DateBookDay *db ) | 571 | DateBookDay *db ) |
572 | : QWidget( db->dayView()->viewport() ), ev( e ), dateBook( db ) | 572 | : QWidget( db->dayView()->viewport() ), ev( e ), dateBook( db ) |
573 | { | 573 | { |
574 | 574 | ||
575 | 575 | ||
576 | // why would someone use "<"? Oh well, fix it up... | 576 | // why would someone use "<"? Oh well, fix it up... |
577 | // I wonder what other things may be messed up... | 577 | // I wonder what other things may be messed up... |
578 | QString strDesc = ev.description(); | 578 | QString strDesc = ev.description(); |
579 | int where = strDesc.find( "<" ); | 579 | int where = strDesc.find( "<" ); |
580 | while ( where != -1 ) { | 580 | while ( where != -1 ) { |
581 | strDesc.remove( where, 1 ); | 581 | strDesc.remove( where, 1 ); |
582 | strDesc.insert( where, "<" ); | 582 | strDesc.insert( where, "<" ); |
583 | where = strDesc.find( "<", where ); | 583 | where = strDesc.find( "<", where ); |
584 | } | 584 | } |
585 | 585 | ||
586 | QString strCat; | 586 | QString strCat; |
587 | // ### Fix later... | 587 | // ### Fix later... |
588 | // QString strCat = ev.category(); | 588 | // QString strCat = ev.category(); |
589 | // where = strCat.find( "<" ); | 589 | // where = strCat.find( "<" ); |
590 | // while ( where != -1 ) { | 590 | // while ( where != -1 ) { |
591 | // strCat.remove( where, 1 ); | 591 | // strCat.remove( where, 1 ); |
592 | // strCat.insert( where, "<" ); | 592 | // strCat.insert( where, "<" ); |
593 | // where = strCat.find( "<", where ); | 593 | // where = strCat.find( "<", where ); |
594 | // } | 594 | // } |
595 | 595 | ||
596 | QString strNote = ev.notes(); | 596 | QString strNote = ev.notes(); |
597 | where = strNote.find( "<" ); | 597 | where = strNote.find( "<" ); |
598 | while ( where != -1 ) { | 598 | while ( where != -1 ) { |
599 | strNote.remove( where, 1 ); | 599 | strNote.remove( where, 1 ); |
600 | strNote.insert( where, "<" ); | 600 | strNote.insert( where, "<" ); |
601 | where = strNote.find( "<", where ); | 601 | where = strNote.find( "<", where ); |
602 | } | 602 | } |
603 | 603 | ||
604 | text = "<b>" + strDesc + "</b><br>" + "<i>"; | 604 | text = "<b>" + strDesc + "</b><br>" + "<i>"; |
605 | if ( !strCat.isEmpty() ) { | 605 | if ( !strCat.isEmpty() ) { |
606 | text += strCat + "</i><br>"; | 606 | text += strCat + "</i><br>"; |
607 | } | 607 | } |
608 | if (ev.event().type() == Event::Normal ) | 608 | if (ev.event().type() == Event::Normal ) |
609 | setEventText( text ); | 609 | setEventText( text ); |
610 | else | 610 | else |
611 | setAllDayText( text ); | 611 | setAllDayText( text ); |
612 | 612 | ||
613 | text += "<br><br>" + strNote; | 613 | text += "<br><br>" + strNote; |
614 | 614 | ||
615 | setBackgroundMode( PaletteBase ); | 615 | setBackgroundMode( PaletteBase ); |
616 | 616 | ||
617 | QTime start = ev.start(); | 617 | QTime start = ev.start(); |
618 | QTime end = ev.end(); | 618 | QTime end = ev.end(); |
619 | int y = start.hour()*60+start.minute(); | 619 | int y = start.hour()*60+start.minute(); |
620 | int h = end.hour()*60+end.minute()-y; | 620 | int h = end.hour()*60+end.minute()-y; |
621 | int rh = dateBook->dayView()->rowHeight(0); | 621 | int rh = dateBook->dayView()->rowHeight(0); |
622 | y = y*rh/60; | 622 | y = y*rh/60; |
623 | h = h*rh/60; | 623 | h = h*rh/60; |
624 | if ( h < 3 ) { | 624 | |
625 | h = 3; | 625 | if ( h < 12 ) h = 12;// Make sure the widget is no smaller than 12 pixels high, so that it's possible to read atleast the first line. |
626 | } | 626 | if ( y > ((24*rh)-12) ) y=(24*rh)-12;// Make sure the widget fits inside the dayview. |
627 | geom.setY( y ); | 627 | geom.setY( y ); |
628 | geom.setHeight( h ); | 628 | geom.setHeight( h ); |
629 | geom.setX( 0 ); | 629 | geom.setX( 0 ); |
630 | geom.setWidth(dateBook->dayView()->columnWidth(0)-1); | 630 | geom.setWidth(dateBook->dayView()->columnWidth(0)-1); |
631 | 631 | ||
632 | } | 632 | } |
633 | void DateBookDayWidget::setAllDayText( QString &text ) { | 633 | void DateBookDayWidget::setAllDayText( QString &text ) { |
634 | text += "<b>" + tr("This is an all day event.") + "</b><br>"; | 634 | text += "<b>" + tr("This is an all day event.") + "</b>"; |
635 | } | 635 | } |
636 | void DateBookDayWidget::setEventText( QString& text ) { | 636 | void DateBookDayWidget::setEventText( QString& text ) { |
637 | bool whichClock = dateBook->dayView()->whichClock(); | 637 | bool whichClock = dateBook->dayView()->whichClock(); |
638 | if ( ev.startDate() != ev.endDate() ) { | 638 | if ( ev.startDate() != ev.endDate() ) { |
639 | text += "<b>" + tr("Start") + "</b>: "; | 639 | text += "<b>" + tr("Start") + "</b>: "; |
640 | text += TimeString::timeString( ev.event().start().time(), whichClock, FALSE ); | 640 | text += TimeString::timeString( ev.event().start().time(), whichClock, FALSE ); |
641 | text += " - " + TimeString::longDateString( ev.startDate() ) + "<br>"; | 641 | text += " - " + TimeString::longDateString( ev.startDate() ) + "<br>"; |
642 | text += "<b>" + tr("End") + "</b>: "; | 642 | text += "<b>" + tr("End") + "</b>: "; |
643 | text += TimeString::timeString( ev.event().end().time(), whichClock, FALSE ); | 643 | text += TimeString::timeString( ev.event().end().time(), whichClock, FALSE ); |
644 | text += " - " + TimeString::longDateString( ev.endDate() ) + "<br>"; | 644 | text += " - " + TimeString::longDateString( ev.endDate() ); |
645 | } else { | 645 | } else { |
646 | text += "<b>" + tr("Time") + "</b>: "; | 646 | text += "<b>" + tr("Time") + "</b>: "; |
647 | text += TimeString::timeString( ev.start(), whichClock, FALSE ); | 647 | text += TimeString::timeString( ev.start(), whichClock, FALSE ); |
648 | text += "<b>" + tr(" - ") + "</b>"; | 648 | text += "<b>" + tr(" - ") + "</b>"; |
649 | text += TimeString::timeString( ev.end(), whichClock, FALSE ); | 649 | text += TimeString::timeString( ev.end(), whichClock, FALSE ); |
650 | } | 650 | } |
651 | } | 651 | } |
652 | 652 | ||
653 | DateBookDayWidget::~DateBookDayWidget() | 653 | DateBookDayWidget::~DateBookDayWidget() |
654 | { | 654 | { |
655 | } | 655 | } |
656 | 656 | ||
657 | void DateBookDayWidget::paintEvent( QPaintEvent *e ) | 657 | void DateBookDayWidget::paintEvent( QPaintEvent *e ) |
658 | { | 658 | { |
659 | QPainter p( this ); | 659 | QPainter p( this ); |
660 | 660 | ||
661 | if (dateBook->getSelectedWidget() == this) | 661 | if (dateBook->getSelectedWidget() == this) |
662 | { | 662 | { |
663 | p.setBrush( QColor( 155, 240, 230 ) ); // selected item | 663 | p.setBrush( QColor( 155, 240, 230 ) ); // selected item |
664 | } else | 664 | } else |
665 | { | 665 | { |
666 | if (dateBook->date() == QDate::currentDate()) | 666 | if (dateBook->date() == QDate::currentDate()) |
667 | { | 667 | { |
668 | QTime curTime = QTime::currentTime(); | 668 | QTime curTime = QTime::currentTime(); |
669 | 669 | ||
670 | if (ev.end() < curTime) | 670 | if (ev.end() < curTime) |
671 | { | 671 | { |
672 | p.setBrush( QColor( 180, 180, 180 ) ); // grey, inactive | 672 | p.setBrush( QColor( 180, 180, 180 ) ); // grey, inactive |
673 | } else | 673 | } else |
674 | { | 674 | { |
675 | //change color in dependence of the time till the event starts | 675 | //change color in dependence of the time till the event starts |
676 | int duration = curTime.secsTo(ev.start()); | 676 | int duration = curTime.secsTo(ev.start()); |
677 | if (duration < 0) duration = 0; | 677 | if (duration < 0) duration = 0; |
678 | int colChange = duration*160/86400; //86400: secs per day, 160: max color shift | 678 | int colChange = duration*160/86400; //86400: secs per day, 160: max color shift |
679 | 679 | ||
680 | p.setBrush( QColor( 200-colChange, 200-colChange, 255 ) ); //blue | 680 | p.setBrush( QColor( 200-colChange, 200-colChange, 255 ) ); //blue |
681 | } | 681 | } |
682 | } else | 682 | } else |
683 | { | 683 | { |
684 | p.setBrush( QColor( 220, 220, 220 ) ); //light grey, inactive (not current date) | 684 | p.setBrush( QColor( 220, 220, 220 ) ); //light grey, inactive (not current date) |
685 | //perhaps make a distinction between future/past dates | 685 | //perhaps make a distinction between future/past dates |
686 | } | 686 | } |
687 | } | 687 | } |
688 | 688 | ||
689 | p.setPen( QColor(100, 100, 100) ); | 689 | p.setPen( QColor(100, 100, 100) ); |
690 | p.drawRect(rect()); | 690 | p.drawRect(rect()); |
691 | 691 | ||
692 | // p.drawRect(0,0, 5, height()); | 692 | // p.drawRect(0,0, 5, height()); |
693 | 693 | ||
694 | int y = 0; | 694 | int y = 0; |
695 | int d = 0; | 695 | int d = 0; |
696 | 696 | ||
697 | if ( ev.event().hasAlarm() ) { | 697 | if ( ev.event().hasAlarm() ) { |
698 | p.drawPixmap( width() - 16, 0, Resource::loadPixmap( "bell" ) ); | 698 | p.drawPixmap( width() - 16, 0, Resource::loadPixmap( "bell" ) ); |