-rw-r--r-- | korganizer/kotodoview.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index a8143a0..a12acd1 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -479,65 +479,65 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : | |||
479 | // setNarrow(); | 479 | // setNarrow(); |
480 | // mTodoListView->setColumnWidth( 0, 100 ); | 480 | // mTodoListView->setColumnWidth( 0, 100 ); |
481 | 481 | ||
482 | // } | 482 | // } |
483 | 483 | ||
484 | } | 484 | } |
485 | 485 | ||
486 | KOTodoView::~KOTodoView() | 486 | KOTodoView::~KOTodoView() |
487 | { | 487 | { |
488 | delete mDocPrefs; | 488 | delete mDocPrefs; |
489 | } | 489 | } |
490 | 490 | ||
491 | void KOTodoView::jumpToDate () | 491 | void KOTodoView::jumpToDate () |
492 | { | 492 | { |
493 | // if (mActiveItem) { | 493 | // if (mActiveItem) { |
494 | // mActiveItem->todo()); | 494 | // mActiveItem->todo()); |
495 | // if ( mActiveItem->todo()->hasDueDate() ) | 495 | // if ( mActiveItem->todo()->hasDueDate() ) |
496 | // emit mActiveItem->todo()jumpToTime( mTodo->dtDue().date() ); | 496 | // emit mActiveItem->todo()jumpToTime( mTodo->dtDue().date() ); |
497 | } | 497 | } |
498 | 498 | ||
499 | void KOTodoView::setNarrow() | 499 | void KOTodoView::setNarrow() |
500 | { | 500 | { |
501 | //mTodoListView->setColumnWidth( 0, 120 ); | 501 | //mTodoListView->setColumnWidth( 0, 120 ); |
502 | mTodoListView->setColumnWidth( 1, 35 ); | 502 | mTodoListView->setColumnWidth( 1, 35 ); |
503 | mTodoListView->setColumnWidth( 2, 40 ); | 503 | mTodoListView->setColumnWidth( 2, 40 ); |
504 | mTodoListView->setColumnWidth( 3, 80 ); | 504 | mTodoListView->setColumnWidth( 3, 80 ); |
505 | mTodoListView->setColumnWidth( 4, 40 ); | 505 | mTodoListView->setColumnWidth( 4, 40 ); |
506 | mTodoListView->setColumnWidth( 5, 90 ); | 506 | mTodoListView->setColumnWidth( 5, 90 ); |
507 | 507 | ||
508 | } | 508 | } |
509 | void KOTodoView::updateView() | 509 | void KOTodoView::updateView() |
510 | { | 510 | { |
511 | 511 | pendingSubtodo = 0; | |
512 | if ( mBlockUpdate ) { | 512 | if ( mBlockUpdate ) { |
513 | //qDebug("blocked "); | 513 | //qDebug("blocked "); |
514 | return; | 514 | return; |
515 | } | 515 | } |
516 | //qDebug("update "); | 516 | //qDebug("update "); |
517 | // kdDebug() << "KOTodoView::updateView()" << endl; | 517 | // kdDebug() << "KOTodoView::updateView()" << endl; |
518 | QFont fo = KOPrefs::instance()->mTodoViewFont; | 518 | QFont fo = KOPrefs::instance()->mTodoViewFont; |
519 | mTodoListView->clear(); | 519 | mTodoListView->clear(); |
520 | if ( mName == "todolistsmall" ) { | 520 | if ( mName == "todolistsmall" ) { |
521 | if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) { | 521 | if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) { |
522 | int ps = fo.pointSize() -2; | 522 | int ps = fo.pointSize() -2; |
523 | if ( ps > 12 ) | 523 | if ( ps > 12 ) |
524 | ps -= 2; | 524 | ps -= 2; |
525 | fo.setPointSize( ps ); | 525 | fo.setPointSize( ps ); |
526 | } | 526 | } |
527 | } | 527 | } |
528 | 528 | ||
529 | mTodoListView->setFont( fo ); | 529 | mTodoListView->setFont( fo ); |
530 | // QFontMetrics fm ( KOPrefs::instance()->mTodoViewFont ); | 530 | // QFontMetrics fm ( KOPrefs::instance()->mTodoViewFont ); |
531 | //mTodoListView->header()->setMaximumHeight(fm.height()); | 531 | //mTodoListView->header()->setMaximumHeight(fm.height()); |
532 | QPtrList<Todo> todoList = calendar()->todos(); | 532 | QPtrList<Todo> todoList = calendar()->todos(); |
533 | 533 | ||
534 | /* | 534 | /* |
535 | kdDebug() << "KOTodoView::updateView(): Todo List:" << endl; | 535 | kdDebug() << "KOTodoView::updateView(): Todo List:" << endl; |
536 | Event *t; | 536 | Event *t; |
537 | for(t = todoList.first(); t; t = todoList.next()) { | 537 | for(t = todoList.first(); t; t = todoList.next()) { |
538 | kdDebug() << " " << t->getSummary() << endl; | 538 | kdDebug() << " " << t->getSummary() << endl; |
539 | 539 | ||
540 | if (t->getRelatedTo()) { | 540 | if (t->getRelatedTo()) { |
541 | kdDebug() << " (related to " << t->getRelatedTo()->getSummary() << ")" << endl; | 541 | kdDebug() << " (related to " << t->getRelatedTo()->getSummary() << ")" << endl; |
542 | } | 542 | } |
543 | 543 | ||
@@ -573,80 +573,81 @@ void KOTodoView::updateView() | |||
573 | //qDebug("related found "); | 573 | //qDebug("related found "); |
574 | incidence = incidence->relatedTo(); | 574 | incidence = incidence->relatedTo(); |
575 | } | 575 | } |
576 | } else | 576 | } else |
577 | incidence = 0; | 577 | incidence = 0; |
578 | } | 578 | } |
579 | if ( next ) | 579 | if ( next ) |
580 | todo = todoList.next(); | 580 | todo = todoList.next(); |
581 | } | 581 | } |
582 | // qDebug("again .... "); | 582 | // qDebug("again .... "); |
583 | // for(todo = todoList.first(); todo; todo = todoList.next()) { | 583 | // for(todo = todoList.first(); todo; todo = todoList.next()) { |
584 | 584 | ||
585 | // qDebug("yytodo %s ", todo->summary().latin1()); | 585 | // qDebug("yytodo %s ", todo->summary().latin1()); |
586 | // } | 586 | // } |
587 | //qDebug("for "); | 587 | //qDebug("for "); |
588 | for(todo = todoList.first(); todo; todo = todoList.next()) { | 588 | for(todo = todoList.first(); todo; todo = todoList.next()) { |
589 | if (!mTodoMap.contains(todo) && ( KOPrefs::instance()->mShowCompletedTodo || !todo->isCompleted() ) ) | 589 | if (!mTodoMap.contains(todo) && ( KOPrefs::instance()->mShowCompletedTodo || !todo->isCompleted() ) ) |
590 | { | 590 | { |
591 | insertTodoItem(todo); | 591 | insertTodoItem(todo); |
592 | } | 592 | } |
593 | } | 593 | } |
594 | //qDebug("for end "); | 594 | //qDebug("for end "); |
595 | // Restore opened/closed state | 595 | // Restore opened/closed state |
596 | mTodoListView->blockSignals( true ); | 596 | mTodoListView->blockSignals( true ); |
597 | if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() ); | 597 | if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() ); |
598 | mTodoListView->blockSignals( false ); | 598 | mTodoListView->blockSignals( false ); |
599 | mTodoListView->setFocus(); | 599 | mTodoListView->setFocus(); |
600 | processSelectionChange(); | 600 | processSelectionChange(); |
601 | } | 601 | } |
602 | 602 | ||
603 | void KOTodoView::restoreItemState( QListViewItem *item ) | 603 | void KOTodoView::restoreItemState( QListViewItem *item ) |
604 | { | 604 | { |
605 | pendingSubtodo = 0; | ||
605 | while( item ) { | 606 | while( item ) { |
606 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; | 607 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; |
607 | todoItem->setOpen( mDocPrefs->readBoolEntry( todoItem->todo()->uid() ) ); | 608 | todoItem->setOpen( mDocPrefs->readBoolEntry( todoItem->todo()->uid() ) ); |
608 | if( item->childCount() > 0 ) restoreItemState( item->firstChild() ); | 609 | if( item->childCount() > 0 ) restoreItemState( item->firstChild() ); |
609 | item = item->nextSibling(); | 610 | item = item->nextSibling(); |
610 | } | 611 | } |
611 | } | 612 | } |
612 | 613 | ||
613 | 614 | ||
614 | QMap<Todo *,KOTodoViewItem *>::ConstIterator | 615 | QMap<Todo *,KOTodoViewItem *>::ConstIterator |
615 | KOTodoView::insertTodoItem(Todo *todo) | 616 | KOTodoView::insertTodoItem(Todo *todo) |
616 | { | 617 | { |
617 | // kdDebug() << "KOTodoView::insertTodoItem(): " << todo->getSummary() << endl; | 618 | // kdDebug() << "KOTodoView::insertTodoItem(): " << todo->getSummary() << endl; |
618 | // TODO: Check, if dynmaic cast is necessary | 619 | // TODO: Check, if dynmaic cast is necessary |
619 | 620 | ||
620 | 621 | pendingSubtodo = 0; | |
621 | Incidence *incidence = todo->relatedTo(); | 622 | Incidence *incidence = todo->relatedTo(); |
622 | if (incidence && incidence->type() == "Todo") { | 623 | if (incidence && incidence->type() == "Todo") { |
623 | Todo *relatedTodo = static_cast<Todo *>(incidence); | 624 | Todo *relatedTodo = static_cast<Todo *>(incidence); |
624 | 625 | ||
625 | // kdDebug() << " has Related" << endl; | 626 | // kdDebug() << " has Related" << endl; |
626 | QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator; | 627 | QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator; |
627 | itemIterator = mTodoMap.find(relatedTodo); | 628 | itemIterator = mTodoMap.find(relatedTodo); |
628 | if (itemIterator == mTodoMap.end()) { | 629 | if (itemIterator == mTodoMap.end()) { |
629 | // kdDebug() << " related not yet in list" << endl; | 630 | // kdDebug() << " related not yet in list" << endl; |
630 | itemIterator = insertTodoItem (relatedTodo); | 631 | itemIterator = insertTodoItem (relatedTodo); |
631 | } | 632 | } |
632 | // isn't this pretty stupid? We give one Todo to the KOTodoViewItem | 633 | // isn't this pretty stupid? We give one Todo to the KOTodoViewItem |
633 | // and one into the map. Sure finding is more easy but why? -zecke | 634 | // and one into the map. Sure finding is more easy but why? -zecke |
634 | KOTodoViewItem *todoItem = new KOTodoViewItem(*itemIterator,todo,this); | 635 | KOTodoViewItem *todoItem = new KOTodoViewItem(*itemIterator,todo,this); |
635 | return mTodoMap.insert(todo,todoItem); | 636 | return mTodoMap.insert(todo,todoItem); |
636 | } else { | 637 | } else { |
637 | // kdDebug() << " no Related" << endl; | 638 | // kdDebug() << " no Related" << endl; |
638 | // see above -zecke | 639 | // see above -zecke |
639 | KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this); | 640 | KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this); |
640 | return mTodoMap.insert(todo,todoItem); | 641 | return mTodoMap.insert(todo,todoItem); |
641 | } | 642 | } |
642 | } | 643 | } |
643 | 644 | ||
644 | 645 | ||
645 | void KOTodoView::updateConfig() | 646 | void KOTodoView::updateConfig() |
646 | { | 647 | { |
647 | updateView(); | 648 | updateView(); |
648 | mTodoListView->repaintContents(); | 649 | mTodoListView->repaintContents(); |
649 | } | 650 | } |
650 | 651 | ||
651 | QPtrList<Incidence> KOTodoView::selectedIncidences() | 652 | QPtrList<Incidence> KOTodoView::selectedIncidences() |
652 | { | 653 | { |
@@ -676,64 +677,65 @@ void KOTodoView::changeEventDisplay(Event *, int) | |||
676 | } | 677 | } |
677 | 678 | ||
678 | void KOTodoView::showDates(const QDate &, const QDate &) | 679 | void KOTodoView::showDates(const QDate &, const QDate &) |
679 | { | 680 | { |
680 | } | 681 | } |
681 | 682 | ||
682 | void KOTodoView::showEvents(QPtrList<Event>) | 683 | void KOTodoView::showEvents(QPtrList<Event>) |
683 | { | 684 | { |
684 | kdDebug() << "KOTodoView::selectEvents(): not yet implemented" << endl; | 685 | kdDebug() << "KOTodoView::selectEvents(): not yet implemented" << endl; |
685 | } | 686 | } |
686 | 687 | ||
687 | void KOTodoView::printPreview(CalPrinter *calPrinter, const QDate &fd, | 688 | void KOTodoView::printPreview(CalPrinter *calPrinter, const QDate &fd, |
688 | const QDate &td) | 689 | const QDate &td) |
689 | { | 690 | { |
690 | #ifndef KORG_NOPRINTER | 691 | #ifndef KORG_NOPRINTER |
691 | calPrinter->preview(CalPrinter::Todolist, fd, td); | 692 | calPrinter->preview(CalPrinter::Todolist, fd, td); |
692 | #endif | 693 | #endif |
693 | } | 694 | } |
694 | 695 | ||
695 | void KOTodoView::editItem(QListViewItem *item ) | 696 | void KOTodoView::editItem(QListViewItem *item ) |
696 | { | 697 | { |
697 | // qDebug("editItem(QListViewItem *item ) "); | 698 | // qDebug("editItem(QListViewItem *item ) "); |
698 | emit editTodoSignal(((KOTodoViewItem *)item)->todo()); | 699 | emit editTodoSignal(((KOTodoViewItem *)item)->todo()); |
699 | } | 700 | } |
700 | 701 | ||
701 | void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) | 702 | void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) |
702 | { | 703 | { |
703 | emit showTodoSignal(((KOTodoViewItem *)item)->todo()); | 704 | emit showTodoSignal(((KOTodoViewItem *)item)->todo()); |
704 | } | 705 | } |
705 | 706 | ||
706 | void KOTodoView::popupMenu(QListViewItem *item,const QPoint &,int column) | 707 | void KOTodoView::popupMenu(QListViewItem *item,const QPoint &,int column) |
707 | { | 708 | { |
709 | pendingSubtodo = 0; | ||
708 | mActiveItem = (KOTodoViewItem *)item; | 710 | mActiveItem = (KOTodoViewItem *)item; |
709 | if (item) { | 711 | if (item) { |
710 | switch (column){ | 712 | switch (column){ |
711 | case 1: | 713 | case 1: |
712 | mPriorityPopupMenu->popup(QCursor::pos ()); break; | 714 | mPriorityPopupMenu->popup(QCursor::pos ()); break; |
713 | case 2: | 715 | case 2: |
714 | mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; | 716 | mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; |
715 | case 3: | 717 | case 3: |
716 | moveTodo(); | 718 | moveTodo(); |
717 | break; | 719 | break; |
718 | case 6: | 720 | case 6: |
719 | getCategoryPopupMenu((KOTodoViewItem *)item)->popup(QCursor::pos ()); break; | 721 | getCategoryPopupMenu((KOTodoViewItem *)item)->popup(QCursor::pos ()); break; |
720 | default: | 722 | default: |
721 | mItemPopupMenu->popup(QCursor::pos()); | 723 | mItemPopupMenu->popup(QCursor::pos()); |
722 | } | 724 | } |
723 | } else mPopupMenu->popup(QCursor::pos()); | 725 | } else mPopupMenu->popup(QCursor::pos()); |
724 | } | 726 | } |
725 | void KOTodoView::newTodo() | 727 | void KOTodoView::newTodo() |
726 | { | 728 | { |
727 | emit newTodoSignal(); | 729 | emit newTodoSignal(); |
728 | } | 730 | } |
729 | 731 | ||
730 | void KOTodoView::newSubTodo() | 732 | void KOTodoView::newSubTodo() |
731 | { | 733 | { |
732 | if (mActiveItem) { | 734 | if (mActiveItem) { |
733 | emit newSubTodoSignal(mActiveItem->todo()); | 735 | emit newSubTodoSignal(mActiveItem->todo()); |
734 | } | 736 | } |
735 | } | 737 | } |
736 | void KOTodoView::unparentTodo() | 738 | void KOTodoView::unparentTodo() |
737 | { | 739 | { |
738 | if (mActiveItem) { | 740 | if (mActiveItem) { |
739 | emit unparentTodoSignal(mActiveItem->todo()); | 741 | emit unparentTodoSignal(mActiveItem->todo()); |