summaryrefslogtreecommitdiffabout
path: root/korganizer/kolistview.cpp
authorzautrix <zautrix>2005-06-09 08:27:24 (UTC)
committer zautrix <zautrix>2005-06-09 08:27:24 (UTC)
commit12b4828ddfa8ac2fabbaf7c8841b8d68d16a0262 (patch) (unidiff)
treeac59de32cdf3ae5b8430b9039232f596a8a6a063 /korganizer/kolistview.cpp
parentb0eb8251185b7c9d664af23da94480c7fcfcf8be (diff)
downloadkdepimpi-12b4828ddfa8ac2fabbaf7c8841b8d68d16a0262.zip
kdepimpi-12b4828ddfa8ac2fabbaf7c8841b8d68d16a0262.tar.gz
kdepimpi-12b4828ddfa8ac2fabbaf7c8841b8d68d16a0262.tar.bz2
select lisz view fixes
Diffstat (limited to 'korganizer/kolistview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kolistview.cpp108
1 files changed, 50 insertions, 58 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index 5797d1b..1f3b4c6 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -386,12 +386,13 @@ void KOListView::addCat( )
386 setCategories( false ); 386 setCategories( false );
387} 387}
388void KOListView::setCat() 388void KOListView::setCat()
389{ 389{
390 setCategories( true ); 390 setCategories( true );
391} 391}
392
392void KOListView::setAlarm() 393void KOListView::setAlarm()
393{ 394{
394 KOAlarmPrefs kap( this); 395 KOAlarmPrefs kap( this);
395 if ( !kap.exec() ) 396 if ( !kap.exec() )
396 return; 397 return;
397 QStringList itemList; 398 QStringList itemList;
@@ -511,23 +512,14 @@ void KOListView::setCategories( bool removeOld )
511 } 512 }
512 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) ); 513 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) );
513} 514}
514 515
515void KOListView::beamSelected() 516void KOListView::beamSelected()
516{ 517{
517 int icount = 0; 518 QPtrList<Incidence> delSel = getSelectedIncidences() ;
518 QPtrList<Incidence> delSel ; 519 int icount = delSel.count();
519 QListViewItem *item = mListView->firstChild ();
520 while ( item ) {
521 if ( item->isSelected() ) {
522 delSel.append(((KOListViewItem *)item)->data());
523 ++icount;
524 }
525
526 item = item->nextSibling();
527 }
528 if ( icount ) { 520 if ( icount ) {
529 emit beamIncidenceList( delSel ); 521 emit beamIncidenceList( delSel );
530 return; 522 return;
531 QString fn ; 523 QString fn ;
532 fn = QDir::homeDirPath()+"/kopitempbeamfile.vcs"; 524 fn = QDir::homeDirPath()+"/kopitempbeamfile.vcs";
533 QString mes; 525 QString mes;
@@ -572,23 +564,14 @@ void KOListView::saveDescriptionToFile()
572 i18n("This saves the text/details of selected\nJournals and Events/Todos\nto a text file."), 564 i18n("This saves the text/details of selected\nJournals and Events/Todos\nto a text file."),
573 i18n("Continue"), i18n("Cancel"), 0, 565 i18n("Continue"), i18n("Cancel"), 0,
574 0, 1 ); 566 0, 1 );
575 if ( result != 0 ) { 567 if ( result != 0 ) {
576 return; 568 return;
577 } 569 }
578 int icount = 0; 570 QPtrList<Incidence> delSel = getSelectedIncidences() ;
579 QPtrList<Incidence> delSel ; 571 int icount = delSel.count();
580 QListViewItem *item = mListView->firstChild ();
581 while ( item ) {
582 if ( item->isSelected() ) {
583 delSel.append(((KOListViewItem *)item)->data());
584 ++icount;
585 }
586
587 item = item->nextSibling();
588 }
589 if ( icount ) { 572 if ( icount ) {
590 QString fn = KOPrefs::instance()->mLastSaveFile; 573 QString fn = KOPrefs::instance()->mLastSaveFile;
591 fn = KFileDialog::getSaveFileName( fn, i18n("Save filename"), this ); 574 fn = KFileDialog::getSaveFileName( fn, i18n("Save filename"), this );
592 575
593 if ( fn == "" ) 576 if ( fn == "" )
594 return; 577 return;
@@ -656,65 +639,83 @@ void KOListView::saveToFileVCS()
656 writeToFile( false ); 639 writeToFile( false );
657} 640}
658void KOListView::saveToFile() 641void KOListView::saveToFile()
659{ 642{
660 writeToFile( true ); 643 writeToFile( true );
661} 644}
662void KOListView::writeToFile( bool iCal ) 645QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents, bool includeTodos, bool includeJournals, bool onlyDueTodos )
663{ 646{
664
665 int icount = 0;
666 QPtrList<Incidence> delSel ; 647 QPtrList<Incidence> delSel ;
667 QListViewItem *item = mListView->firstChild ();
668 bool journal = iCal; // warn only for vCal
669 bool addSubTodos = false; 648 bool addSubTodos = false;
670 bool askSubTodos = true; 649 bool askSubTodos = true;
650 QListViewItem *item = mListView->firstChild ();
671 while ( item ) { 651 while ( item ) {
672 if ( item->isSelected() ) { 652 if ( item->isSelected() ) {
673 if ( !journal )
674 if ( ((KOListViewItem *)item)->data()->typeID() == journalID )
675 journal = true;
676 Incidence* inc = ((KOListViewItem *)item)->data(); 653 Incidence* inc = ((KOListViewItem *)item)->data();
677 if ( addSubTodos ) { 654 if ( ( addSubTodos && delSel.findRef( inc ) == -1) || !addSubTodos ) {
678 if ( delSel.findRef( inc ) == -1 ) 655 if ( (inc->typeID() == todoID && includeTodos) ||
679 delSel.append( inc ); 656 (inc->typeID() == eventID && includeEvents) ||
680 } else 657 (inc->typeID() == journalID && includeJournals) ) {
681 delSel.append(inc); 658 if ( inc->typeID() == todoID && onlyDueTodos ) {
659 if ( ((Todo*)inc)->hasDueDate() )
660 delSel.append( inc );
661 } else
662 delSel.append( inc );
663
664 }
665 }
682 if ( inc->typeID() == todoID ) { 666 if ( inc->typeID() == todoID ) {
683 Todo * todo = (Todo*) inc; 667 Todo * todo = (Todo*) inc;
684 if ( todo->relations().count() ) { 668 if ( todo->relations().count() ) {
685 if ( askSubTodos ) { 669 if ( askSubTodos ) {
686 int result = KMessageBox::warningYesNoCancel(this, 670 int result = KMessageBox::warningYesNoCancel(this,
687 i18n("A selected todo has subtodos!\nDo you want to export\nall subtodos of all\nselected todos as well?"), 671 i18n("One (or more) selected\ntodo has subtodos!\nDo you want to select\nall subtodos of all\nselected todos as well?"),
688 i18n("Todo has subtodos"), 672 i18n("Todo has subtodos"),
689 i18n("Yes"), 673 i18n("Yes"),
690 i18n("No")); 674 i18n("No"));
691 if ( result == KMessageBox::Cancel ) { 675 if ( result == KMessageBox::Cancel ) {
692 return; 676 delSel.clear();
677 return delSel;
693 } 678 }
694 if (result == KMessageBox::Yes) 679 if (result == KMessageBox::Yes)
695 addSubTodos = true; 680 addSubTodos = true;
696 askSubTodos = false; 681 askSubTodos = false;
697 } 682 }
698 if ( addSubTodos ) { 683 if ( addSubTodos ) {
699 inc->addRelationsToList( &delSel ); 684 inc->addRelationsToList( &delSel );
700 } 685 }
701 } 686 }
702 } 687 }
703 ++icount;
704 } 688 }
705 item = item->nextSibling(); 689 item = item->nextSibling();
706 } 690 }
707 if ( !iCal && journal ) { 691 return delSel;
708 int result = KMessageBox::warningContinueCancel(this, 692}
709 i18n("The journal entries can not be\nexported to a vCalendar file."), 693
710 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), 694void KOListView::writeToFile( bool iCal )
711 true); 695{
712 if (result != KMessageBox::Continue) return; 696 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;
697 if ( !iCal ) {
698 bool journal = false;
699 Incidence *incidence = delSel.first();
700 while ( incidence ) {
701 if ( incidence->typeID() == journalID ) {
702 journal = true;
703 break;
704 }
705 incidence = delSel.next();
706 }
707 if ( journal ) {
708 int result = KMessageBox::warningContinueCancel(this,
709 i18n("The journal entries can not be\nexported to a vCalendar file."),
710 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"),
711 true);
712 if (result != KMessageBox::Continue) return;
713 }
713 } 714 }
714 if ( icount ) { 715 if ( delSel.count() ) {
715 QString fn = KOPrefs::instance()->mLastSaveFile; 716 QString fn = KOPrefs::instance()->mLastSaveFile;
716 QString extension; 717 QString extension;
717 if ( iCal ) { 718 if ( iCal ) {
718 if ( fn.right( 4 ).lower() == ".vcs" ) { 719 if ( fn.right( 4 ).lower() == ".vcs" ) {
719 fn = fn.left( fn.length() -3) + "ics"; 720 fn = fn.left( fn.length() -3) + "ics";
720 } 721 }
@@ -783,24 +784,15 @@ void KOListView::hideAll()
783void KOListView::printList() 784void KOListView::printList()
784{ 785{
785 mListView->printList(); 786 mListView->printList();
786} 787}
787void KOListView::deleteAll() 788void KOListView::deleteAll()
788{ 789{
789 int icount = 0; 790 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;;
790 QPtrList<Incidence> delSel ; 791 if ( delSel.count() ) {
791 QListViewItem *item = mListView->firstChild (); 792 int icount = delSel.count();
792 while ( item ) {
793 if ( item->isSelected() ) {
794 delSel.append(((KOListViewItem *)item)->data());
795 ++icount;
796 }
797
798 item = item->nextSibling();
799 }
800 if ( icount ) {
801 Incidence *incidence = delSel.first(); 793 Incidence *incidence = delSel.first();
802 Incidence *toDelete; 794 Incidence *toDelete;
803 KOPrefs *p = KOPrefs::instance(); 795 KOPrefs *p = KOPrefs::instance();
804 bool confirm = p->mConfirm; 796 bool confirm = p->mConfirm;
805 QString mess; 797 QString mess;
806 mess = mess.sprintf( i18n("You have %d item(s) selected.\n"), icount ); 798 mess = mess.sprintf( i18n("You have %d item(s) selected.\n"), icount );