-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 | |||
@@ -404,399 +404,399 @@ void DateBookDay::relayoutPage( bool fromResize ) | |||
404 | if (j != k && intersectedWidgets[k] != -1) | 404 | if (j != k && intersectedWidgets[k] != -1) |
405 | if (geometries[intersectedWidgets[k]].intersects(geometries[intersectedWidgets[j]])) | 405 | if (geometries[intersectedWidgets[k]].intersects(geometries[intersectedWidgets[j]])) |
406 | { | 406 | { |
407 | inter[j]++; | 407 | inter[j]++; |
408 | intersectedWidgets[k] = -1; | 408 | intersectedWidgets[k] = -1; |
409 | } | 409 | } |
410 | if (inter[j] > anzIntersect[i]) anzIntersect[i] = inter[j] + 1; | 410 | if (inter[j] > anzIntersect[i]) anzIntersect[i] = inter[j] + 1; |
411 | } | 411 | } |
412 | 412 | ||
413 | if (anzIntersect[i] == 1 && intersectedWidgets.count()) anzIntersect[i]++; | 413 | if (anzIntersect[i] == 1 && intersectedWidgets.count()) anzIntersect[i]++; |
414 | } | 414 | } |
415 | 415 | ||
416 | 416 | ||
417 | for ( int i = 0; i < wCount; i++) { | 417 | for ( int i = 0; i < wCount; i++) { |
418 | DateBookDayWidget *w = widgetList.at(i); | 418 | DateBookDayWidget *w = widgetList.at(i); |
419 | QRect geom = w->geometry(); | 419 | QRect geom = w->geometry(); |
420 | 420 | ||
421 | geom.setX( 0 ); | 421 | geom.setX( 0 ); |
422 | 422 | ||
423 | wd = (view->columnWidth(0)-1) / anzIntersect[i] - (anzIntersect[i]>1?2:0); | 423 | wd = (view->columnWidth(0)-1) / anzIntersect[i] - (anzIntersect[i]>1?2:0); |
424 | 424 | ||
425 | geom.setWidth( wd ); | 425 | geom.setWidth( wd ); |
426 | 426 | ||
427 | while ( intersects( w, geom ) ) { | 427 | while ( intersects( w, geom ) ) { |
428 | geom.moveBy( wd + 2 + 1, 0 ); | 428 | geom.moveBy( wd + 2 + 1, 0 ); |
429 | } | 429 | } |
430 | w->setGeometry( geom ); | 430 | w->setGeometry( geom ); |
431 | } | 431 | } |
432 | 432 | ||
433 | if (jumpToCurTime && this->date() == QDate::currentDate()) | 433 | if (jumpToCurTime && this->date() == QDate::currentDate()) |
434 | view->setContentsPos( 0, QTime::currentTime().hour() * view->rowHeight(0) ); //set listview to current hour | 434 | view->setContentsPos( 0, QTime::currentTime().hour() * view->rowHeight(0) ); //set listview to current hour |
435 | else | 435 | else |
436 | view->setContentsPos( 0, startTime * view->rowHeight(0) ); | 436 | view->setContentsPos( 0, startTime * view->rowHeight(0) ); |
437 | 437 | ||
438 | 438 | ||
439 | } else { | 439 | } else { |
440 | 440 | ||
441 | 441 | ||
442 | int hours[24]; | 442 | int hours[24]; |
443 | memset( hours, 0, 24*sizeof( int ) ); | 443 | memset( hours, 0, 24*sizeof( int ) ); |
444 | bool overFlow = FALSE; | 444 | bool overFlow = FALSE; |
445 | for ( int i = 0; i < wCount; i++ ) { | 445 | for ( int i = 0; i < wCount; i++ ) { |
446 | DateBookDayWidget *w = widgetList.at(i); | 446 | DateBookDayWidget *w = widgetList.at(i); |
447 | int start = w->event().start().hour(); | 447 | int start = w->event().start().hour(); |
448 | QTime e = w->event().end(); | 448 | QTime e = w->event().end(); |
449 | int end = e.hour(); | 449 | int end = e.hour(); |
450 | if ( e.minute() < 5 ) | 450 | if ( e.minute() < 5 ) |
451 | end--; | 451 | end--; |
452 | if ( end < start ) | 452 | if ( end < start ) |
453 | end = start; | 453 | end = start; |
454 | while( start <= end ) { | 454 | while( start <= end ) { |
455 | hours[start]++; | 455 | hours[start]++; |
456 | if ( hours[start] >= 10 ) | 456 | if ( hours[start] >= 10 ) |
457 | overFlow = TRUE; | 457 | overFlow = TRUE; |
458 | ++start; | 458 | ++start; |
459 | } | 459 | } |
460 | if ( overFlow ) | 460 | if ( overFlow ) |
461 | break; | 461 | break; |
462 | } | 462 | } |
463 | for ( int i = 0; i < 24; i++ ) { | 463 | for ( int i = 0; i < 24; i++ ) { |
464 | n = QMAX( n, hours[i] ); | 464 | n = QMAX( n, hours[i] ); |
465 | } | 465 | } |
466 | wid = ( view->columnWidth(0)-1 ) / n; | 466 | wid = ( view->columnWidth(0)-1 ) / n; |
467 | 467 | ||
468 | bool used[24*10]; | 468 | bool used[24*10]; |
469 | memset( used, FALSE, 24*10*sizeof( bool ) ); | 469 | memset( used, FALSE, 24*10*sizeof( bool ) ); |
470 | 470 | ||
471 | for ( int i = 0; i < wCount; i++ ) { | 471 | for ( int i = 0; i < wCount; i++ ) { |
472 | DateBookDayWidget *w = widgetList.at(i); | 472 | DateBookDayWidget *w = widgetList.at(i); |
473 | int xp = place( w, used, n ); | 473 | int xp = place( w, used, n ); |
474 | if ( xp != -1 ) { | 474 | if ( xp != -1 ) { |
475 | QRect geom = w->geometry(); | 475 | QRect geom = w->geometry(); |
476 | geom.setX( xp*(wid+2) ); | 476 | geom.setX( xp*(wid+2) ); |
477 | geom.setWidth( wid ); | 477 | geom.setWidth( wid ); |
478 | w->setGeometry( geom ); | 478 | w->setGeometry( geom ); |
479 | } | 479 | } |
480 | } | 480 | } |
481 | 481 | ||
482 | if (jumpToCurTime && this->date() == QDate::currentDate()) | 482 | if (jumpToCurTime && this->date() == QDate::currentDate()) |
483 | view->setContentsPos( 0, QTime::currentTime().hour() * view->rowHeight(0) ); //set listview to current hour | 483 | view->setContentsPos( 0, QTime::currentTime().hour() * view->rowHeight(0) ); //set listview to current hour |
484 | else | 484 | else |
485 | view->setContentsPos( 0, startTime * view->rowHeight(0) ); | 485 | view->setContentsPos( 0, startTime * view->rowHeight(0) ); |
486 | } | 486 | } |
487 | 487 | ||
488 | timeMarker->setTime( QTime::currentTime() );//display timeMarker | 488 | timeMarker->setTime( QTime::currentTime() );//display timeMarker |
489 | timeMarker->raise(); //on top of all widgets | 489 | timeMarker->raise(); //on top of all widgets |
490 | if (this->date() == QDate::currentDate()) //only show timeMarker on current day | 490 | if (this->date() == QDate::currentDate()) //only show timeMarker on current day |
491 | timeMarker->show(); else timeMarker->hide(); | 491 | timeMarker->show(); else timeMarker->hide(); |
492 | 492 | ||
493 | setUpdatesEnabled( TRUE ); | 493 | setUpdatesEnabled( TRUE ); |
494 | return; | 494 | return; |
495 | } | 495 | } |
496 | 496 | ||
497 | DateBookDayWidget *DateBookDay::intersects( const DateBookDayWidget *item, const QRect &geom ) | 497 | DateBookDayWidget *DateBookDay::intersects( const DateBookDayWidget *item, const QRect &geom ) |
498 | { | 498 | { |
499 | int i = 0; | 499 | int i = 0; |
500 | DateBookDayWidget *w = widgetList.at(i); | 500 | DateBookDayWidget *w = widgetList.at(i); |
501 | int wCount = widgetList.count(); | 501 | int wCount = widgetList.count(); |
502 | while ( i < wCount && w != item ) { | 502 | while ( i < wCount && w != item ) { |
503 | if ( w->geometry().intersects( geom ) ) { | 503 | if ( w->geometry().intersects( geom ) ) { |
504 | return w; | 504 | return w; |
505 | } | 505 | } |
506 | w = widgetList.at(++i); | 506 | w = widgetList.at(++i); |
507 | } | 507 | } |
508 | 508 | ||
509 | return 0; | 509 | return 0; |
510 | } | 510 | } |
511 | 511 | ||
512 | 512 | ||
513 | QDate DateBookDay::date() const | 513 | QDate DateBookDay::date() const |
514 | { | 514 | { |
515 | return currDate; | 515 | return currDate; |
516 | } | 516 | } |
517 | 517 | ||
518 | void DateBookDay::setStartViewTime( int startHere ) | 518 | void DateBookDay::setStartViewTime( int startHere ) |
519 | { | 519 | { |
520 | startTime = startHere; | 520 | startTime = startHere; |
521 | dayView()->clearSelection(); | 521 | dayView()->clearSelection(); |
522 | QTableSelection ts; | 522 | QTableSelection ts; |
523 | 523 | ||
524 | if (jumpToCurTime && this->date() == QDate::currentDate())//this should probably be in datebook.cpp where it's called? | 524 | if (jumpToCurTime && this->date() == QDate::currentDate())//this should probably be in datebook.cpp where it's called? |
525 | { | 525 | { |
526 | ts.init( QTime::currentTime().hour(), 0); | 526 | ts.init( QTime::currentTime().hour(), 0); |
527 | ts.expandTo( QTime::currentTime().hour(), 0); | 527 | ts.expandTo( QTime::currentTime().hour(), 0); |
528 | } else | 528 | } else |
529 | { | 529 | { |
530 | ts.init( startTime, 0 ); | 530 | ts.init( startTime, 0 ); |
531 | ts.expandTo( startTime, 0 ); | 531 | ts.expandTo( startTime, 0 ); |
532 | } | 532 | } |
533 | 533 | ||
534 | dayView()->addSelection( ts ); | 534 | dayView()->addSelection( ts ); |
535 | } | 535 | } |
536 | 536 | ||
537 | int DateBookDay::startViewTime() const | 537 | int DateBookDay::startViewTime() const |
538 | { | 538 | { |
539 | return startTime; | 539 | return startTime; |
540 | } | 540 | } |
541 | 541 | ||
542 | void DateBookDay::slotWeekChanged( bool bStartOnMonday ) | 542 | void DateBookDay::slotWeekChanged( bool bStartOnMonday ) |
543 | { | 543 | { |
544 | header->setStartOfWeek( bStartOnMonday ); | 544 | header->setStartOfWeek( bStartOnMonday ); |
545 | // redraw(); | 545 | // redraw(); |
546 | } | 546 | } |
547 | 547 | ||
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" ) ); |
699 | y = 20; | 699 | y = 20; |
700 | d = 20; | 700 | d = 20; |
701 | } | 701 | } |
702 | 702 | ||
703 | if ( ev.event().hasRepeat() ) { | 703 | if ( ev.event().hasRepeat() ) { |
704 | p.drawPixmap( width() - 16, y, Resource::loadPixmap( "repeat" ) ); | 704 | p.drawPixmap( width() - 16, y, Resource::loadPixmap( "repeat" ) ); |
705 | d = 20; | 705 | d = 20; |
706 | y += 20; | 706 | y += 20; |
707 | } | 707 | } |
708 | 708 | ||
709 | QSimpleRichText rt( text, font() ); | 709 | QSimpleRichText rt( text, font() ); |
710 | rt.setWidth( geom.width() - d - 6 ); | 710 | rt.setWidth( geom.width() - d - 6 ); |
711 | rt.draw( &p, 7, 0, e->region(), colorGroup() ); | 711 | rt.draw( &p, 7, 0, e->region(), colorGroup() ); |
712 | } | 712 | } |
713 | 713 | ||
714 | void DateBookDayWidget::mousePressEvent( QMouseEvent *e ) | 714 | void DateBookDayWidget::mousePressEvent( QMouseEvent *e ) |
715 | { | 715 | { |
716 | DateBookDayWidget *item; | 716 | DateBookDayWidget *item; |
717 | 717 | ||
718 | item = dateBook->getSelectedWidget(); | 718 | item = dateBook->getSelectedWidget(); |
719 | if (item) item->update(); | 719 | if (item) item->update(); |
720 | 720 | ||
721 | dateBook->setSelectedWidget(this); | 721 | dateBook->setSelectedWidget(this); |
722 | update(); | 722 | update(); |
723 | dateBook->repaint(); | 723 | dateBook->repaint(); |
724 | 724 | ||
725 | QPopupMenu m; | 725 | QPopupMenu m; |
726 | m.insertItem( tr( "Edit" ), 1 ); | 726 | m.insertItem( tr( "Edit" ), 1 ); |
727 | m.insertItem( tr( "Duplicate" ), 4 ); | 727 | m.insertItem( tr( "Duplicate" ), 4 ); |
728 | m.insertItem( tr( "Delete" ), 2 ); | 728 | m.insertItem( tr( "Delete" ), 2 ); |
729 | if(Ir::supported()) m.insertItem( tr( "Beam" ), 3 ); | 729 | if(Ir::supported()) m.insertItem( tr( "Beam" ), 3 ); |
730 | int r = m.exec( e->globalPos() ); | 730 | int r = m.exec( e->globalPos() ); |
731 | if ( r == 1 ) { | 731 | if ( r == 1 ) { |
732 | emit editMe( ev.event() ); | 732 | emit editMe( ev.event() ); |
733 | } else if ( r == 2 ) { | 733 | } else if ( r == 2 ) { |
734 | emit deleteMe( ev.event() ); | 734 | emit deleteMe( ev.event() ); |
735 | } else if ( r == 3 ) { | 735 | } else if ( r == 3 ) { |
736 | emit beamMe( ev.event() ); | 736 | emit beamMe( ev.event() ); |
737 | } else if ( r == 4 ) { | 737 | } else if ( r == 4 ) { |
738 | emit duplicateMe( ev.event() ); | 738 | emit duplicateMe( ev.event() ); |
739 | } | 739 | } |
740 | } | 740 | } |
741 | 741 | ||
742 | void DateBookDayWidget::setGeometry( const QRect &r ) | 742 | void DateBookDayWidget::setGeometry( const QRect &r ) |
743 | { | 743 | { |
744 | geom = r; | 744 | geom = r; |
745 | setFixedSize( r.width()+1, r.height()+1 ); | 745 | setFixedSize( r.width()+1, r.height()+1 ); |
746 | dateBook->dayView()->moveChild( this, r.x(), r.y()-1 ); | 746 | dateBook->dayView()->moveChild( this, r.x(), r.y()-1 ); |
747 | show(); | 747 | show(); |
748 | } | 748 | } |
749 | 749 | ||
750 | 750 | ||
751 | //--------------------------------------------------------------------------------------------- | 751 | //--------------------------------------------------------------------------------------------- |
752 | //--------------------------------------------------------------------------------------------- | 752 | //--------------------------------------------------------------------------------------------- |
753 | 753 | ||
754 | 754 | ||
755 | DateBookDayTimeMarker::DateBookDayTimeMarker( DateBookDay *db ) | 755 | DateBookDayTimeMarker::DateBookDayTimeMarker( DateBookDay *db ) |
756 | : QWidget( db->dayView()->viewport() ), dateBook( db ) | 756 | : QWidget( db->dayView()->viewport() ), dateBook( db ) |
757 | { | 757 | { |
758 | setBackgroundMode( PaletteBase ); | 758 | setBackgroundMode( PaletteBase ); |
759 | } | 759 | } |
760 | 760 | ||
761 | DateBookDayTimeMarker::~DateBookDayTimeMarker() | 761 | DateBookDayTimeMarker::~DateBookDayTimeMarker() |
762 | { | 762 | { |
763 | } | 763 | } |
764 | 764 | ||
765 | void DateBookDayTimeMarker::paintEvent( QPaintEvent */*e*/ ) | 765 | void DateBookDayTimeMarker::paintEvent( QPaintEvent */*e*/ ) |
766 | { | 766 | { |
767 | QPainter p( this ); | 767 | QPainter p( this ); |
768 | p.setBrush( QColor( 255, 0, 0 ) ); | 768 | p.setBrush( QColor( 255, 0, 0 ) ); |
769 | 769 | ||
770 | QPen pen; | 770 | QPen pen; |
771 | pen.setStyle(NoPen); | 771 | pen.setStyle(NoPen); |
772 | 772 | ||
773 | p.setPen( pen ); | 773 | p.setPen( pen ); |
774 | p.drawRect(rect()); | 774 | p.drawRect(rect()); |
775 | } | 775 | } |
776 | 776 | ||
777 | void DateBookDayTimeMarker::setTime( const QTime &t ) | 777 | void DateBookDayTimeMarker::setTime( const QTime &t ) |
778 | { | 778 | { |
779 | int y = t.hour()*60+t.minute(); | 779 | int y = t.hour()*60+t.minute(); |
780 | int rh = dateBook->dayView()->rowHeight(0); | 780 | int rh = dateBook->dayView()->rowHeight(0); |
781 | y = y*rh/60; | 781 | y = y*rh/60; |
782 | 782 | ||
783 | geom.setX( 0 ); | 783 | geom.setX( 0 ); |
784 | 784 | ||
785 | int x = dateBook->dayView()->columnWidth(0)-1; | 785 | int x = dateBook->dayView()->columnWidth(0)-1; |
786 | geom.setWidth( x ); | 786 | geom.setWidth( x ); |
787 | 787 | ||
788 | geom.setY( y ); | 788 | geom.setY( y ); |
789 | geom.setHeight( 1 ); | 789 | geom.setHeight( 1 ); |
790 | 790 | ||
791 | setGeometry( geom ); | 791 | setGeometry( geom ); |
792 | 792 | ||
793 | time = t; | 793 | time = t; |
794 | } | 794 | } |
795 | 795 | ||
796 | void DateBookDayTimeMarker::setGeometry( const QRect &r ) | 796 | void DateBookDayTimeMarker::setGeometry( const QRect &r ) |
797 | { | 797 | { |
798 | geom = r; | 798 | geom = r; |
799 | setFixedSize( r.width()+1, r.height()+1 ); | 799 | setFixedSize( r.width()+1, r.height()+1 ); |
800 | dateBook->dayView()->moveChild( this, r.x(), r.y()-1 ); | 800 | dateBook->dayView()->moveChild( this, r.x(), r.y()-1 ); |
801 | show(); | 801 | show(); |
802 | } | 802 | } |