summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp21
-rw-r--r--korganizer/mainwindow.cpp3
2 files changed, 13 insertions, 11 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 038da54..06454c2 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -695,1012 +695,1013 @@ QDate CalendarView::startDate()
695 DateList dates = mNavigator->selectedDates(); 695 DateList dates = mNavigator->selectedDates();
696 696
697 return dates.first(); 697 return dates.first();
698} 698}
699 699
700QDate CalendarView::endDate() 700QDate CalendarView::endDate()
701{ 701{
702 DateList dates = mNavigator->selectedDates(); 702 DateList dates = mNavigator->selectedDates();
703 703
704 return dates.last(); 704 return dates.last();
705} 705}
706 706
707 707
708void CalendarView::createPrinter() 708void CalendarView::createPrinter()
709{ 709{
710#ifndef KORG_NOPRINTER 710#ifndef KORG_NOPRINTER
711 if (!mCalPrinter) { 711 if (!mCalPrinter) {
712 mCalPrinter = new CalPrinter(this, mCalendar); 712 mCalPrinter = new CalPrinter(this, mCalendar);
713 connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig())); 713 connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig()));
714 } 714 }
715#endif 715#endif
716} 716}
717 717
718 718
719//KOPrefs::instance()->mWriteBackFile 719//KOPrefs::instance()->mWriteBackFile
720//KOPrefs::instance()->mWriteBackExistingOnly 720//KOPrefs::instance()->mWriteBackExistingOnly
721 721
722// 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); 722// 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
723// 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); 723// 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
724// 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); 724// 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
725// 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); 725// 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
726// 4 syncPrefsGroup->addRadio(i18n("Force take local entry always")); 726// 4 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
727// 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); 727// 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
728 728
729int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full ) 729int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full )
730{ 730{
731 731
732 // 0 equal 732 // 0 equal
733 // 1 take local 733 // 1 take local
734 // 2 take remote 734 // 2 take remote
735 // 3 cancel 735 // 3 cancel
736 QDateTime lastSync = mLastCalendarSync; 736 QDateTime lastSync = mLastCalendarSync;
737 QDateTime localMod = local->lastModified(); 737 QDateTime localMod = local->lastModified();
738 QDateTime remoteMod = remote->lastModified(); 738 QDateTime remoteMod = remote->lastModified();
739 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 739 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
740 bool remCh, locCh; 740 bool remCh, locCh;
741 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); 741 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
742 //if ( remCh ) 742 //if ( remCh )
743 //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); 743 //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() );
744 locCh = ( localMod > mLastCalendarSync ); 744 locCh = ( localMod > mLastCalendarSync );
745 if ( !remCh && ! locCh ) { 745 if ( !remCh && ! locCh ) {
746 //qDebug("both not changed "); 746 //qDebug("both not changed ");
747 lastSync = localMod.addDays(1); 747 lastSync = localMod.addDays(1);
748 if ( mode <= SYNC_PREF_ASK ) 748 if ( mode <= SYNC_PREF_ASK )
749 return 0; 749 return 0;
750 } else { 750 } else {
751 if ( locCh ) { 751 if ( locCh ) {
752 //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1()); 752 //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1());
753 lastSync = localMod.addDays( -1 ); 753 lastSync = localMod.addDays( -1 );
754 if ( !remCh ) 754 if ( !remCh )
755 remoteMod = ( lastSync.addDays( -1 ) ); 755 remoteMod = ( lastSync.addDays( -1 ) );
756 } else { 756 } else {
757 //qDebug(" not loc changed "); 757 //qDebug(" not loc changed ");
758 lastSync = localMod.addDays( 1 ); 758 lastSync = localMod.addDays( 1 );
759 if ( remCh ) 759 if ( remCh )
760 remoteMod =( lastSync.addDays( 1 ) ); 760 remoteMod =( lastSync.addDays( 1 ) );
761 761
762 } 762 }
763 } 763 }
764 full = true; 764 full = true;
765 if ( mode < SYNC_PREF_ASK ) 765 if ( mode < SYNC_PREF_ASK )
766 mode = SYNC_PREF_ASK; 766 mode = SYNC_PREF_ASK;
767 } else { 767 } else {
768 if ( localMod == remoteMod ) 768 if ( localMod == remoteMod )
769 // if ( local->revision() == remote->revision() ) 769 // if ( local->revision() == remote->revision() )
770 return 0; 770 return 0;
771 771
772 } 772 }
773 // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() ); 773 // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() );
774 774
775 //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision()); 775 //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision());
776 //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() ); 776 //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() );
777 //full = true; //debug only 777 //full = true; //debug only
778 if ( full ) { 778 if ( full ) {
779 bool equ = false; 779 bool equ = false;
780 if ( local->type() == "Event" ) { 780 if ( local->type() == "Event" ) {
781 equ = (*((Event*) local) == *((Event*) remote)); 781 equ = (*((Event*) local) == *((Event*) remote));
782 } 782 }
783 else if ( local->type() =="Todo" ) 783 else if ( local->type() =="Todo" )
784 equ = (*((Todo*) local) == (*(Todo*) remote)); 784 equ = (*((Todo*) local) == (*(Todo*) remote));
785 else if ( local->type() =="Journal" ) 785 else if ( local->type() =="Journal" )
786 equ = (*((Journal*) local) == *((Journal*) remote)); 786 equ = (*((Journal*) local) == *((Journal*) remote));
787 if ( equ ) { 787 if ( equ ) {
788 //qDebug("equal "); 788 //qDebug("equal ");
789 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 789 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
790 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); 790 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) );
791 } 791 }
792 if ( mode < SYNC_PREF_FORCE_LOCAL ) 792 if ( mode < SYNC_PREF_FORCE_LOCAL )
793 return 0; 793 return 0;
794 794
795 }//else //debug only 795 }//else //debug only
796 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); 796 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1());
797 } 797 }
798 int result; 798 int result;
799 bool localIsNew; 799 bool localIsNew;
800 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , localMod.toString().latin1() , remoteMod.toString().latin1() ); 800 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , localMod.toString().latin1() , remoteMod.toString().latin1() );
801 801
802 if ( full && mode < SYNC_PREF_NEWEST ) 802 if ( full && mode < SYNC_PREF_NEWEST )
803 mode = SYNC_PREF_ASK; 803 mode = SYNC_PREF_ASK;
804 804
805 switch( mode ) { 805 switch( mode ) {
806 case SYNC_PREF_LOCAL: 806 case SYNC_PREF_LOCAL:
807 if ( lastSync > remoteMod ) 807 if ( lastSync > remoteMod )
808 return 1; 808 return 1;
809 if ( lastSync > localMod ) 809 if ( lastSync > localMod )
810 return 2; 810 return 2;
811 return 1; 811 return 1;
812 break; 812 break;
813 case SYNC_PREF_REMOTE: 813 case SYNC_PREF_REMOTE:
814 if ( lastSync > remoteMod ) 814 if ( lastSync > remoteMod )
815 return 1; 815 return 1;
816 if ( lastSync > localMod ) 816 if ( lastSync > localMod )
817 return 2; 817 return 2;
818 return 2; 818 return 2;
819 break; 819 break;
820 case SYNC_PREF_NEWEST: 820 case SYNC_PREF_NEWEST:
821 if ( localMod > remoteMod ) 821 if ( localMod > remoteMod )
822 return 1; 822 return 1;
823 else 823 else
824 return 2; 824 return 2;
825 break; 825 break;
826 case SYNC_PREF_ASK: 826 case SYNC_PREF_ASK:
827 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 827 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
828 if ( lastSync > remoteMod ) 828 if ( lastSync > remoteMod )
829 return 1; 829 return 1;
830 if ( lastSync > localMod ) 830 if ( lastSync > localMod )
831 return 2; 831 return 2;
832 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 832 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
833 localIsNew = localMod >= remoteMod; 833 localIsNew = localMod >= remoteMod;
834 if ( localIsNew ) 834 if ( localIsNew )
835 getEventViewerDialog()->setColorMode( 1 ); 835 getEventViewerDialog()->setColorMode( 1 );
836 else 836 else
837 getEventViewerDialog()->setColorMode( 2 ); 837 getEventViewerDialog()->setColorMode( 2 );
838 getEventViewerDialog()->setIncidence(local); 838 getEventViewerDialog()->setIncidence(local);
839 if ( localIsNew ) 839 if ( localIsNew )
840 getEventViewerDialog()->setColorMode( 2 ); 840 getEventViewerDialog()->setColorMode( 2 );
841 else 841 else
842 getEventViewerDialog()->setColorMode( 1 ); 842 getEventViewerDialog()->setColorMode( 1 );
843 getEventViewerDialog()->addIncidence(remote); 843 getEventViewerDialog()->addIncidence(remote);
844 getEventViewerDialog()->setColorMode( 0 ); 844 getEventViewerDialog()->setColorMode( 0 );
845 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); 845 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() );
846 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!")); 846 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!"));
847 getEventViewerDialog()->showMe(); 847 getEventViewerDialog()->showMe();
848 result = getEventViewerDialog()->executeS( localIsNew ); 848 result = getEventViewerDialog()->executeS( localIsNew );
849 return result; 849 return result;
850 850
851 break; 851 break;
852 case SYNC_PREF_FORCE_LOCAL: 852 case SYNC_PREF_FORCE_LOCAL:
853 return 1; 853 return 1;
854 break; 854 break;
855 case SYNC_PREF_FORCE_REMOTE: 855 case SYNC_PREF_FORCE_REMOTE:
856 return 2; 856 return 2;
857 break; 857 break;
858 858
859 default: 859 default:
860 // SYNC_PREF_TAKE_BOTH not implemented 860 // SYNC_PREF_TAKE_BOTH not implemented
861 break; 861 break;
862 } 862 }
863 return 0; 863 return 0;
864} 864}
865Event* CalendarView::getLastSyncEvent() 865Event* CalendarView::getLastSyncEvent()
866{ 866{
867 Event* lse; 867 Event* lse;
868 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 868 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
869 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice ); 869 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice );
870 if (!lse) { 870 if (!lse) {
871 lse = new Event(); 871 lse = new Event();
872 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice ); 872 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice );
873 QString sum = ""; 873 QString sum = "";
874 if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) 874 if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) )
875 sum = "E: "; 875 sum = "E: ";
876 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); 876 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event"));
877 lse->setDtStart( mLastCalendarSync ); 877 lse->setDtStart( mLastCalendarSync );
878 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 878 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
879 lse->setCategories( i18n("SyncEvent") ); 879 lse->setCategories( i18n("SyncEvent") );
880 lse->setReadOnly( true ); 880 lse->setReadOnly( true );
881 mCalendar->addEvent( lse ); 881 mCalendar->addEvent( lse );
882 } 882 }
883 883
884 return lse; 884 return lse;
885 885
886} 886}
887 887
888// we check, if the to delete event has a id for a profile 888// we check, if the to delete event has a id for a profile
889// if yes, we set this id in the profile to delete 889// if yes, we set this id in the profile to delete
890void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ) 890void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete )
891{ 891{
892 if ( lastSync.count() == 0 ) { 892 if ( lastSync.count() == 0 ) {
893 //qDebug(" lastSync.count() == 0"); 893 //qDebug(" lastSync.count() == 0");
894 return; 894 return;
895 } 895 }
896 if ( toDelete->type() == "Journal" ) 896 if ( toDelete->type() == "Journal" )
897 return; 897 return;
898 898
899 Event* eve = lastSync.first(); 899 Event* eve = lastSync.first();
900 900
901 while ( eve ) { 901 while ( eve ) {
902 QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name 902 QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name
903 if ( !id.isEmpty() ) { 903 if ( !id.isEmpty() ) {
904 QString des = eve->description(); 904 QString des = eve->description();
905 QString pref = "e"; 905 QString pref = "e";
906 if ( toDelete->type() == "Todo" ) 906 if ( toDelete->type() == "Todo" )
907 pref = "t"; 907 pref = "t";
908 des += pref+ id + ","; 908 des += pref+ id + ",";
909 eve->setReadOnly( false ); 909 eve->setReadOnly( false );
910 eve->setDescription( des ); 910 eve->setDescription( des );
911 //qDebug("setdes %s ", des.latin1()); 911 //qDebug("setdes %s ", des.latin1());
912 eve->setReadOnly( true ); 912 eve->setReadOnly( true );
913 } 913 }
914 eve = lastSync.next(); 914 eve = lastSync.next();
915 } 915 }
916 916
917} 917}
918void CalendarView::checkExternalId( Incidence * inc ) 918void CalendarView::checkExternalId( Incidence * inc )
919{ 919{
920 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ; 920 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ;
921 checkExternSyncEvent( lastSync, inc ); 921 checkExternSyncEvent( lastSync, inc );
922 922
923} 923}
924bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) 924bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode )
925{ 925{
926 bool syncOK = true; 926 bool syncOK = true;
927 int addedEvent = 0; 927 int addedEvent = 0;
928 int addedEventR = 0; 928 int addedEventR = 0;
929 int deletedEventR = 0; 929 int deletedEventR = 0;
930 int deletedEventL = 0; 930 int deletedEventL = 0;
931 int changedLocal = 0; 931 int changedLocal = 0;
932 int changedRemote = 0; 932 int changedRemote = 0;
933 int filteredIN = 0; 933 int filteredIN = 0;
934 int filteredOUT = 0; 934 int filteredOUT = 0;
935 //QPtrList<Event> el = local->rawEvents(); 935 //QPtrList<Event> el = local->rawEvents();
936 Event* eventR; 936 Event* eventR;
937 QString uid; 937 QString uid;
938 int take; 938 int take;
939 Event* eventL; 939 Event* eventL;
940 Event* eventRSync; 940 Event* eventRSync;
941 Event* eventLSync; 941 Event* eventLSync;
942 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); 942 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents();
943 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); 943 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents();
944 bool fullDateRange = false; 944 bool fullDateRange = false;
945 local->resetTempSyncStat(); 945 local->resetTempSyncStat();
946 mLastCalendarSync = QDateTime::currentDateTime(); 946 mLastCalendarSync = QDateTime::currentDateTime();
947 if ( mSyncManager->syncWithDesktop() ) { 947 if ( mSyncManager->syncWithDesktop() ) {
948 remote->resetPilotStat(1); 948 remote->resetPilotStat(1);
949 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 949 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
950 mLastCalendarSync = KSyncManager::mRequestedSyncEvent; 950 mLastCalendarSync = KSyncManager::mRequestedSyncEvent;
951 qDebug("using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() ); 951 qDebug("KO: using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() );
952 } else { 952 } else {
953 qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime "); 953 qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime ");
954 } 954 }
955 } 955 }
956 QDateTime modifiedCalendar = mLastCalendarSync; 956 QDateTime modifiedCalendar = mLastCalendarSync;
957 eventLSync = getLastSyncEvent(); 957 eventLSync = getLastSyncEvent();
958 eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); 958 eventR = remote->event("last-syncEvent-"+mCurrentSyncName );
959 if ( eventR ) { 959 if ( eventR ) {
960 eventRSync = (Event*) eventR->clone(); 960 eventRSync = (Event*) eventR->clone();
961 remote->deleteEvent(eventR ); 961 remote->deleteEvent(eventR );
962 962
963 } else { 963 } else {
964 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) { 964 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) {
965 eventRSync = (Event*)eventLSync->clone(); 965 eventRSync = (Event*)eventLSync->clone();
966 } else { 966 } else {
967 fullDateRange = true; 967 fullDateRange = true;
968 eventRSync = new Event(); 968 eventRSync = new Event();
969 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); 969 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event"));
970 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); 970 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName );
971 eventRSync->setDtStart( mLastCalendarSync ); 971 eventRSync->setDtStart( mLastCalendarSync );
972 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 972 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
973 eventRSync->setCategories( i18n("SyncEvent") ); 973 eventRSync->setCategories( i18n("SyncEvent") );
974 } 974 }
975 } 975 }
976 if ( eventLSync->dtStart() == mLastCalendarSync ) 976 if ( eventLSync->dtStart() == mLastCalendarSync )
977 fullDateRange = true; 977 fullDateRange = true;
978 978
979 if ( ! fullDateRange ) { 979 if ( ! fullDateRange ) {
980 if ( eventLSync->dtStart() != eventRSync->dtStart() ) { 980 if ( eventLSync->dtStart() != eventRSync->dtStart() ) {
981 981
982 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); 982 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() );
983 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); 983 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec());
984 fullDateRange = true; 984 fullDateRange = true;
985 } 985 }
986 } 986 }
987 if ( mSyncManager->syncWithDesktop() ) { 987 if ( mSyncManager->syncWithDesktop() ) {
988 fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync ); 988 fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync );
989 } 989 }
990 if ( fullDateRange ) 990 if ( fullDateRange )
991 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); 991 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365);
992 else 992 else
993 mLastCalendarSync = eventLSync->dtStart(); 993 mLastCalendarSync = eventLSync->dtStart();
994 // for resyncing if own file has changed 994 // for resyncing if own file has changed
995 if ( mCurrentSyncDevice == "deleteaftersync" ) { 995 if ( mCurrentSyncDevice == "deleteaftersync" ) {
996 mLastCalendarSync = loadedFileVersion; 996 mLastCalendarSync = loadedFileVersion;
997 //qDebug("setting mLastCalendarSync "); 997 //qDebug("setting mLastCalendarSync ");
998 } 998 }
999 //qDebug("*************************** "); 999 //qDebug("*************************** ");
1000 qDebug("mLastCalendarSync %s full: %d",mLastCalendarSync.toString().latin1(), fullDateRange); 1000 qDebug("KO: mLastCalendarSync %s .Full: %d",mLastCalendarSync.toString().latin1(), fullDateRange);
1001 QPtrList<Incidence> er = remote->rawIncidences(); 1001 QPtrList<Incidence> er = remote->rawIncidences();
1002 Incidence* inR = er.first(); 1002 Incidence* inR = er.first();
1003 Incidence* inL; 1003 Incidence* inL;
1004 QProgressBar bar( er.count(),0 ); 1004 QProgressBar bar( er.count(),0 );
1005 bar.setCaption (i18n("Syncing - close to abort!") ); 1005 bar.setCaption (i18n("Syncing - close to abort!") );
1006 1006
1007 // ************** setting up filter ************* 1007 // ************** setting up filter *************
1008 CalFilter *filterIN = 0; 1008 CalFilter *filterIN = 0;
1009 CalFilter *filterOUT = 0; 1009 CalFilter *filterOUT = 0;
1010 CalFilter *filter = mFilters.first(); 1010 CalFilter *filter = mFilters.first();
1011 while(filter) { 1011 while(filter) {
1012 if ( filter->name() == mSyncManager->mFilterInCal ) 1012 if ( filter->name() == mSyncManager->mFilterInCal )
1013 filterIN = filter; 1013 filterIN = filter;
1014 if ( filter->name() == mSyncManager->mFilterOutCal ) 1014 if ( filter->name() == mSyncManager->mFilterOutCal )
1015 filterOUT = filter; 1015 filterOUT = filter;
1016 filter = mFilters.next(); 1016 filter = mFilters.next();
1017 } 1017 }
1018 int w = 300; 1018 int w = 300;
1019 if ( QApplication::desktop()->width() < 320 ) 1019 if ( QApplication::desktop()->width() < 320 )
1020 w = 220; 1020 w = 220;
1021 int h = bar.sizeHint().height() ; 1021 int h = bar.sizeHint().height() ;
1022 int dw = QApplication::desktop()->width(); 1022 int dw = QApplication::desktop()->width();
1023 int dh = QApplication::desktop()->height(); 1023 int dh = QApplication::desktop()->height();
1024 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1024 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1025 bar.show(); 1025 bar.show();
1026 int modulo = (er.count()/10)+1; 1026 int modulo = (er.count()/10)+1;
1027 int incCounter = 0; 1027 int incCounter = 0;
1028 while ( inR ) { 1028 while ( inR ) {
1029 if ( ! bar.isVisible() ) 1029 if ( ! bar.isVisible() )
1030 return false; 1030 return false;
1031 if ( incCounter % modulo == 0 ) 1031 if ( incCounter % modulo == 0 )
1032 bar.setProgress( incCounter ); 1032 bar.setProgress( incCounter );
1033 ++incCounter; 1033 ++incCounter;
1034 uid = inR->uid(); 1034 uid = inR->uid();
1035 bool skipIncidence = false; 1035 bool skipIncidence = false;
1036 if ( uid.left(15) == QString("last-syncEvent-") ) 1036 if ( uid.left(15) == QString("last-syncEvent-") )
1037 skipIncidence = true; 1037 skipIncidence = true;
1038 QString idS; 1038 QString idS;
1039 qApp->processEvents(); 1039 qApp->processEvents();
1040 if ( !skipIncidence ) { 1040 if ( !skipIncidence ) {
1041 inL = local->incidence( uid ); 1041 inL = local->incidence( uid );
1042 if ( inL ) { // maybe conflict - same uid in both calendars 1042 if ( inL ) { // maybe conflict - same uid in both calendars
1043 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { 1043 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
1044 //qDebug("take %d %s ", take, inL->summary().latin1()); 1044 //qDebug("take %d %s ", take, inL->summary().latin1());
1045 if ( take == 3 ) 1045 if ( take == 3 )
1046 return false; 1046 return false;
1047 if ( take == 1 ) {// take local ********************** 1047 if ( take == 1 ) {// take local **********************
1048 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 1048 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
1049 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1049 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1050 else 1050 else
1051 idS = inR->IDStr(); 1051 idS = inR->IDStr();
1052 remote->deleteIncidence( inR ); 1052 remote->deleteIncidence( inR );
1053 inR = inL->clone(); 1053 inR = inL->clone();
1054 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1054 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1055 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL ) 1055 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
1056 inR->setIDStr( idS ); 1056 inR->setIDStr( idS );
1057 remote->addIncidence( inR ); 1057 remote->addIncidence( inR );
1058 if ( mSyncManager->syncWithDesktop() ) 1058 if ( mSyncManager->syncWithDesktop() )
1059 inR->setPilotId( 2 ); 1059 inR->setPilotId( 2 );
1060 ++changedRemote; 1060 ++changedRemote;
1061 } else {// take remote ********************** 1061 } else {// take remote **********************
1062 idS = inL->IDStr(); 1062 idS = inL->IDStr();
1063 int pid = inL->pilotId(); 1063 int pid = inL->pilotId();
1064 local->deleteIncidence( inL ); 1064 local->deleteIncidence( inL );
1065 inL = inR->clone(); 1065 inL = inR->clone();
1066 if ( mSyncManager->syncWithDesktop() ) 1066 if ( mSyncManager->syncWithDesktop() )
1067 inL->setPilotId( pid ); 1067 inL->setPilotId( pid );
1068 inL->setIDStr( idS ); 1068 inL->setIDStr( idS );
1069 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1069 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1070 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1070 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1071 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1071 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1072 } 1072 }
1073 local->addIncidence( inL ); 1073 local->addIncidence( inL );
1074 ++changedLocal; 1074 ++changedLocal;
1075 } 1075 }
1076 } 1076 }
1077 } else { // no conflict ********** add or delete remote 1077 } else { // no conflict ********** add or delete remote
1078 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ 1078 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){
1079 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1079 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1080 QString des = eventLSync->description(); 1080 QString des = eventLSync->description();
1081 QString pref = "e"; 1081 QString pref = "e";
1082 if ( inR->type() == "Todo" ) 1082 if ( inR->type() == "Todo" )
1083 pref = "t"; 1083 pref = "t";
1084 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 1084 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
1085 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1085 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1086 //remote->deleteIncidence( inR ); 1086 //remote->deleteIncidence( inR );
1087 ++deletedEventR; 1087 ++deletedEventR;
1088 } else { 1088 } else {
1089 inR->setLastModified( modifiedCalendar ); 1089 inR->setLastModified( modifiedCalendar );
1090 inL = inR->clone(); 1090 inL = inR->clone();
1091 inL->setIDStr( ":" ); 1091 inL->setIDStr( ":" );
1092 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1092 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1093 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1093 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1094 local->addIncidence( inL ); 1094 local->addIncidence( inL );
1095 ++addedEvent; 1095 ++addedEvent;
1096 1096
1097 } 1097 }
1098 } else { 1098 } else {
1099 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { 1099 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
1100 inR->setLastModified( modifiedCalendar ); 1100 inR->setLastModified( modifiedCalendar );
1101 inL = inR->clone(); 1101 inL = inR->clone();
1102 inL->setIDStr( ":" ); 1102 inL->setIDStr( ":" );
1103 local->addIncidence( inL ); 1103 local->addIncidence( inL );
1104 ++addedEvent; 1104 ++addedEvent;
1105 1105
1106 } else { 1106 } else {
1107 checkExternSyncEvent(eventRSyncSharp, inR); 1107 checkExternSyncEvent(eventRSyncSharp, inR);
1108 remote->deleteIncidence( inR ); 1108 remote->deleteIncidence( inR );
1109 ++deletedEventR; 1109 ++deletedEventR;
1110 } 1110 }
1111 } 1111 }
1112 } else { 1112 } else {
1113 ++filteredIN; 1113 ++filteredIN;
1114 } 1114 }
1115 } 1115 }
1116 } 1116 }
1117 inR = er.next(); 1117 inR = er.next();
1118 } 1118 }
1119 QPtrList<Incidence> el = local->rawIncidences(); 1119 QPtrList<Incidence> el = local->rawIncidences();
1120 inL = el.first(); 1120 inL = el.first();
1121 modulo = (el.count()/10)+1; 1121 modulo = (el.count()/10)+1;
1122 bar.setCaption (i18n("Add / remove events") ); 1122 bar.setCaption (i18n("Add / remove events") );
1123 bar.setTotalSteps ( el.count() ) ; 1123 bar.setTotalSteps ( el.count() ) ;
1124 bar.show(); 1124 bar.show();
1125 incCounter = 0; 1125 incCounter = 0;
1126 1126
1127 while ( inL ) { 1127 while ( inL ) {
1128 1128
1129 qApp->processEvents(); 1129 qApp->processEvents();
1130 if ( ! bar.isVisible() ) 1130 if ( ! bar.isVisible() )
1131 return false; 1131 return false;
1132 if ( incCounter % modulo == 0 ) 1132 if ( incCounter % modulo == 0 )
1133 bar.setProgress( incCounter ); 1133 bar.setProgress( incCounter );
1134 ++incCounter; 1134 ++incCounter;
1135 uid = inL->uid(); 1135 uid = inL->uid();
1136 bool skipIncidence = false; 1136 bool skipIncidence = false;
1137 if ( uid.left(15) == QString("last-syncEvent-") ) 1137 if ( uid.left(15) == QString("last-syncEvent-") )
1138 skipIncidence = true; 1138 skipIncidence = true;
1139 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) 1139 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" )
1140 skipIncidence = true; 1140 skipIncidence = true;
1141 if ( !skipIncidence ) { 1141 if ( !skipIncidence ) {
1142 inR = remote->incidence( uid ); 1142 inR = remote->incidence( uid );
1143 if ( ! inR ) { 1143 if ( ! inR ) {
1144 if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ 1144 if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){
1145 // no conflict ********** add or delete local 1145 // no conflict ********** add or delete local
1146 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1146 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1147 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 1147 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
1148 checkExternSyncEvent(eventLSyncSharp, inL); 1148 checkExternSyncEvent(eventLSyncSharp, inL);
1149 local->deleteIncidence( inL ); 1149 local->deleteIncidence( inL );
1150 ++deletedEventL; 1150 ++deletedEventL;
1151 } else { 1151 } else {
1152 if ( ! mSyncManager->mWriteBackExistingOnly ) { 1152 if ( ! mSyncManager->mWriteBackExistingOnly ) {
1153 inL->removeID(mCurrentSyncDevice ); 1153 inL->removeID(mCurrentSyncDevice );
1154 ++addedEventR; 1154 ++addedEventR;
1155 //qDebug("remote added Incidence %s ", inL->summary().latin1()); 1155 //qDebug("remote added Incidence %s ", inL->summary().latin1());
1156 inL->setLastModified( modifiedCalendar ); 1156 inL->setLastModified( modifiedCalendar );
1157 inR = inL->clone(); 1157 inR = inL->clone();
1158 inR->setIDStr( ":" ); 1158 inR->setIDStr( ":" );
1159 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1159 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1160 remote->addIncidence( inR ); 1160 remote->addIncidence( inR );
1161 } 1161 }
1162 } 1162 }
1163 } else { 1163 } else {
1164 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { 1164 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
1165 checkExternSyncEvent(eventLSyncSharp, inL); 1165 checkExternSyncEvent(eventLSyncSharp, inL);
1166 local->deleteIncidence( inL ); 1166 local->deleteIncidence( inL );
1167 ++deletedEventL; 1167 ++deletedEventL;
1168 } else { 1168 } else {
1169 if ( ! mSyncManager->mWriteBackExistingOnly ) { 1169 if ( ! mSyncManager->mWriteBackExistingOnly ) {
1170 ++addedEventR; 1170 ++addedEventR;
1171 inL->setLastModified( modifiedCalendar ); 1171 inL->setLastModified( modifiedCalendar );
1172 inR = inL->clone(); 1172 inR = inL->clone();
1173 inR->setIDStr( ":" ); 1173 inR->setIDStr( ":" );
1174 remote->addIncidence( inR ); 1174 remote->addIncidence( inR );
1175 } 1175 }
1176 } 1176 }
1177 } 1177 }
1178 } else { 1178 } else {
1179 ++filteredOUT; 1179 ++filteredOUT;
1180 } 1180 }
1181 } 1181 }
1182 } 1182 }
1183 inL = el.next(); 1183 inL = el.next();
1184 } 1184 }
1185 int delFut = 0; 1185 int delFut = 0;
1186 int remRem = 0; 1186 int remRem = 0;
1187 if ( mSyncManager->mWriteBackInFuture ) { 1187 if ( mSyncManager->mWriteBackInFuture ) {
1188 er = remote->rawIncidences(); 1188 er = remote->rawIncidences();
1189 remRem = er.count(); 1189 remRem = er.count();
1190 inR = er.first(); 1190 inR = er.first();
1191 QDateTime dt; 1191 QDateTime dt;
1192 QDateTime cur = QDateTime::currentDateTime().addDays( -(mSyncManager->mWriteBackInPast * 7) ); 1192 QDateTime cur = QDateTime::currentDateTime().addDays( -(mSyncManager->mWriteBackInPast * 7) );
1193 QDateTime end = QDateTime::currentDateTime().addDays( (mSyncManager->mWriteBackInFuture ) *7 ); 1193 QDateTime end = QDateTime::currentDateTime().addDays( (mSyncManager->mWriteBackInFuture ) *7 );
1194 while ( inR ) { 1194 while ( inR ) {
1195 if ( inR->type() == "Todo" ) { 1195 if ( inR->type() == "Todo" ) {
1196 Todo * t = (Todo*)inR; 1196 Todo * t = (Todo*)inR;
1197 if ( t->hasDueDate() ) 1197 if ( t->hasDueDate() )
1198 dt = t->dtDue(); 1198 dt = t->dtDue();
1199 else 1199 else
1200 dt = cur.addSecs( 62 ); 1200 dt = cur.addSecs( 62 );
1201 } 1201 }
1202 else if (inR->type() == "Event" ) { 1202 else if (inR->type() == "Event" ) {
1203 bool ok; 1203 bool ok;
1204 dt = inR->getNextOccurence( cur, &ok ); 1204 dt = inR->getNextOccurence( cur, &ok );
1205 if ( !ok ) 1205 if ( !ok )
1206 dt = cur.addSecs( -62 ); 1206 dt = cur.addSecs( -62 );
1207 } 1207 }
1208 else 1208 else
1209 dt = inR->dtStart(); 1209 dt = inR->dtStart();
1210 if ( dt < cur || dt > end ) { 1210 if ( dt < cur || dt > end ) {
1211 remote->deleteIncidence( inR ); 1211 remote->deleteIncidence( inR );
1212 ++delFut; 1212 ++delFut;
1213 } 1213 }
1214 inR = er.next(); 1214 inR = er.next();
1215 } 1215 }
1216 } 1216 }
1217 bar.hide(); 1217 bar.hide();
1218 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); 1218 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
1219 eventLSync->setReadOnly( false ); 1219 eventLSync->setReadOnly( false );
1220 eventLSync->setDtStart( mLastCalendarSync ); 1220 eventLSync->setDtStart( mLastCalendarSync );
1221 eventRSync->setDtStart( mLastCalendarSync ); 1221 eventRSync->setDtStart( mLastCalendarSync );
1222 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1222 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1223 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1223 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1224 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1224 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1225 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1225 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1226 eventLSync->setReadOnly( true ); 1226 eventLSync->setReadOnly( true );
1227 qDebug("********** %d %d ", mGlobalSyncMode == SYNC_MODE_NORMAL, mSyncManager->syncWithDesktop() ); 1227 qDebug("KO: Normal sync: %d ",mGlobalSyncMode == SYNC_MODE_NORMAL );
1228 if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal... 1228 if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal...
1229 remote->addEvent( eventRSync ); 1229 remote->addEvent( eventRSync );
1230 else 1230 else
1231 delete eventRSync; 1231 delete eventRSync;
1232 qDebug("KO: Sync with desktop %d ",mSyncManager->syncWithDesktop() );
1232 QString mes; 1233 QString mes;
1233 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR, filteredIN, filteredOUT ); 1234 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR, filteredIN, filteredOUT );
1234 QString delmess; 1235 QString delmess;
1235 if ( delFut ) { 1236 if ( delFut ) {
1236 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are more\nthan %d weeks in the past or\nmore than %d weeks in the future.\nAfter skipping, remote has\n%d calendar/todo items."), delFut,mSyncManager->mWriteBackInPast,mSyncManager->mWriteBackInFuture, remRem-delFut); 1237 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are more\nthan %d weeks in the past or\nmore than %d weeks in the future.\nAfter skipping, remote has\n%d calendar/todo items."), delFut,mSyncManager->mWriteBackInPast,mSyncManager->mWriteBackInFuture, remRem-delFut);
1237 mes += delmess; 1238 mes += delmess;
1238 } 1239 }
1239 mes = i18n("Local calendar changed!\n") +mes; 1240 mes = i18n("Local calendar changed!\n") +mes;
1240 mCalendar->checkAlarmForIncidence( 0, true ); 1241 mCalendar->checkAlarmForIncidence( 0, true );
1241 qDebug( mes ); 1242 qDebug( mes );
1242 if ( mSyncManager->mShowSyncSummary ) { 1243 if ( mSyncManager->mShowSyncSummary ) {
1243 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes, 1244 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes,
1244 i18n("KO/Pi Synchronization"),i18n("Write back"))) { 1245 i18n("KO/Pi Synchronization"),i18n("Write back"))) {
1245 qDebug("cancelled "); 1246 qDebug("KO: WB cancelled ");
1246 return false; 1247 return false;
1247 } 1248 }
1248 } 1249 }
1249 return syncOK; 1250 return syncOK;
1250} 1251}
1251 1252
1252void CalendarView::setSyncDevice( QString s ) 1253void CalendarView::setSyncDevice( QString s )
1253{ 1254{
1254 mCurrentSyncDevice= s; 1255 mCurrentSyncDevice= s;
1255} 1256}
1256void CalendarView::setSyncName( QString s ) 1257void CalendarView::setSyncName( QString s )
1257{ 1258{
1258 mCurrentSyncName= s; 1259 mCurrentSyncName= s;
1259} 1260}
1260bool CalendarView::syncCalendar(QString filename, int mode) 1261bool CalendarView::syncCalendar(QString filename, int mode)
1261{ 1262{
1262 //qDebug("syncCalendar %s ", filename.latin1()); 1263 //qDebug("syncCalendar %s ", filename.latin1());
1263 mGlobalSyncMode = SYNC_MODE_NORMAL; 1264 mGlobalSyncMode = SYNC_MODE_NORMAL;
1264 CalendarLocal* calendar = new CalendarLocal(); 1265 CalendarLocal* calendar = new CalendarLocal();
1265 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 1266 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
1266 FileStorage* storage = new FileStorage( calendar ); 1267 FileStorage* storage = new FileStorage( calendar );
1267 bool syncOK = false; 1268 bool syncOK = false;
1268 storage->setFileName( filename ); 1269 storage->setFileName( filename );
1269 // qDebug("loading ... "); 1270 // qDebug("loading ... ");
1270 if ( storage->load() ) { 1271 if ( storage->load() ) {
1271 getEventViewerDialog()->setSyncMode( true ); 1272 getEventViewerDialog()->setSyncMode( true );
1272 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1273 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1273 getEventViewerDialog()->setSyncMode( false ); 1274 getEventViewerDialog()->setSyncMode( false );
1274 if ( syncOK ) { 1275 if ( syncOK ) {
1275 if ( mSyncManager->mWriteBackFile ) 1276 if ( mSyncManager->mWriteBackFile )
1276 { 1277 {
1277 storage->setSaveFormat( new ICalFormat() ); 1278 storage->setSaveFormat( new ICalFormat() );
1278 storage->save(); 1279 storage->save();
1279 } 1280 }
1280 } 1281 }
1281 setModified( true ); 1282 setModified( true );
1282 } 1283 }
1283 delete storage; 1284 delete storage;
1284 delete calendar; 1285 delete calendar;
1285 if ( syncOK ) 1286 if ( syncOK )
1286 updateView(); 1287 updateView();
1287 return syncOK; 1288 return syncOK;
1288} 1289}
1289 1290
1290void CalendarView::syncExternal( int mode ) 1291void CalendarView::syncExternal( int mode )
1291{ 1292{
1292 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1293 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1293 1294
1294 qApp->processEvents(); 1295 qApp->processEvents();
1295 CalendarLocal* calendar = new CalendarLocal(); 1296 CalendarLocal* calendar = new CalendarLocal();
1296 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 1297 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
1297 bool syncOK = false; 1298 bool syncOK = false;
1298 bool loadSuccess = false; 1299 bool loadSuccess = false;
1299 PhoneFormat* phoneFormat = 0; 1300 PhoneFormat* phoneFormat = 0;
1300 emit tempDisableBR(true); 1301 emit tempDisableBR(true);
1301#ifndef DESKTOP_VERSION 1302#ifndef DESKTOP_VERSION
1302 SharpFormat* sharpFormat = 0; 1303 SharpFormat* sharpFormat = 0;
1303 if ( mode == 0 ) { // sharp 1304 if ( mode == 0 ) { // sharp
1304 sharpFormat = new SharpFormat () ; 1305 sharpFormat = new SharpFormat () ;
1305 loadSuccess = sharpFormat->load( calendar, mCalendar ); 1306 loadSuccess = sharpFormat->load( calendar, mCalendar );
1306 1307
1307 } else 1308 } else
1308#endif 1309#endif
1309 if ( mode == 1 ) { // phone 1310 if ( mode == 1 ) { // phone
1310 phoneFormat = new PhoneFormat (mCurrentSyncDevice, 1311 phoneFormat = new PhoneFormat (mCurrentSyncDevice,
1311 mSyncManager->mPhoneDevice, 1312 mSyncManager->mPhoneDevice,
1312 mSyncManager->mPhoneConnection, 1313 mSyncManager->mPhoneConnection,
1313 mSyncManager->mPhoneModel); 1314 mSyncManager->mPhoneModel);
1314 loadSuccess = phoneFormat->load( calendar,mCalendar); 1315 loadSuccess = phoneFormat->load( calendar,mCalendar);
1315 1316
1316 } else { 1317 } else {
1317 emit tempDisableBR(false); 1318 emit tempDisableBR(false);
1318 return; 1319 return;
1319 } 1320 }
1320 if ( loadSuccess ) { 1321 if ( loadSuccess ) {
1321 getEventViewerDialog()->setSyncMode( true ); 1322 getEventViewerDialog()->setSyncMode( true );
1322 syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs ); 1323 syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs );
1323 getEventViewerDialog()->setSyncMode( false ); 1324 getEventViewerDialog()->setSyncMode( false );
1324 qApp->processEvents(); 1325 qApp->processEvents();
1325 if ( syncOK ) { 1326 if ( syncOK ) {
1326 if ( mSyncManager->mWriteBackFile ) 1327 if ( mSyncManager->mWriteBackFile )
1327 { 1328 {
1328 QPtrList<Incidence> iL = mCalendar->rawIncidences(); 1329 QPtrList<Incidence> iL = mCalendar->rawIncidences();
1329 Incidence* inc = iL.first(); 1330 Incidence* inc = iL.first();
1330 if ( phoneFormat ) { 1331 if ( phoneFormat ) {
1331 while ( inc ) { 1332 while ( inc ) {
1332 inc->removeID(mCurrentSyncDevice); 1333 inc->removeID(mCurrentSyncDevice);
1333 inc = iL.next(); 1334 inc = iL.next();
1334 } 1335 }
1335 } 1336 }
1336#ifndef DESKTOP_VERSION 1337#ifndef DESKTOP_VERSION
1337 if ( sharpFormat ) 1338 if ( sharpFormat )
1338 sharpFormat->save(calendar); 1339 sharpFormat->save(calendar);
1339#endif 1340#endif
1340 if ( phoneFormat ) 1341 if ( phoneFormat )
1341 phoneFormat->save(calendar); 1342 phoneFormat->save(calendar);
1342 iL = calendar->rawIncidences(); 1343 iL = calendar->rawIncidences();
1343 inc = iL.first(); 1344 inc = iL.first();
1344 Incidence* loc; 1345 Incidence* loc;
1345 while ( inc ) { 1346 while ( inc ) {
1346 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { 1347 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) {
1347 loc = mCalendar->incidence(inc->uid() ); 1348 loc = mCalendar->incidence(inc->uid() );
1348 if ( loc ) { 1349 if ( loc ) {
1349 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); 1350 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) );
1350 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) ); 1351 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) );
1351 } 1352 }
1352 } 1353 }
1353 inc = iL.next(); 1354 inc = iL.next();
1354 } 1355 }
1355 Incidence* lse = getLastSyncEvent(); 1356 Incidence* lse = getLastSyncEvent();
1356 if ( lse ) { 1357 if ( lse ) {
1357 lse->setReadOnly( false ); 1358 lse->setReadOnly( false );
1358 lse->setDescription( "" ); 1359 lse->setDescription( "" );
1359 lse->setReadOnly( true ); 1360 lse->setReadOnly( true );
1360 } 1361 }
1361 } 1362 }
1362 } else { 1363 } else {
1363 topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") ); 1364 topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") );
1364 } 1365 }
1365 setModified( true ); 1366 setModified( true );
1366 } else { 1367 } else {
1367 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ; 1368 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ;
1368 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"), 1369 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"),
1369 question, i18n("Ok")) ; 1370 question, i18n("Ok")) ;
1370 1371
1371 } 1372 }
1372 delete calendar; 1373 delete calendar;
1373 updateView(); 1374 updateView();
1374 emit tempDisableBR(false); 1375 emit tempDisableBR(false);
1375 return ;//syncOK; 1376 return ;//syncOK;
1376 1377
1377} 1378}
1378 1379
1379bool CalendarView::importBday() 1380bool CalendarView::importBday()
1380{ 1381{
1381#ifndef KORG_NOKABC 1382#ifndef KORG_NOKABC
1382 1383
1383#ifdef DESKTOP_VERSION 1384#ifdef DESKTOP_VERSION
1384 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 1385 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
1385 KABC::AddressBook::Iterator it; 1386 KABC::AddressBook::Iterator it;
1386 int count = 0; 1387 int count = 0;
1387 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1388 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1388 ++count; 1389 ++count;
1389 } 1390 }
1390 QProgressBar bar(count,0 ); 1391 QProgressBar bar(count,0 );
1391 int w = 300; 1392 int w = 300;
1392 if ( QApplication::desktop()->width() < 320 ) 1393 if ( QApplication::desktop()->width() < 320 )
1393 w = 220; 1394 w = 220;
1394 int h = bar.sizeHint().height() ; 1395 int h = bar.sizeHint().height() ;
1395 int dw = QApplication::desktop()->width(); 1396 int dw = QApplication::desktop()->width();
1396 int dh = QApplication::desktop()->height(); 1397 int dh = QApplication::desktop()->height();
1397 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1398 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1398 bar.show(); 1399 bar.show();
1399 bar.setCaption (i18n("Reading addressbook - close to abort!") ); 1400 bar.setCaption (i18n("Reading addressbook - close to abort!") );
1400 qApp->processEvents(); 1401 qApp->processEvents();
1401 count = 0; 1402 count = 0;
1402 int addCount = 0; 1403 int addCount = 0;
1403 KCal::Attendee* a = 0; 1404 KCal::Attendee* a = 0;
1404 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1405 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1405 if ( ! bar.isVisible() ) 1406 if ( ! bar.isVisible() )
1406 return false; 1407 return false;
1407 bar.setProgress( count++ ); 1408 bar.setProgress( count++ );
1408 qApp->processEvents(); 1409 qApp->processEvents();
1409 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() ); 1410 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() );
1410 if ( (*it).birthday().date().isValid() ){ 1411 if ( (*it).birthday().date().isValid() ){
1411 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1412 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1412 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) ) 1413 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) )
1413 ++addCount; 1414 ++addCount;
1414 } 1415 }
1415 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); 1416 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d");
1416 if ( anni.isValid() ){ 1417 if ( anni.isValid() ){
1417 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1418 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1418 if ( addAnniversary( anni, (*it).assembledName(), a, false ) ) 1419 if ( addAnniversary( anni, (*it).assembledName(), a, false ) )
1419 ++addCount; 1420 ++addCount;
1420 } 1421 }
1421 } 1422 }
1422 updateView(); 1423 updateView();
1423 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); 1424 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!"));
1424#else //DESKTOP_VERSION 1425#else //DESKTOP_VERSION
1425 1426
1426 ExternalAppHandler::instance()->requestBirthdayListFromKAPI("QPE/Application/kopi", this->name() /* name is here the unique uid*/); 1427 ExternalAppHandler::instance()->requestBirthdayListFromKAPI("QPE/Application/kopi", this->name() /* name is here the unique uid*/);
1427 // the result should now arrive through method insertBirthdays 1428 // the result should now arrive through method insertBirthdays
1428 1429
1429#endif //DESKTOP_VERSION 1430#endif //DESKTOP_VERSION
1430 1431
1431#endif //KORG_NOKABC 1432#endif //KORG_NOKABC
1432 1433
1433 1434
1434 return true; 1435 return true;
1435} 1436}
1436 1437
1437// This method will be called from Ka/Pi as a response to requestBirthdayListFromKAPI 1438// This method will be called from Ka/Pi as a response to requestBirthdayListFromKAPI
1438void CalendarView::insertBirthdays(const QString& uid, const QStringList& birthdayList, 1439void CalendarView::insertBirthdays(const QString& uid, const QStringList& birthdayList,
1439 const QStringList& anniversaryList, const QStringList& realNameList, 1440 const QStringList& anniversaryList, const QStringList& realNameList,
1440 const QStringList& emailList, const QStringList& assembledNameList, 1441 const QStringList& emailList, const QStringList& assembledNameList,
1441 const QStringList& uidList) 1442 const QStringList& uidList)
1442{ 1443{
1443 qDebug("CalendarView::insertBirthdays"); 1444 //qDebug("KO::CalendarView::insertBirthdays");
1444 if (uid == this->name()) 1445 if (uid == this->name())
1445 { 1446 {
1446 int count = birthdayList.count(); 1447 int count = birthdayList.count();
1447 int addCount = 0; 1448 int addCount = 0;
1448 KCal::Attendee* a = 0; 1449 KCal::Attendee* a = 0;
1449 1450
1450 qDebug("CalView 1 %i", count); 1451 //qDebug("CalView 1 %i", count);
1451 1452
1452 QProgressBar bar(count,0 ); 1453 QProgressBar bar(count,0 );
1453 int w = 300; 1454 int w = 300;
1454 if ( QApplication::desktop()->width() < 320 ) 1455 if ( QApplication::desktop()->width() < 320 )
1455 w = 220; 1456 w = 220;
1456 int h = bar.sizeHint().height() ; 1457 int h = bar.sizeHint().height() ;
1457 int dw = QApplication::desktop()->width(); 1458 int dw = QApplication::desktop()->width();
1458 int dh = QApplication::desktop()->height(); 1459 int dh = QApplication::desktop()->height();
1459 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1460 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1460 bar.show(); 1461 bar.show();
1461 bar.setCaption (i18n("inserting birthdays - close to abort!") ); 1462 bar.setCaption (i18n("inserting birthdays - close to abort!") );
1462 qApp->processEvents(); 1463 qApp->processEvents();
1463 1464
1464 QDate birthday; 1465 QDate birthday;
1465 QDate anniversary; 1466 QDate anniversary;
1466 QString realName; 1467 QString realName;
1467 QString email; 1468 QString email;
1468 QString assembledName; 1469 QString assembledName;
1469 QString uid; 1470 QString uid;
1470 bool ok = true; 1471 bool ok = true;
1471 for ( int i = 0; i < count; i++) 1472 for ( int i = 0; i < count; i++)
1472 { 1473 {
1473 if ( ! bar.isVisible() ) 1474 if ( ! bar.isVisible() )
1474 return; 1475 return;
1475 bar.setProgress( i ); 1476 bar.setProgress( i );
1476 qApp->processEvents(); 1477 qApp->processEvents();
1477 1478
1478 birthday = KGlobal::locale()->readDate(birthdayList[i], KLocale::ISODate, &ok); 1479 birthday = KGlobal::locale()->readDate(birthdayList[i], KLocale::ISODate, &ok);
1479 if (!ok) { 1480 if (!ok) {
1480 ;//qDebug("CalendarView::insertBirthdays found invalid birthday: %s",birthdayList[i].latin1()); 1481 ;//qDebug("CalendarView::insertBirthdays found invalid birthday: %s",birthdayList[i].latin1());
1481 } 1482 }
1482 1483
1483 anniversary = KGlobal::locale()->readDate(anniversaryList[i], KLocale::ISODate, &ok); 1484 anniversary = KGlobal::locale()->readDate(anniversaryList[i], KLocale::ISODate, &ok);
1484 if (!ok) { 1485 if (!ok) {
1485 ;//qDebug("CalendarView::insertBirthdays found invalid anniversary: %s",anniversaryList[i].latin1()); 1486 ;//qDebug("CalendarView::insertBirthdays found invalid anniversary: %s",anniversaryList[i].latin1());
1486 } 1487 }
1487 realName = realNameList[i]; 1488 realName = realNameList[i];
1488 email = emailList[i]; 1489 email = emailList[i];
1489 assembledName = assembledNameList[i]; 1490 assembledName = assembledNameList[i];
1490 uid = uidList[i]; 1491 uid = uidList[i];
1491 //qDebug("insert birthday in KO/Pi: %s,%s,%s,%s: %s, %s", realName.latin1(), email.latin1(), assembledName.latin1(), uid.latin1(), birthdayList[i].latin1(), anniversaryList[i].latin1() ); 1492 //qDebug("insert birthday in KO/Pi: %s,%s,%s,%s: %s, %s", realName.latin1(), email.latin1(), assembledName.latin1(), uid.latin1(), birthdayList[i].latin1(), anniversaryList[i].latin1() );
1492 1493
1493 if ( birthday.isValid() ){ 1494 if ( birthday.isValid() ){
1494 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction, 1495 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction,
1495 KCal::Attendee::ReqParticipant,uid) ; 1496 KCal::Attendee::ReqParticipant,uid) ;
1496 if ( addAnniversary( birthday, assembledName, a, true ) ) 1497 if ( addAnniversary( birthday, assembledName, a, true ) )
1497 ++addCount; 1498 ++addCount;
1498 } 1499 }
1499 1500
1500 if ( anniversary.isValid() ){ 1501 if ( anniversary.isValid() ){
1501 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction, 1502 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction,
1502 KCal::Attendee::ReqParticipant,uid) ; 1503 KCal::Attendee::ReqParticipant,uid) ;
1503 if ( addAnniversary( anniversary, assembledName, a, false ) ) 1504 if ( addAnniversary( anniversary, assembledName, a, false ) )
1504 ++addCount; 1505 ++addCount;
1505 } 1506 }
1506 } 1507 }
1507 1508
1508 updateView(); 1509 updateView();
1509 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); 1510 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!"));
1510 1511
1511 } 1512 }
1512 1513
1513} 1514}
1514 1515
1515 1516
1516 1517
1517bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday) 1518bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday)
1518{ 1519{
1519 //qDebug("addAnni "); 1520 //qDebug("addAnni ");
1520 Event * ev = new Event(); 1521 Event * ev = new Event();
1521 if ( a ) { 1522 if ( a ) {
1522 ev->addAttendee( a ); 1523 ev->addAttendee( a );
1523 } 1524 }
1524 QString kind; 1525 QString kind;
1525 if ( birthday ) 1526 if ( birthday )
1526 kind = i18n( "Birthday" ); 1527 kind = i18n( "Birthday" );
1527 else 1528 else
1528 kind = i18n( "Anniversary" ); 1529 kind = i18n( "Anniversary" );
1529 ev->setSummary( name + " - " + kind ); 1530 ev->setSummary( name + " - " + kind );
1530 ev->setOrganizer(a->email()); 1531 ev->setOrganizer(a->email());
1531 ev->setCategories( kind ); 1532 ev->setCategories( kind );
1532 ev->setDtStart( QDateTime(date) ); 1533 ev->setDtStart( QDateTime(date) );
1533 ev->setDtEnd( QDateTime(date) ); 1534 ev->setDtEnd( QDateTime(date) );
1534 ev->setFloats( true ); 1535 ev->setFloats( true );
1535 Recurrence * rec = ev->recurrence(); 1536 Recurrence * rec = ev->recurrence();
1536 rec->setYearly(Recurrence::rYearlyMonth,1,-1); 1537 rec->setYearly(Recurrence::rYearlyMonth,1,-1);
1537 rec->addYearlyNum( date.month() ); 1538 rec->addYearlyNum( date.month() );
1538 if ( !mCalendar->addAnniversaryNoDup( ev ) ) { 1539 if ( !mCalendar->addAnniversaryNoDup( ev ) ) {
1539 delete ev; 1540 delete ev;
1540 return false; 1541 return false;
1541 } 1542 }
1542 return true; 1543 return true;
1543 1544
1544} 1545}
1545bool CalendarView::importQtopia( const QString &categories, 1546bool CalendarView::importQtopia( const QString &categories,
1546 const QString &datebook, 1547 const QString &datebook,
1547 const QString &todolist ) 1548 const QString &todolist )
1548{ 1549{
1549 1550
1550 QtopiaFormat qtopiaFormat; 1551 QtopiaFormat qtopiaFormat;
1551 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1552 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1552 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories ); 1553 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories );
1553 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook ); 1554 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook );
1554 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist ); 1555 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist );
1555 1556
1556 updateView(); 1557 updateView();
1557 return true; 1558 return true;
1558 1559
1559#if 0 1560#if 0
1560 mGlobalSyncMode = SYNC_MODE_QTOPIA; 1561 mGlobalSyncMode = SYNC_MODE_QTOPIA;
1561 mCurrentSyncDevice = "qtopia-XML"; 1562 mCurrentSyncDevice = "qtopia-XML";
1562 if ( mSyncManager->mAskForPreferences ) 1563 if ( mSyncManager->mAskForPreferences )
1563 edit_sync_options(); 1564 edit_sync_options();
1564 qApp->processEvents(); 1565 qApp->processEvents();
1565 CalendarLocal* calendar = new CalendarLocal(); 1566 CalendarLocal* calendar = new CalendarLocal();
1566 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 1567 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
1567 bool syncOK = false; 1568 bool syncOK = false;
1568 QtopiaFormat qtopiaFormat; 1569 QtopiaFormat qtopiaFormat;
1569 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1570 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1570 bool loadOk = true; 1571 bool loadOk = true;
1571 if ( !categories.isEmpty() ) 1572 if ( !categories.isEmpty() )
1572 loadOk = qtopiaFormat.load( calendar, categories ); 1573 loadOk = qtopiaFormat.load( calendar, categories );
1573 if ( loadOk && !datebook.isEmpty() ) 1574 if ( loadOk && !datebook.isEmpty() )
1574 loadOk = qtopiaFormat.load( calendar, datebook ); 1575 loadOk = qtopiaFormat.load( calendar, datebook );
1575 if ( loadOk && !todolist.isEmpty() ) 1576 if ( loadOk && !todolist.isEmpty() )
1576 loadOk = qtopiaFormat.load( calendar, todolist ); 1577 loadOk = qtopiaFormat.load( calendar, todolist );
1577 1578
1578 if ( loadOk ) { 1579 if ( loadOk ) {
1579 getEventViewerDialog()->setSyncMode( true ); 1580 getEventViewerDialog()->setSyncMode( true );
1580 syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs ); 1581 syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs );
1581 getEventViewerDialog()->setSyncMode( false ); 1582 getEventViewerDialog()->setSyncMode( false );
1582 qApp->processEvents(); 1583 qApp->processEvents();
1583 if ( syncOK ) { 1584 if ( syncOK ) {
1584 if ( mSyncManager->mWriteBackFile ) 1585 if ( mSyncManager->mWriteBackFile )
1585 { 1586 {
1586 // write back XML file 1587 // write back XML file
1587 1588
1588 } 1589 }
1589 setModified( true ); 1590 setModified( true );
1590 } 1591 }
1591 } else { 1592 } else {
1592 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ; 1593 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ;
1593 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"), 1594 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"),
1594 question, i18n("Ok")) ; 1595 question, i18n("Ok")) ;
1595 } 1596 }
1596 delete calendar; 1597 delete calendar;
1597 updateView(); 1598 updateView();
1598 return syncOK; 1599 return syncOK;
1599 1600
1600 1601
1601#endif 1602#endif
1602 1603
1603} 1604}
1604 1605
1605void CalendarView::setSyncEventsReadOnly() 1606void CalendarView::setSyncEventsReadOnly()
1606{ 1607{
1607 Event * ev; 1608 Event * ev;
1608 QPtrList<Event> eL = mCalendar->rawEvents(); 1609 QPtrList<Event> eL = mCalendar->rawEvents();
1609 ev = eL.first(); 1610 ev = eL.first();
1610 while ( ev ) { 1611 while ( ev ) {
1611 if ( ev->uid().left(15) == QString("last-syncEvent-") ) 1612 if ( ev->uid().left(15) == QString("last-syncEvent-") )
1612 ev->setReadOnly( true ); 1613 ev->setReadOnly( true );
1613 ev = eL.next(); 1614 ev = eL.next();
1614 } 1615 }
1615} 1616}
1616bool CalendarView::openCalendar(QString filename, bool merge) 1617bool CalendarView::openCalendar(QString filename, bool merge)
1617{ 1618{
1618 1619
1619 if (filename.isEmpty()) { 1620 if (filename.isEmpty()) {
1620 return false; 1621 return false;
1621 } 1622 }
1622 1623
1623 if (!QFile::exists(filename)) { 1624 if (!QFile::exists(filename)) {
1624 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); 1625 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename));
1625 return false; 1626 return false;
1626 } 1627 }
1627 1628
1628 globalFlagBlockAgenda = 1; 1629 globalFlagBlockAgenda = 1;
1629 if (!merge) mCalendar->close(); 1630 if (!merge) mCalendar->close();
1630 1631
1631 mStorage->setFileName( filename ); 1632 mStorage->setFileName( filename );
1632 1633
1633 if ( mStorage->load() ) { 1634 if ( mStorage->load() ) {
1634 if ( merge ) ;//setModified( true ); 1635 if ( merge ) ;//setModified( true );
1635 else { 1636 else {
1636 //setModified( true ); 1637 //setModified( true );
1637 mViewManager->setDocumentId( filename ); 1638 mViewManager->setDocumentId( filename );
1638 mDialogManager->setDocumentId( filename ); 1639 mDialogManager->setDocumentId( filename );
1639 mTodoList->setDocumentId( filename ); 1640 mTodoList->setDocumentId( filename );
1640 } 1641 }
1641 globalFlagBlockAgenda = 2; 1642 globalFlagBlockAgenda = 2;
1642 // if ( getLastSyncEvent() ) 1643 // if ( getLastSyncEvent() )
1643 // getLastSyncEvent()->setReadOnly( true ); 1644 // getLastSyncEvent()->setReadOnly( true );
1644 mCalendar->reInitAlarmSettings(); 1645 mCalendar->reInitAlarmSettings();
1645 setSyncEventsReadOnly(); 1646 setSyncEventsReadOnly();
1646 updateUnmanagedViews(); 1647 updateUnmanagedViews();
1647 updateView(); 1648 updateView();
1648 if ( filename != MainWindow::defaultFileName() ) { 1649 if ( filename != MainWindow::defaultFileName() ) {
1649 saveCalendar( MainWindow::defaultFileName() ); 1650 saveCalendar( MainWindow::defaultFileName() );
1650 } else { 1651 } else {
1651 QFileInfo finf ( MainWindow::defaultFileName()); 1652 QFileInfo finf ( MainWindow::defaultFileName());
1652 if ( finf.exists() ) { 1653 if ( finf.exists() ) {
1653 setLoadedFileVersion( finf.lastModified () ); 1654 setLoadedFileVersion( finf.lastModified () );
1654 } 1655 }
1655 } 1656 }
1656 return true; 1657 return true;
1657 } else { 1658 } else {
1658 // while failing to load, the calendar object could 1659 // while failing to load, the calendar object could
1659 // have become partially populated. Clear it out. 1660 // have become partially populated. Clear it out.
1660 if ( !merge ) { 1661 if ( !merge ) {
1661 mCalendar->close(); 1662 mCalendar->close();
1662 mViewManager->setDocumentId( filename ); 1663 mViewManager->setDocumentId( filename );
1663 mDialogManager->setDocumentId( filename ); 1664 mDialogManager->setDocumentId( filename );
1664 mTodoList->setDocumentId( filename ); 1665 mTodoList->setDocumentId( filename );
1665 } 1666 }
1666 1667
1667 //KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename)); 1668 //KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename));
1668 1669
1669 QTimer::singleShot ( 1, this, SLOT ( showOpenError() ) ); 1670 QTimer::singleShot ( 1, this, SLOT ( showOpenError() ) );
1670 globalFlagBlockAgenda = 2; 1671 globalFlagBlockAgenda = 2;
1671 mCalendar->reInitAlarmSettings(); 1672 mCalendar->reInitAlarmSettings();
1672 setSyncEventsReadOnly(); 1673 setSyncEventsReadOnly();
1673 updateUnmanagedViews(); 1674 updateUnmanagedViews();
1674 updateView(); 1675 updateView();
1675 } 1676 }
1676 return false; 1677 return false;
1677} 1678}
1678void CalendarView::showOpenError() 1679void CalendarView::showOpenError()
1679{ 1680{
1680 KMessageBox::error(this,i18n("Couldn't load calendar\n.")); 1681 KMessageBox::error(this,i18n("Couldn't load calendar\n."));
1681} 1682}
1682void CalendarView::setLoadedFileVersion(QDateTime dt) 1683void CalendarView::setLoadedFileVersion(QDateTime dt)
1683{ 1684{
1684 loadedFileVersion = dt; 1685 loadedFileVersion = dt;
1685} 1686}
1686bool CalendarView::checkFileChanged(QString fn) 1687bool CalendarView::checkFileChanged(QString fn)
1687{ 1688{
1688 QFileInfo finf ( fn ); 1689 QFileInfo finf ( fn );
1689 if ( !finf.exists() ) 1690 if ( !finf.exists() )
1690 return true; 1691 return true;
1691 QDateTime dt = finf.lastModified (); 1692 QDateTime dt = finf.lastModified ();
1692 if ( dt <= loadedFileVersion ) 1693 if ( dt <= loadedFileVersion )
1693 return false; 1694 return false;
1694 return true; 1695 return true;
1695 1696
1696} 1697}
1697void CalendarView::watchSavedFile() 1698void CalendarView::watchSavedFile()
1698{ 1699{
1699 QFileInfo finf ( MainWindow::defaultFileName()); 1700 QFileInfo finf ( MainWindow::defaultFileName());
1700 if ( !finf.exists() ) 1701 if ( !finf.exists() )
1701 return; 1702 return;
1702 QDateTime dt = finf.lastModified (); 1703 QDateTime dt = finf.lastModified ();
1703 if ( dt < loadedFileVersion ) { 1704 if ( dt < loadedFileVersion ) {
1704 //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1()); 1705 //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1());
1705 QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) ); 1706 QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) );
1706 return; 1707 return;
@@ -2256,528 +2257,528 @@ void CalendarView::slotSelectPickerDate( QDate d)
2256 mDateFrame->hide(); 2257 mDateFrame->hide();
2257 if ( mDatePickerMode == 1 ) { 2258 if ( mDatePickerMode == 1 ) {
2258 mNavigator->slotDaySelect( d ); 2259 mNavigator->slotDaySelect( d );
2259 } else if ( mDatePickerMode == 2 ) { 2260 } else if ( mDatePickerMode == 2 ) {
2260 if ( mMoveIncidence->type() == "Todo" ) { 2261 if ( mMoveIncidence->type() == "Todo" ) {
2261 Todo * to = (Todo *) mMoveIncidence; 2262 Todo * to = (Todo *) mMoveIncidence;
2262 QTime tim; 2263 QTime tim;
2263 if ( to->hasDueDate() ) 2264 if ( to->hasDueDate() )
2264 tim = to->dtDue().time(); 2265 tim = to->dtDue().time();
2265 else { 2266 else {
2266 tim = QTime ( 0,0,0 ); 2267 tim = QTime ( 0,0,0 );
2267 to->setFloats( true ); 2268 to->setFloats( true );
2268 to->setHasDueDate( true ); 2269 to->setHasDueDate( true );
2269 } 2270 }
2270 QDateTime dt ( d,tim ); 2271 QDateTime dt ( d,tim );
2271 to->setDtDue( dt ); 2272 to->setDtDue( dt );
2272 todoChanged( to ); 2273 todoChanged( to );
2273 } else { 2274 } else {
2274 if ( mMoveIncidence->doesRecur() ) { 2275 if ( mMoveIncidence->doesRecur() ) {
2275#if 0 2276#if 0
2276 // PENDING implement this 2277 // PENDING implement this
2277 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate ); 2278 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate );
2278 mCalendar()->addIncidence( newInc ); 2279 mCalendar()->addIncidence( newInc );
2279 if ( mMoveIncidence->type() == "Todo" ) 2280 if ( mMoveIncidence->type() == "Todo" )
2280 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED ); 2281 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED );
2281 else 2282 else
2282 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED); 2283 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED);
2283 mMoveIncidence = newInc; 2284 mMoveIncidence = newInc;
2284 2285
2285#endif 2286#endif
2286 } 2287 }
2287 QTime tim = mMoveIncidence->dtStart().time(); 2288 QTime tim = mMoveIncidence->dtStart().time();
2288 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); 2289 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd());
2289 QDateTime dt ( d,tim ); 2290 QDateTime dt ( d,tim );
2290 mMoveIncidence->setDtStart( dt ); 2291 mMoveIncidence->setDtStart( dt );
2291 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); 2292 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) );
2292 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); 2293 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED);
2293 } 2294 }
2294 2295
2295 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); 2296 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 );
2296 } 2297 }
2297} 2298}
2298 2299
2299void CalendarView::removeCategories() 2300void CalendarView::removeCategories()
2300{ 2301{
2301 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2302 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2302 QStringList catList = KOPrefs::instance()->mCustomCategories; 2303 QStringList catList = KOPrefs::instance()->mCustomCategories;
2303 QStringList catIncList; 2304 QStringList catIncList;
2304 QStringList newCatList; 2305 QStringList newCatList;
2305 Incidence* inc = incList.first(); 2306 Incidence* inc = incList.first();
2306 int i; 2307 int i;
2307 int count = 0; 2308 int count = 0;
2308 while ( inc ) { 2309 while ( inc ) {
2309 newCatList.clear(); 2310 newCatList.clear();
2310 catIncList = inc->categories() ; 2311 catIncList = inc->categories() ;
2311 for( i = 0; i< catIncList.count(); ++i ) { 2312 for( i = 0; i< catIncList.count(); ++i ) {
2312 if ( catList.contains (catIncList[i])) 2313 if ( catList.contains (catIncList[i]))
2313 newCatList.append( catIncList[i] ); 2314 newCatList.append( catIncList[i] );
2314 } 2315 }
2315 newCatList.sort(); 2316 newCatList.sort();
2316 inc->setCategories( newCatList.join(",") ); 2317 inc->setCategories( newCatList.join(",") );
2317 inc = incList.next(); 2318 inc = incList.next();
2318 } 2319 }
2319} 2320}
2320 2321
2321int CalendarView::addCategories() 2322int CalendarView::addCategories()
2322{ 2323{
2323 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2324 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2324 QStringList catList = KOPrefs::instance()->mCustomCategories; 2325 QStringList catList = KOPrefs::instance()->mCustomCategories;
2325 QStringList catIncList; 2326 QStringList catIncList;
2326 Incidence* inc = incList.first(); 2327 Incidence* inc = incList.first();
2327 int i; 2328 int i;
2328 int count = 0; 2329 int count = 0;
2329 while ( inc ) { 2330 while ( inc ) {
2330 catIncList = inc->categories() ; 2331 catIncList = inc->categories() ;
2331 for( i = 0; i< catIncList.count(); ++i ) { 2332 for( i = 0; i< catIncList.count(); ++i ) {
2332 if ( !catList.contains (catIncList[i])) { 2333 if ( !catList.contains (catIncList[i])) {
2333 catList.append( catIncList[i] ); 2334 catList.append( catIncList[i] );
2334 //qDebug("add cat %s ", catIncList[i].latin1()); 2335 //qDebug("add cat %s ", catIncList[i].latin1());
2335 ++count; 2336 ++count;
2336 } 2337 }
2337 } 2338 }
2338 inc = incList.next(); 2339 inc = incList.next();
2339 } 2340 }
2340 catList.sort(); 2341 catList.sort();
2341 KOPrefs::instance()->mCustomCategories = catList; 2342 KOPrefs::instance()->mCustomCategories = catList;
2342 return count; 2343 return count;
2343} 2344}
2344 2345
2345void CalendarView::manageCategories() 2346void CalendarView::manageCategories()
2346{ 2347{
2347 KOCatPrefs* cp = new KOCatPrefs(); 2348 KOCatPrefs* cp = new KOCatPrefs();
2348 cp->show(); 2349 cp->show();
2349 int w =cp->sizeHint().width() ; 2350 int w =cp->sizeHint().width() ;
2350 int h = cp->sizeHint().height() ; 2351 int h = cp->sizeHint().height() ;
2351 int dw = QApplication::desktop()->width(); 2352 int dw = QApplication::desktop()->width();
2352 int dh = QApplication::desktop()->height(); 2353 int dh = QApplication::desktop()->height();
2353 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2354 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2354 if ( !cp->exec() ) { 2355 if ( !cp->exec() ) {
2355 delete cp; 2356 delete cp;
2356 return; 2357 return;
2357 } 2358 }
2358 int count = 0; 2359 int count = 0;
2359 if ( cp->addCat() ) { 2360 if ( cp->addCat() ) {
2360 count = addCategories(); 2361 count = addCategories();
2361 if ( count ) { 2362 if ( count ) {
2362 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! ")); 2363 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! "));
2363 writeSettings(); 2364 writeSettings();
2364 } else 2365 } else
2365 topLevelWidget()->setCaption(QString::number( 0 )+ i18n(" Categories added to list! ")); 2366 topLevelWidget()->setCaption(QString::number( 0 )+ i18n(" Categories added to list! "));
2366 } else { 2367 } else {
2367 removeCategories(); 2368 removeCategories();
2368 updateView(); 2369 updateView();
2369 } 2370 }
2370 delete cp; 2371 delete cp;
2371} 2372}
2372 2373
2373void CalendarView::beamIncidence(Incidence * Inc) 2374void CalendarView::beamIncidence(Incidence * Inc)
2374{ 2375{
2375 QPtrList<Incidence> delSel ; 2376 QPtrList<Incidence> delSel ;
2376 delSel.append(Inc); 2377 delSel.append(Inc);
2377 beamIncidenceList( delSel ); 2378 beamIncidenceList( delSel );
2378} 2379}
2379void CalendarView::beamCalendar() 2380void CalendarView::beamCalendar()
2380{ 2381{
2381 QPtrList<Incidence> delSel = mCalendar->rawIncidences(); 2382 QPtrList<Incidence> delSel = mCalendar->rawIncidences();
2382 //qDebug("beamCalendar() "); 2383 //qDebug("beamCalendar() ");
2383 beamIncidenceList( delSel ); 2384 beamIncidenceList( delSel );
2384} 2385}
2385void CalendarView::beamFilteredCalendar() 2386void CalendarView::beamFilteredCalendar()
2386{ 2387{
2387 QPtrList<Incidence> delSel = mCalendar->incidences(); 2388 QPtrList<Incidence> delSel = mCalendar->incidences();
2388 //qDebug("beamFilteredCalendar() "); 2389 //qDebug("beamFilteredCalendar() ");
2389 beamIncidenceList( delSel ); 2390 beamIncidenceList( delSel );
2390} 2391}
2391void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel ) 2392void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel )
2392{ 2393{
2393 if ( beamDialog->exec () == QDialog::Rejected ) 2394 if ( beamDialog->exec () == QDialog::Rejected )
2394 return; 2395 return;
2395#ifdef DESKTOP_VERSION 2396#ifdef DESKTOP_VERSION
2396 QString fn = locateLocal( "tmp", "kopibeamfile" ); 2397 QString fn = locateLocal( "tmp", "kopibeamfile" );
2397#else 2398#else
2398 QString fn = "/tmp/kopibeamfile"; 2399 QString fn = "/tmp/kopibeamfile";
2399#endif 2400#endif
2400 QString mes; 2401 QString mes;
2401 bool createbup = true; 2402 bool createbup = true;
2402 if ( createbup ) { 2403 if ( createbup ) {
2403 QString description = "\n"; 2404 QString description = "\n";
2404 CalendarLocal* cal = new CalendarLocal(); 2405 CalendarLocal* cal = new CalendarLocal();
2405 if ( beamDialog->beamLocal() ) 2406 if ( beamDialog->beamLocal() )
2406 cal->setLocalTime(); 2407 cal->setLocalTime();
2407 else 2408 else
2408 cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2409 cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2409 Incidence *incidence = delSel.first(); 2410 Incidence *incidence = delSel.first();
2410 bool addText = false; 2411 bool addText = false;
2411 if ( delSel.count() < 10 ) 2412 if ( delSel.count() < 10 )
2412 addText = true; 2413 addText = true;
2413 else { 2414 else {
2414 description.sprintf(i18n(" %d items?"),delSel.count() ); 2415 description.sprintf(i18n(" %d items?"),delSel.count() );
2415 } 2416 }
2416 while ( incidence ) { 2417 while ( incidence ) {
2417 Incidence *in = incidence->clone(); 2418 Incidence *in = incidence->clone();
2418 if ( ! in->summary().isEmpty() ) { 2419 if ( ! in->summary().isEmpty() ) {
2419 in->setDescription(""); 2420 in->setDescription("");
2420 } else { 2421 } else {
2421 in->setSummary( in->description().left(20)); 2422 in->setSummary( in->description().left(20));
2422 in->setDescription(""); 2423 in->setDescription("");
2423 } 2424 }
2424 if ( addText ) 2425 if ( addText )
2425 description += in->summary() + "\n"; 2426 description += in->summary() + "\n";
2426 cal->addIncidence( in ); 2427 cal->addIncidence( in );
2427 incidence = delSel.next(); 2428 incidence = delSel.next();
2428 } 2429 }
2429 if ( beamDialog->beamVcal() ) { 2430 if ( beamDialog->beamVcal() ) {
2430 fn += ".vcs"; 2431 fn += ".vcs";
2431 FileStorage storage( cal, fn, new VCalFormat ); 2432 FileStorage storage( cal, fn, new VCalFormat );
2432 storage.save(); 2433 storage.save();
2433 } else { 2434 } else {
2434 fn += ".ics"; 2435 fn += ".ics";
2435 FileStorage storage( cal, fn, new ICalFormat( ) ); 2436 FileStorage storage( cal, fn, new ICalFormat( ) );
2436 storage.save(); 2437 storage.save();
2437 } 2438 }
2438 delete cal; 2439 delete cal;
2439 mes = i18n("KO/Pi: Ready for beaming"); 2440 mes = i18n("KO/Pi: Ready for beaming");
2440 topLevelWidget()->setCaption(mes); 2441 topLevelWidget()->setCaption(mes);
2441 KApplication::convert2latin1( fn ); 2442 KApplication::convert2latin1( fn );
2442#ifndef DESKTOP_VERSION 2443#ifndef DESKTOP_VERSION
2443 Ir *ir = new Ir( this ); 2444 Ir *ir = new Ir( this );
2444 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); 2445 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) );
2445 ir->send( fn, description, "text/x-vCalendar" ); 2446 ir->send( fn, description, "text/x-vCalendar" );
2446#endif 2447#endif
2447 } 2448 }
2448} 2449}
2449void CalendarView::beamDone( Ir *ir ) 2450void CalendarView::beamDone( Ir *ir )
2450{ 2451{
2451#ifndef DESKTOP_VERSION 2452#ifndef DESKTOP_VERSION
2452 delete ir; 2453 delete ir;
2453#endif 2454#endif
2454 topLevelWidget()->setCaption( i18n("KO/Pi: Beaming done.") ); 2455 topLevelWidget()->setCaption( i18n("KO/Pi: Beaming done.") );
2455 topLevelWidget()->raise(); 2456 topLevelWidget()->raise();
2456} 2457}
2457 2458
2458void CalendarView::moveIncidence(Incidence * inc ) 2459void CalendarView::moveIncidence(Incidence * inc )
2459{ 2460{
2460 if ( !inc ) return; 2461 if ( !inc ) return;
2461 // qDebug("showDatePickerForIncidence( ) "); 2462 // qDebug("showDatePickerForIncidence( ) ");
2462 if ( mDateFrame->isVisible() ) 2463 if ( mDateFrame->isVisible() )
2463 mDateFrame->hide(); 2464 mDateFrame->hide();
2464 else { 2465 else {
2465 int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ; 2466 int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ;
2466 int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ; 2467 int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ;
2467 int dw = QApplication::desktop()->width(); 2468 int dw = QApplication::desktop()->width();
2468 int dh = QApplication::desktop()->height(); 2469 int dh = QApplication::desktop()->height();
2469 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2470 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2470 mDateFrame->show(); 2471 mDateFrame->show();
2471 } 2472 }
2472 mDatePickerMode = 2; 2473 mDatePickerMode = 2;
2473 mMoveIncidence = inc ; 2474 mMoveIncidence = inc ;
2474 QDate da; 2475 QDate da;
2475 if ( mMoveIncidence->type() == "Todo" ) { 2476 if ( mMoveIncidence->type() == "Todo" ) {
2476 Todo * to = (Todo *) mMoveIncidence; 2477 Todo * to = (Todo *) mMoveIncidence;
2477 if ( to->hasDueDate() ) 2478 if ( to->hasDueDate() )
2478 da = to->dtDue().date(); 2479 da = to->dtDue().date();
2479 else 2480 else
2480 da = QDate::currentDate(); 2481 da = QDate::currentDate();
2481 } else { 2482 } else {
2482 da = mMoveIncidence->dtStart().date(); 2483 da = mMoveIncidence->dtStart().date();
2483 } 2484 }
2484 //PENDING set date for recurring incidence to date of recurrence 2485 //PENDING set date for recurring incidence to date of recurrence
2485 //mMoveIncidenceOldDate; 2486 //mMoveIncidenceOldDate;
2486 mDatePicker->setDate( da ); 2487 mDatePicker->setDate( da );
2487} 2488}
2488void CalendarView::showDatePicker( ) 2489void CalendarView::showDatePicker( )
2489{ 2490{
2490 //qDebug("CalendarView::showDatePicker( ) "); 2491 //qDebug("CalendarView::showDatePicker( ) ");
2491 if ( mDateFrame->isVisible() ) 2492 if ( mDateFrame->isVisible() )
2492 mDateFrame->hide(); 2493 mDateFrame->hide();
2493 else { 2494 else {
2494 int w =mDatePicker->sizeHint().width() ; 2495 int w =mDatePicker->sizeHint().width() ;
2495 int h = mDatePicker->sizeHint().height() ; 2496 int h = mDatePicker->sizeHint().height() ;
2496 int dw = QApplication::desktop()->width(); 2497 int dw = QApplication::desktop()->width();
2497 int dh = QApplication::desktop()->height(); 2498 int dh = QApplication::desktop()->height();
2498 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2499 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2499 mDateFrame->show(); 2500 mDateFrame->show();
2500 } 2501 }
2501 mDatePickerMode = 1; 2502 mDatePickerMode = 1;
2502 mDatePicker->setDate( mNavigator->selectedDates().first() ); 2503 mDatePicker->setDate( mNavigator->selectedDates().first() );
2503} 2504}
2504 2505
2505void CalendarView::showEventEditor() 2506void CalendarView::showEventEditor()
2506{ 2507{
2507#ifdef DESKTOP_VERSION 2508#ifdef DESKTOP_VERSION
2508 mEventEditor->show(); 2509 mEventEditor->show();
2509#else 2510#else
2510 if ( mEventEditor->width() < QApplication::desktop()->width() -60 || mEventEditor->width() > QApplication::desktop()->width() ) { 2511 if ( mEventEditor->width() < QApplication::desktop()->width() -60 || mEventEditor->width() > QApplication::desktop()->width() ) {
2511 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") ); 2512 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") );
2512 qDebug("CalendarView: recreate mEventEditor %d %d", mEventEditor->width(), QApplication::desktop()->width() ); 2513 qDebug("KO: CalendarView: recreate mEventEditor %d %d", mEventEditor->width(), QApplication::desktop()->width() );
2513 delete mEventEditor; 2514 delete mEventEditor;
2514 mEventEditor = mDialogManager->getEventEditor(); 2515 mEventEditor = mDialogManager->getEventEditor();
2515 } 2516 }
2516 mEventEditor->showMaximized(); 2517 mEventEditor->showMaximized();
2517 topLevelWidget()->setCaption( i18n("") ); 2518 topLevelWidget()->setCaption( i18n("") );
2518#endif 2519#endif
2519} 2520}
2520void CalendarView::showTodoEditor() 2521void CalendarView::showTodoEditor()
2521{ 2522{
2522#ifdef DESKTOP_VERSION 2523#ifdef DESKTOP_VERSION
2523 mTodoEditor->show(); 2524 mTodoEditor->show();
2524#else 2525#else
2525 if ( mTodoEditor->width() < QApplication::desktop()->width() -60|| mTodoEditor->width() > QApplication::desktop()->width() ) { 2526 if ( mTodoEditor->width() < QApplication::desktop()->width() -60|| mTodoEditor->width() > QApplication::desktop()->width() ) {
2526 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") ); 2527 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") );
2527 qDebug("CalendarView: recreate mTodoEditor %d %d ", mTodoEditor->width() ,QApplication::desktop()->width() ); 2528 qDebug("KO: CalendarView: recreate mTodoEditor %d %d ", mTodoEditor->width() ,QApplication::desktop()->width() );
2528 delete mTodoEditor; 2529 delete mTodoEditor;
2529 mTodoEditor = mDialogManager->getTodoEditor(); 2530 mTodoEditor = mDialogManager->getTodoEditor();
2530 } 2531 }
2531 mTodoEditor->showMaximized(); 2532 mTodoEditor->showMaximized();
2532 topLevelWidget()->setCaption( i18n("") ); 2533 topLevelWidget()->setCaption( i18n("") );
2533#endif 2534#endif
2534} 2535}
2535 2536
2536void CalendarView::cloneIncidence() 2537void CalendarView::cloneIncidence()
2537{ 2538{
2538 Incidence *incidence = currentSelection(); 2539 Incidence *incidence = currentSelection();
2539 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2540 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2540 if ( incidence ) { 2541 if ( incidence ) {
2541 cloneIncidence(incidence); 2542 cloneIncidence(incidence);
2542 } 2543 }
2543} 2544}
2544void CalendarView::moveIncidence() 2545void CalendarView::moveIncidence()
2545{ 2546{
2546 Incidence *incidence = currentSelection(); 2547 Incidence *incidence = currentSelection();
2547 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2548 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2548 if ( incidence ) { 2549 if ( incidence ) {
2549 moveIncidence(incidence); 2550 moveIncidence(incidence);
2550 } 2551 }
2551} 2552}
2552void CalendarView::beamIncidence() 2553void CalendarView::beamIncidence()
2553{ 2554{
2554 Incidence *incidence = currentSelection(); 2555 Incidence *incidence = currentSelection();
2555 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2556 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2556 if ( incidence ) { 2557 if ( incidence ) {
2557 beamIncidence(incidence); 2558 beamIncidence(incidence);
2558 } 2559 }
2559} 2560}
2560void CalendarView::toggleCancelIncidence() 2561void CalendarView::toggleCancelIncidence()
2561{ 2562{
2562 Incidence *incidence = currentSelection(); 2563 Incidence *incidence = currentSelection();
2563 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2564 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2564 if ( incidence ) { 2565 if ( incidence ) {
2565 cancelIncidence(incidence); 2566 cancelIncidence(incidence);
2566 } 2567 }
2567} 2568}
2568 2569
2569 2570
2570void CalendarView::cancelIncidence(Incidence * inc ) 2571void CalendarView::cancelIncidence(Incidence * inc )
2571{ 2572{
2572 inc->setCancelled( ! inc->cancelled() ); 2573 inc->setCancelled( ! inc->cancelled() );
2573 changeIncidenceDisplay( inc,KOGlobals::EVENTEDITED ); 2574 changeIncidenceDisplay( inc,KOGlobals::EVENTEDITED );
2574 updateView(); 2575 updateView();
2575} 2576}
2576void CalendarView::cloneIncidence(Incidence * orgInc ) 2577void CalendarView::cloneIncidence(Incidence * orgInc )
2577{ 2578{
2578 Incidence * newInc = orgInc->clone(); 2579 Incidence * newInc = orgInc->clone();
2579 newInc->recreate(); 2580 newInc->recreate();
2580 2581
2581 if ( newInc->type() == "Todo" ) { 2582 if ( newInc->type() == "Todo" ) {
2582 Todo* t = (Todo*) newInc; 2583 Todo* t = (Todo*) newInc;
2583 showTodoEditor(); 2584 showTodoEditor();
2584 mTodoEditor->editTodo( t ); 2585 mTodoEditor->editTodo( t );
2585 if ( mTodoEditor->exec() ) { 2586 if ( mTodoEditor->exec() ) {
2586 mCalendar->addTodo( t ); 2587 mCalendar->addTodo( t );
2587 updateView(); 2588 updateView();
2588 } else { 2589 } else {
2589 delete t; 2590 delete t;
2590 } 2591 }
2591 } 2592 }
2592 else { 2593 else {
2593 Event* e = (Event*) newInc; 2594 Event* e = (Event*) newInc;
2594 showEventEditor(); 2595 showEventEditor();
2595 mEventEditor->editEvent( e ); 2596 mEventEditor->editEvent( e );
2596 if ( mEventEditor->exec() ) { 2597 if ( mEventEditor->exec() ) {
2597 mCalendar->addEvent( e ); 2598 mCalendar->addEvent( e );
2598 updateView(); 2599 updateView();
2599 } else { 2600 } else {
2600 delete e; 2601 delete e;
2601 } 2602 }
2602 } 2603 }
2603} 2604}
2604 2605
2605void CalendarView::newEvent() 2606void CalendarView::newEvent()
2606{ 2607{
2607 // TODO: Replace this code by a common eventDurationHint of KOBaseView. 2608 // TODO: Replace this code by a common eventDurationHint of KOBaseView.
2608 KOAgendaView *aView = mViewManager->agendaView(); 2609 KOAgendaView *aView = mViewManager->agendaView();
2609 if (aView) { 2610 if (aView) {
2610 if (aView->selectionStart().isValid()) { 2611 if (aView->selectionStart().isValid()) {
2611 if (aView->selectedIsAllDay()) { 2612 if (aView->selectedIsAllDay()) {
2612 newEvent(aView->selectionStart(),aView->selectionEnd(),true); 2613 newEvent(aView->selectionStart(),aView->selectionEnd(),true);
2613 } else { 2614 } else {
2614 newEvent(aView->selectionStart(),aView->selectionEnd()); 2615 newEvent(aView->selectionStart(),aView->selectionEnd());
2615 } 2616 }
2616 return; 2617 return;
2617 } 2618 }
2618 } 2619 }
2619 2620
2620 QDate date = mNavigator->selectedDates().first(); 2621 QDate date = mNavigator->selectedDates().first();
2621 QDateTime current = QDateTime::currentDateTime(); 2622 QDateTime current = QDateTime::currentDateTime();
2622 if ( date <= current.date() ) { 2623 if ( date <= current.date() ) {
2623 int hour = current.time().hour() +1; 2624 int hour = current.time().hour() +1;
2624 newEvent( QDateTime( current.date(), QTime( hour, 0, 0 ) ), 2625 newEvent( QDateTime( current.date(), QTime( hour, 0, 0 ) ),
2625 QDateTime( current.date(), QTime( hour+ KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) ); 2626 QDateTime( current.date(), QTime( hour+ KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) );
2626 } else 2627 } else
2627 newEvent( QDateTime( date, QTime( KOPrefs::instance()->mStartTime, 0, 0 ) ), 2628 newEvent( QDateTime( date, QTime( KOPrefs::instance()->mStartTime, 0, 0 ) ),
2628 QDateTime( date, QTime( KOPrefs::instance()->mStartTime + 2629 QDateTime( date, QTime( KOPrefs::instance()->mStartTime +
2629 KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) ); 2630 KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) );
2630} 2631}
2631 2632
2632void CalendarView::newEvent(QDateTime fh) 2633void CalendarView::newEvent(QDateTime fh)
2633{ 2634{
2634 newEvent(fh, 2635 newEvent(fh,
2635 QDateTime(fh.addSecs(3600*KOPrefs::instance()->mDefaultDuration))); 2636 QDateTime(fh.addSecs(3600*KOPrefs::instance()->mDefaultDuration)));
2636} 2637}
2637 2638
2638void CalendarView::newEvent(QDate dt) 2639void CalendarView::newEvent(QDate dt)
2639{ 2640{
2640 newEvent(QDateTime(dt, QTime(0,0,0)), 2641 newEvent(QDateTime(dt, QTime(0,0,0)),
2641 QDateTime(dt, QTime(0,0,0)), true); 2642 QDateTime(dt, QTime(0,0,0)), true);
2642} 2643}
2643 2644
2644void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint, bool allDay) 2645void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint, bool allDay)
2645{ 2646{
2646 2647
2647 showEventEditor(); 2648 showEventEditor();
2648 mEventEditor->newEvent(fromHint,toHint,allDay); 2649 mEventEditor->newEvent(fromHint,toHint,allDay);
2649 if ( mFilterView->filtersEnabled() ) { 2650 if ( mFilterView->filtersEnabled() ) {
2650 CalFilter *filter = mFilterView->selectedFilter(); 2651 CalFilter *filter = mFilterView->selectedFilter();
2651 if (filter && filter->showCategories()) { 2652 if (filter && filter->showCategories()) {
2652 mEventEditor->setCategories(filter->categoryList().join(",") ); 2653 mEventEditor->setCategories(filter->categoryList().join(",") );
2653 } 2654 }
2654 if ( filter ) 2655 if ( filter )
2655 mEventEditor->setSecrecy( filter->getSecrecy() ); 2656 mEventEditor->setSecrecy( filter->getSecrecy() );
2656 } 2657 }
2657} 2658}
2658void CalendarView::todoAdded(Todo * t) 2659void CalendarView::todoAdded(Todo * t)
2659{ 2660{
2660 2661
2661 changeTodoDisplay ( t ,KOGlobals::EVENTADDED); 2662 changeTodoDisplay ( t ,KOGlobals::EVENTADDED);
2662 updateTodoViews(); 2663 updateTodoViews();
2663} 2664}
2664void CalendarView::todoChanged(Todo * t) 2665void CalendarView::todoChanged(Todo * t)
2665{ 2666{
2666 emit todoModified( t, 4 ); 2667 emit todoModified( t, 4 );
2667 // updateTodoViews(); 2668 // updateTodoViews();
2668} 2669}
2669void CalendarView::todoToBeDeleted(Todo *) 2670void CalendarView::todoToBeDeleted(Todo *)
2670{ 2671{
2671 //qDebug("todoToBeDeleted(Todo *) "); 2672 //qDebug("todoToBeDeleted(Todo *) ");
2672 updateTodoViews(); 2673 updateTodoViews();
2673} 2674}
2674void CalendarView::todoDeleted() 2675void CalendarView::todoDeleted()
2675{ 2676{
2676 //qDebug(" todoDeleted()"); 2677 //qDebug(" todoDeleted()");
2677 updateTodoViews(); 2678 updateTodoViews();
2678} 2679}
2679 2680
2680 2681
2681 2682
2682void CalendarView::newTodo() 2683void CalendarView::newTodo()
2683{ 2684{
2684 2685
2685 showTodoEditor(); 2686 showTodoEditor();
2686 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),0,true); 2687 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),0,true);
2687 if ( mFilterView->filtersEnabled() ) { 2688 if ( mFilterView->filtersEnabled() ) {
2688 CalFilter *filter = mFilterView->selectedFilter(); 2689 CalFilter *filter = mFilterView->selectedFilter();
2689 if (filter && filter->showCategories()) { 2690 if (filter && filter->showCategories()) {
2690 mTodoEditor->setCategories(filter->categoryList().join(",") ); 2691 mTodoEditor->setCategories(filter->categoryList().join(",") );
2691 } 2692 }
2692 if ( filter ) 2693 if ( filter )
2693 mTodoEditor->setSecrecy( filter->getSecrecy() ); 2694 mTodoEditor->setSecrecy( filter->getSecrecy() );
2694 } 2695 }
2695} 2696}
2696 2697
2697void CalendarView::newSubTodo() 2698void CalendarView::newSubTodo()
2698{ 2699{
2699 Todo *todo = selectedTodo(); 2700 Todo *todo = selectedTodo();
2700 if ( todo ) newSubTodo( todo ); 2701 if ( todo ) newSubTodo( todo );
2701} 2702}
2702 2703
2703void CalendarView::newSubTodo(Todo *parentEvent) 2704void CalendarView::newSubTodo(Todo *parentEvent)
2704{ 2705{
2705 2706
2706 showTodoEditor(); 2707 showTodoEditor();
2707 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),parentEvent,true); 2708 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),parentEvent,true);
2708} 2709}
2709 2710
2710void CalendarView::newFloatingEvent() 2711void CalendarView::newFloatingEvent()
2711{ 2712{
2712 DateList tmpList = mNavigator->selectedDates(); 2713 DateList tmpList = mNavigator->selectedDates();
2713 QDate date = tmpList.first(); 2714 QDate date = tmpList.first();
2714 2715
2715 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ), 2716 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ),
2716 QDateTime( date, QTime( 12, 0, 0 ) ), true ); 2717 QDateTime( date, QTime( 12, 0, 0 ) ), true );
2717} 2718}
2718 2719
2719 2720
2720void CalendarView::editEvent( Event *event ) 2721void CalendarView::editEvent( Event *event )
2721{ 2722{
2722 2723
2723 if ( !event ) return; 2724 if ( !event ) return;
2724 if ( event->isReadOnly() ) { 2725 if ( event->isReadOnly() ) {
2725 showEvent( event ); 2726 showEvent( event );
2726 return; 2727 return;
2727 } 2728 }
2728 showEventEditor(); 2729 showEventEditor();
2729 mEventEditor->editEvent( event , mFlagEditDescription); 2730 mEventEditor->editEvent( event , mFlagEditDescription);
2730} 2731}
2731void CalendarView::editJournal( Journal *jour ) 2732void CalendarView::editJournal( Journal *jour )
2732{ 2733{
2733 if ( !jour ) return; 2734 if ( !jour ) return;
2734 mDialogManager->hideSearchDialog(); 2735 mDialogManager->hideSearchDialog();
2735 mViewManager->showJournalView(); 2736 mViewManager->showJournalView();
2736 mNavigator->slotDaySelect( jour->dtStart().date() ); 2737 mNavigator->slotDaySelect( jour->dtStart().date() );
2737} 2738}
2738void CalendarView::editTodo( Todo *todo ) 2739void CalendarView::editTodo( Todo *todo )
2739{ 2740{
2740 if ( !todo ) return; 2741 if ( !todo ) return;
2741 2742
2742 if ( todo->isReadOnly() ) { 2743 if ( todo->isReadOnly() ) {
2743 showTodo( todo ); 2744 showTodo( todo );
2744 return; 2745 return;
2745 } 2746 }
2746 showTodoEditor(); 2747 showTodoEditor();
2747 mTodoEditor->editTodo( todo ,mFlagEditDescription); 2748 mTodoEditor->editTodo( todo ,mFlagEditDescription);
2748 2749
2749} 2750}
2750 2751
2751KOEventViewerDialog* CalendarView::getEventViewerDialog() 2752KOEventViewerDialog* CalendarView::getEventViewerDialog()
2752{ 2753{
2753 if ( !mEventViewerDialog ) { 2754 if ( !mEventViewerDialog ) {
2754 mEventViewerDialog = new KOEventViewerDialog(this); 2755 mEventViewerDialog = new KOEventViewerDialog(this);
2755 connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) ); 2756 connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) );
2756 connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig())); 2757 connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig()));
2757 connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)), 2758 connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)),
2758 dateNavigator(), SLOT( selectWeek( const QDate & ) ) ); 2759 dateNavigator(), SLOT( selectWeek( const QDate & ) ) );
2759 connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ), 2760 connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ),
2760 viewManager(), SLOT( showAgendaView( bool ) ) ); 2761 viewManager(), SLOT( showAgendaView( bool ) ) );
2761 connect( mEventViewerDialog, SIGNAL( todoCompleted(Todo *) ), 2762 connect( mEventViewerDialog, SIGNAL( todoCompleted(Todo *) ),
2762 this, SLOT( todoChanged(Todo *) ) ); 2763 this, SLOT( todoChanged(Todo *) ) );
2763 mEventViewerDialog->resize( 640, 480 ); 2764 mEventViewerDialog->resize( 640, 480 );
2764 2765
2765 } 2766 }
2766 return mEventViewerDialog; 2767 return mEventViewerDialog;
2767} 2768}
2768void CalendarView::showEvent(Event *event) 2769void CalendarView::showEvent(Event *event)
2769{ 2770{
2770 getEventViewerDialog()->setEvent(event); 2771 getEventViewerDialog()->setEvent(event);
2771 getEventViewerDialog()->showMe(); 2772 getEventViewerDialog()->showMe();
2772} 2773}
2773 2774
2774void CalendarView::showTodo(Todo *event) 2775void CalendarView::showTodo(Todo *event)
2775{ 2776{
2776 getEventViewerDialog()->setTodo(event); 2777 getEventViewerDialog()->setTodo(event);
2777 getEventViewerDialog()->showMe(); 2778 getEventViewerDialog()->showMe();
2778} 2779}
2779void CalendarView::showJournal( Journal *jour ) 2780void CalendarView::showJournal( Journal *jour )
2780{ 2781{
2781 getEventViewerDialog()->setJournal(jour); 2782 getEventViewerDialog()->setJournal(jour);
2782 getEventViewerDialog()->showMe(); 2783 getEventViewerDialog()->showMe();
2783 2784
@@ -3604,302 +3605,302 @@ void CalendarView::takeOverCalendar()
3604 3605
3605 QPtrList<Journal> journals = mCalendar->journals(); 3606 QPtrList<Journal> journals = mCalendar->journals();
3606 for(uint i=0; i<journals.count(); ++i) { 3607 for(uint i=0; i<journals.count(); ++i) {
3607 journals.at(i)->setOrganizer(KOPrefs::instance()->email()); 3608 journals.at(i)->setOrganizer(KOPrefs::instance()->email());
3608 journals.at(i)->recreate(); 3609 journals.at(i)->recreate();
3609 journals.at(i)->setReadOnly(false); 3610 journals.at(i)->setReadOnly(false);
3610 } 3611 }
3611 3612
3612 updateView(); 3613 updateView();
3613} 3614}
3614 3615
3615void CalendarView::showIntro() 3616void CalendarView::showIntro()
3616{ 3617{
3617 kdDebug() << "To be implemented." << endl; 3618 kdDebug() << "To be implemented." << endl;
3618} 3619}
3619 3620
3620QWidgetStack *CalendarView::viewStack() 3621QWidgetStack *CalendarView::viewStack()
3621{ 3622{
3622 return mRightFrame; 3623 return mRightFrame;
3623} 3624}
3624 3625
3625QWidget *CalendarView::leftFrame() 3626QWidget *CalendarView::leftFrame()
3626{ 3627{
3627 return mLeftFrame; 3628 return mLeftFrame;
3628} 3629}
3629 3630
3630DateNavigator *CalendarView::dateNavigator() 3631DateNavigator *CalendarView::dateNavigator()
3631{ 3632{
3632 return mNavigator; 3633 return mNavigator;
3633} 3634}
3634 3635
3635KDateNavigator* CalendarView::dateNavigatorWidget() 3636KDateNavigator* CalendarView::dateNavigatorWidget()
3636{ 3637{
3637 return mDateNavigator; 3638 return mDateNavigator;
3638} 3639}
3639void CalendarView::toggleDateNavigatorWidget() 3640void CalendarView::toggleDateNavigatorWidget()
3640{ 3641{
3641 KOPrefs::instance()->mShowDateNavigator = !KOPrefs::instance()->mShowDateNavigator ; 3642 KOPrefs::instance()->mShowDateNavigator = !KOPrefs::instance()->mShowDateNavigator ;
3642 if (!KOPrefs::instance()->mShowDateNavigator ) 3643 if (!KOPrefs::instance()->mShowDateNavigator )
3643 mDateNavigator->hide(); 3644 mDateNavigator->hide();
3644 else 3645 else
3645 mDateNavigator->show(); 3646 mDateNavigator->show();
3646} 3647}
3647void CalendarView::addView(KOrg::BaseView *view) 3648void CalendarView::addView(KOrg::BaseView *view)
3648{ 3649{
3649 mViewManager->addView(view); 3650 mViewManager->addView(view);
3650} 3651}
3651 3652
3652void CalendarView::showView(KOrg::BaseView *view) 3653void CalendarView::showView(KOrg::BaseView *view)
3653{ 3654{
3654 mViewManager->showView(view, mLeftFrame->isVisible()); 3655 mViewManager->showView(view, mLeftFrame->isVisible());
3655} 3656}
3656 3657
3657Incidence *CalendarView::currentSelection() 3658Incidence *CalendarView::currentSelection()
3658{ 3659{
3659 return mViewManager->currentSelection(); 3660 return mViewManager->currentSelection();
3660} 3661}
3661void CalendarView::toggleAllDaySize() 3662void CalendarView::toggleAllDaySize()
3662{ 3663{
3663 /* 3664 /*
3664 if ( KOPrefs::instance()->mAllDaySize > 47 ) 3665 if ( KOPrefs::instance()->mAllDaySize > 47 )
3665 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize /2; 3666 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize /2;
3666 else 3667 else
3667 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize *2; 3668 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize *2;
3668 */ 3669 */
3669 viewManager()->agendaView()->toggleAllDay(); 3670 viewManager()->agendaView()->toggleAllDay();
3670} 3671}
3671void CalendarView::toggleExpand() 3672void CalendarView::toggleExpand()
3672{ 3673{
3673 // if ( mLeftFrame->isHidden() ) { 3674 // if ( mLeftFrame->isHidden() ) {
3674 // mLeftFrame->show(); 3675 // mLeftFrame->show();
3675 // emit calendarViewExpanded( false ); 3676 // emit calendarViewExpanded( false );
3676 // } else { 3677 // } else {
3677 // mLeftFrame->hide(); 3678 // mLeftFrame->hide();
3678 // emit calendarViewExpanded( true ); 3679 // emit calendarViewExpanded( true );
3679 // } 3680 // }
3680 3681
3681 globalFlagBlockAgenda = 1; 3682 globalFlagBlockAgenda = 1;
3682 emit calendarViewExpanded( !mLeftFrame->isHidden() ); 3683 emit calendarViewExpanded( !mLeftFrame->isHidden() );
3683 globalFlagBlockAgenda = 5; 3684 globalFlagBlockAgenda = 5;
3684 mViewManager->raiseCurrentView( !mLeftFrame->isHidden() ); 3685 mViewManager->raiseCurrentView( !mLeftFrame->isHidden() );
3685 //mViewManager->showView( 0, true ); 3686 //mViewManager->showView( 0, true );
3686} 3687}
3687 3688
3688void CalendarView::calendarModified( bool modified, Calendar * ) 3689void CalendarView::calendarModified( bool modified, Calendar * )
3689{ 3690{
3690 setModified( modified ); 3691 setModified( modified );
3691} 3692}
3692 3693
3693Todo *CalendarView::selectedTodo() 3694Todo *CalendarView::selectedTodo()
3694{ 3695{
3695 Incidence *incidence = currentSelection(); 3696 Incidence *incidence = currentSelection();
3696 if ( incidence && incidence->type() == "Todo" ) { 3697 if ( incidence && incidence->type() == "Todo" ) {
3697 return static_cast<Todo *>( incidence ); 3698 return static_cast<Todo *>( incidence );
3698 } 3699 }
3699 3700
3700 incidence = mTodoList->selectedIncidences().first(); 3701 incidence = mTodoList->selectedIncidences().first();
3701 if ( incidence && incidence->type() == "Todo" ) { 3702 if ( incidence && incidence->type() == "Todo" ) {
3702 return static_cast<Todo *>( incidence ); 3703 return static_cast<Todo *>( incidence );
3703 } 3704 }
3704 3705
3705 return 0; 3706 return 0;
3706} 3707}
3707 3708
3708void CalendarView::dialogClosing(Incidence *in) 3709void CalendarView::dialogClosing(Incidence *in)
3709{ 3710{
3710 // mDialogList.remove(in); 3711 // mDialogList.remove(in);
3711} 3712}
3712 3713
3713void CalendarView::showIncidence() 3714void CalendarView::showIncidence()
3714{ 3715{
3715 Incidence *incidence = currentSelection(); 3716 Incidence *incidence = currentSelection();
3716 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 3717 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
3717 if ( incidence ) { 3718 if ( incidence ) {
3718 ShowIncidenceVisitor v; 3719 ShowIncidenceVisitor v;
3719 v.act( incidence, this ); 3720 v.act( incidence, this );
3720 } 3721 }
3721} 3722}
3722void CalendarView::editIncidenceDescription() 3723void CalendarView::editIncidenceDescription()
3723{ 3724{
3724 mFlagEditDescription = true; 3725 mFlagEditDescription = true;
3725 editIncidence(); 3726 editIncidence();
3726 mFlagEditDescription = false; 3727 mFlagEditDescription = false;
3727} 3728}
3728void CalendarView::editIncidence() 3729void CalendarView::editIncidence()
3729{ 3730{
3730 // qDebug("editIncidence() "); 3731 // qDebug("editIncidence() ");
3731 Incidence *incidence = currentSelection(); 3732 Incidence *incidence = currentSelection();
3732 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 3733 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
3733 if ( incidence ) { 3734 if ( incidence ) {
3734 EditIncidenceVisitor v; 3735 EditIncidenceVisitor v;
3735 v.act( incidence, this ); 3736 v.act( incidence, this );
3736 } 3737 }
3737} 3738}
3738 3739
3739void CalendarView::deleteIncidence() 3740void CalendarView::deleteIncidence()
3740{ 3741{
3741 Incidence *incidence = currentSelection(); 3742 Incidence *incidence = currentSelection();
3742 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 3743 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
3743 if ( incidence ) { 3744 if ( incidence ) {
3744 deleteIncidence(incidence); 3745 deleteIncidence(incidence);
3745 } 3746 }
3746} 3747}
3747 3748
3748void CalendarView::showIncidence(Incidence *incidence) 3749void CalendarView::showIncidence(Incidence *incidence)
3749{ 3750{
3750 if ( incidence ) { 3751 if ( incidence ) {
3751 ShowIncidenceVisitor v; 3752 ShowIncidenceVisitor v;
3752 v.act( incidence, this ); 3753 v.act( incidence, this );
3753 } 3754 }
3754} 3755}
3755 3756
3756void CalendarView::editIncidence(Incidence *incidence) 3757void CalendarView::editIncidence(Incidence *incidence)
3757{ 3758{
3758 if ( incidence ) { 3759 if ( incidence ) {
3759 3760
3760 EditIncidenceVisitor v; 3761 EditIncidenceVisitor v;
3761 v.act( incidence, this ); 3762 v.act( incidence, this );
3762 3763
3763 } 3764 }
3764} 3765}
3765 3766
3766void CalendarView::deleteIncidence(Incidence *incidence) 3767void CalendarView::deleteIncidence(Incidence *incidence)
3767{ 3768{
3768 //qDebug(" CalendarView::deleteIncidence "); 3769 //qDebug(" CalendarView::deleteIncidence ");
3769 if ( incidence ) { 3770 if ( incidence ) {
3770 DeleteIncidenceVisitor v; 3771 DeleteIncidenceVisitor v;
3771 v.act( incidence, this ); 3772 v.act( incidence, this );
3772 } 3773 }
3773} 3774}
3774 3775
3775 3776
3776void CalendarView::lookForOutgoingMessages() 3777void CalendarView::lookForOutgoingMessages()
3777{ 3778{
3778 OutgoingDialog *ogd = mDialogManager->outgoingDialog(); 3779 OutgoingDialog *ogd = mDialogManager->outgoingDialog();
3779 ogd->loadMessages(); 3780 ogd->loadMessages();
3780} 3781}
3781 3782
3782void CalendarView::lookForIncomingMessages() 3783void CalendarView::lookForIncomingMessages()
3783{ 3784{
3784 IncomingDialog *icd = mDialogManager->incomingDialog(); 3785 IncomingDialog *icd = mDialogManager->incomingDialog();
3785 icd->retrieve(); 3786 icd->retrieve();
3786} 3787}
3787 3788
3788bool CalendarView::removeCompletedSubTodos( Todo* t ) 3789bool CalendarView::removeCompletedSubTodos( Todo* t )
3789{ 3790{
3790 bool deleteTodo = true; 3791 bool deleteTodo = true;
3791 QPtrList<Incidence> subTodos; 3792 QPtrList<Incidence> subTodos;
3792 Incidence *aTodo; 3793 Incidence *aTodo;
3793 subTodos = t->relations(); 3794 subTodos = t->relations();
3794 for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) { 3795 for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) {
3795 if (! removeCompletedSubTodos( (Todo*) aTodo )) 3796 if (! removeCompletedSubTodos( (Todo*) aTodo ))
3796 deleteTodo = false; 3797 deleteTodo = false;
3797 } 3798 }
3798 if ( deleteTodo ) { 3799 if ( deleteTodo ) {
3799 if ( t->isCompleted() ) { 3800 if ( t->isCompleted() ) {
3800 checkExternalId( t ); 3801 checkExternalId( t );
3801 mCalendar->deleteTodo( t ); 3802 mCalendar->deleteTodo( t );
3802 changeTodoDisplay( t,KOGlobals::EVENTDELETED ); 3803 changeTodoDisplay( t,KOGlobals::EVENTDELETED );
3803 } 3804 }
3804 else 3805 else
3805 deleteTodo = false; 3806 deleteTodo = false;
3806 } 3807 }
3807 return deleteTodo; 3808 return deleteTodo;
3808 3809
3809} 3810}
3810void CalendarView::purgeCompleted() 3811void CalendarView::purgeCompleted()
3811{ 3812{
3812 int result = KMessageBox::warningContinueCancel(this, 3813 int result = KMessageBox::warningContinueCancel(this,
3813 i18n("Delete all\ncompleted To-Dos?"),i18n("Purge To-Dos"),i18n("Purge")); 3814 i18n("Delete all\ncompleted To-Dos?"),i18n("Purge To-Dos"),i18n("Purge"));
3814 3815
3815 if (result == KMessageBox::Continue) { 3816 if (result == KMessageBox::Continue) {
3816 3817
3817 QPtrList<Todo> todoCal; 3818 QPtrList<Todo> todoCal;
3818 QPtrList<Todo> rootTodos; 3819 QPtrList<Todo> rootTodos;
3819 //QPtrList<Incidence> rel; 3820 //QPtrList<Incidence> rel;
3820 Todo *aTodo;//, *rTodo; 3821 Todo *aTodo;//, *rTodo;
3821 Incidence *rIncidence; 3822 Incidence *rIncidence;
3822 bool childDelete = false; 3823 bool childDelete = false;
3823 bool deletedOne = true; 3824 bool deletedOne = true;
3824 todoCal = calendar()->todos(); 3825 todoCal = calendar()->todos();
3825 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) { 3826 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) {
3826 if ( !aTodo->relatedTo() ) 3827 if ( !aTodo->relatedTo() )
3827 rootTodos.append( aTodo ); 3828 rootTodos.append( aTodo );
3828 } 3829 }
3829 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) { 3830 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) {
3830 removeCompletedSubTodos( aTodo ); 3831 removeCompletedSubTodos( aTodo );
3831 } 3832 }
3832 3833
3833 updateView(); 3834 updateView();
3834 } 3835 }
3835} 3836}
3836 3837
3837void CalendarView::slotCalendarChanged() 3838void CalendarView::slotCalendarChanged()
3838{ 3839{
3839 ; 3840 ;
3840} 3841}
3841 3842
3842NavigatorBar *CalendarView::navigatorBar() 3843NavigatorBar *CalendarView::navigatorBar()
3843{ 3844{
3844 return mNavigatorBar; 3845 return mNavigatorBar;
3845} 3846}
3846 3847
3847 3848
3848 3849
3849void CalendarView::keyPressEvent ( QKeyEvent *e) 3850void CalendarView::keyPressEvent ( QKeyEvent *e)
3850{ 3851{
3851 //qDebug(" alendarView::keyPressEvent "); 3852 //qDebug(" alendarView::keyPressEvent ");
3852 e->ignore(); 3853 e->ignore();
3853} 3854}
3854 3855
3855 3856
3856bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) 3857bool CalendarView::sync(KSyncManager* manager, QString filename, int mode)
3857{ 3858{
3858 // mSyncManager = manager; 3859 // mSyncManager = manager;
3859 if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) { 3860 if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) {
3860 qDebug("SyncKDE request detected!"); 3861 qDebug("KO: SyncKDE request detected!");
3861 } 3862 }
3862 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 3863 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
3863 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 3864 mCurrentSyncName = mSyncManager->getCurrentSyncName();
3864 return syncCalendar( filename, mode ); 3865 return syncCalendar( filename, mode );
3865} 3866}
3866bool CalendarView::syncExternal(KSyncManager* manager, QString resource) 3867bool CalendarView::syncExternal(KSyncManager* manager, QString resource)
3867{ 3868{
3868 //mSyncManager = manager; 3869 //mSyncManager = manager;
3869 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 3870 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
3870 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 3871 mCurrentSyncName = mSyncManager->getCurrentSyncName();
3871 if ( resource == "sharp" ) 3872 if ( resource == "sharp" )
3872 syncExternal( 0 ); 3873 syncExternal( 0 );
3873 if ( resource == "phone" ) 3874 if ( resource == "phone" )
3874 syncExternal( 1 ); 3875 syncExternal( 1 );
3875 // pending setmodified 3876 // pending setmodified
3876 return true; 3877 return true;
3877} 3878}
3878void CalendarView::setSyncManager(KSyncManager* manager) 3879void CalendarView::setSyncManager(KSyncManager* manager)
3879{ 3880{
3880 mSyncManager = manager; 3881 mSyncManager = manager;
3881} 3882}
3882 3883
3883void CalendarView::removeSyncInfo( QString syncProfile) 3884void CalendarView::removeSyncInfo( QString syncProfile)
3884{ 3885{
3885 qDebug("removeSyncInfo for profile %s ", syncProfile.latin1()); 3886 qDebug("KO: removeSyncInfo for profile %s ", syncProfile.latin1());
3886 mCalendar->removeSyncInfo( syncProfile ); 3887 mCalendar->removeSyncInfo( syncProfile );
3887 3888
3888} 3889}
3889 3890
3890void CalendarView::undo_delete() 3891void CalendarView::undo_delete()
3891{ 3892{
3892 //qDebug("undo_delete() "); 3893 //qDebug("undo_delete() ");
3893 Incidence* undo = mCalendar->undoIncidence(); 3894 Incidence* undo = mCalendar->undoIncidence();
3894 if ( !undo ) { 3895 if ( !undo ) {
3895 KMessageBox::sorry(this,i18n("There is nothing to undo!"), 3896 KMessageBox::sorry(this,i18n("There is nothing to undo!"),
3896 i18n("KO/Pi")); 3897 i18n("KO/Pi"));
3897 return; 3898 return;
3898 } 3899 }
3899 if ( KMessageBox::Continue ==KMessageBox::warningContinueCancel(this,undo->summary().left(25) + 3900 if ( KMessageBox::Continue ==KMessageBox::warningContinueCancel(this,undo->summary().left(25) +
3900 i18n("\nAre you sure you want\nto restore this?"), 3901 i18n("\nAre you sure you want\nto restore this?"),
3901 i18n("KO/Pi Confirmation"),i18n("Restore"))) { 3902 i18n("KO/Pi Confirmation"),i18n("Restore"))) {
3902 mCalendar->undoDeleteIncidence(); 3903 mCalendar->undoDeleteIncidence();
3903 updateView(); 3904 updateView();
3904 } 3905 }
3905} 3906}
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 26ea1e2..877b6f2 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -354,513 +354,514 @@ void MainWindow::showMaximized ()
354#endif 354#endif
355 QWidget::showMaximized () ; 355 QWidget::showMaximized () ;
356 mClosed = false; 356 mClosed = false;
357} 357}
358void MainWindow::closeEvent( QCloseEvent* ce ) 358void MainWindow::closeEvent( QCloseEvent* ce )
359{ 359{
360 360
361 361
362 362
363 if ( ! KOPrefs::instance()->mAskForQuit ) { 363 if ( ! KOPrefs::instance()->mAskForQuit ) {
364 saveOnClose(); 364 saveOnClose();
365 mClosed = true; 365 mClosed = true;
366 ce->accept(); 366 ce->accept();
367 return; 367 return;
368 368
369 } 369 }
370 370
371 switch( QMessageBox::information( this, "KO/Pi", 371 switch( QMessageBox::information( this, "KO/Pi",
372 i18n("Do you really want\nto close KO/Pi?"), 372 i18n("Do you really want\nto close KO/Pi?"),
373 i18n("Close"), i18n("No"), 373 i18n("Close"), i18n("No"),
374 0, 0 ) ) { 374 0, 0 ) ) {
375 case 0: 375 case 0:
376 saveOnClose(); 376 saveOnClose();
377 mClosed = true; 377 mClosed = true;
378 ce->accept(); 378 ce->accept();
379 break; 379 break;
380 case 1: 380 case 1:
381 ce->ignore(); 381 ce->ignore();
382 break; 382 break;
383 case 2: 383 case 2:
384 384
385 default: 385 default:
386 break; 386 break;
387 } 387 }
388 388
389 389
390} 390}
391 391
392void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 392void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
393{ 393{
394 QDataStream stream( data, IO_ReadOnly ); 394 QDataStream stream( data, IO_ReadOnly );
395 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 395 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
396 //QString datamess; 396 //QString datamess;
397 //qDebug("message "); 397 //qDebug("message ");
398 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 398 qDebug("KO: QCOP message received: %s ", cmsg.data() );
399 399
400 if ( cmsg == "setDocument(QString)" ) { 400 if ( cmsg == "setDocument(QString)" ) {
401 QDataStream stream( data, IO_ReadOnly ); 401 QDataStream stream( data, IO_ReadOnly );
402 QString fileName; 402 QString fileName;
403 stream >> fileName; 403 stream >> fileName;
404 //qDebug("filename %s ", fileName.latin1()); 404 //qDebug("filename %s ", fileName.latin1());
405 showMaximized(); 405 showMaximized();
406 raise(); 406 raise();
407 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 407 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
408 mSyncManager->slotSyncMenu( 1002 ); 408 mSyncManager->slotSyncMenu( 1002 );
409 return; 409 return;
410 } 410 }
411 411
412 if ( cmsg == "-writeFile" ) { 412 if ( cmsg == "-writeFile" ) {
413 // I made from the "-writeFile" an "-writeAlarm" 413 // I made from the "-writeFile" an "-writeAlarm"
414 mView->viewManager()->showWhatsNextView(); 414 mView->viewManager()->showWhatsNextView();
415 mCalendar->checkAlarmForIncidence( 0, true); 415 mCalendar->checkAlarmForIncidence( 0, true);
416 showMaximized(); 416 showMaximized();
417 raise(); 417 raise();
418 return; 418 return;
419 419
420 } 420 }
421 if ( cmsg == "-writeFileSilent" ) { 421 if ( cmsg == "-writeFileSilent" ) {
422 // I made from the "-writeFile" an "-writeAlarm" 422 // I made from the "-writeFile" an "-writeAlarm"
423 // mView->viewManager()->showWhatsNextView(); 423 // mView->viewManager()->showWhatsNextView();
424 mCalendar->checkAlarmForIncidence( 0, true); 424 mCalendar->checkAlarmForIncidence( 0, true);
425 //showMaximized(); 425 //showMaximized();
426 //raise(); 426 //raise();
427 hide(); 427 hide();
428 return; 428 return;
429 } 429 }
430 if ( cmsg == "-newCountdown" ) { 430 if ( cmsg == "-newCountdown" ) {
431 qDebug("newCountdown "); 431 qDebug("newCountdown ");
432 432
433 } 433 }
434 QString msg ; 434 QString msg ;
435 QString allmsg = cmsg; 435 QString allmsg = cmsg;
436 while ( allmsg.length() > 0 ) { 436 while ( allmsg.length() > 0 ) {
437 int nextC = allmsg.find( "-", 1 ); 437 int nextC = allmsg.find( "-", 1 );
438 if ( nextC == -1 ) { 438 if ( nextC == -1 ) {
439 msg = allmsg; 439 msg = allmsg;
440 allmsg = ""; 440 allmsg = "";
441 } else{ 441 } else{
442 msg = allmsg.left( nextC ); 442 msg = allmsg.left( nextC );
443 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 443 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
444 } 444 }
445 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 445 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
446 if ( msg == "-newEvent" ) { 446 if ( msg == "-newEvent" ) {
447 mView->newEvent(); 447 mView->newEvent();
448 } 448 }
449 if ( msg == "-newTodo" ) { 449 if ( msg == "-newTodo" ) {
450 mView->newTodo(); 450 mView->newTodo();
451 451
452 } 452 }
453 if ( msg == "-showWN" ) { 453 if ( msg == "-showWN" ) {
454 mView->viewManager()->showWhatsNextView(); 454 mView->viewManager()->showWhatsNextView();
455 } 455 }
456 if ( msg == "-showTodo" ) { 456 if ( msg == "-showTodo" ) {
457 mView->viewManager()->showTodoView(); 457 mView->viewManager()->showTodoView();
458 } 458 }
459 if ( msg == "-showList" ) { 459 if ( msg == "-showList" ) {
460 mView->viewManager()->showListView(); 460 mView->viewManager()->showListView();
461 } 461 }
462 else if ( msg == "-showDay" ) { 462 else if ( msg == "-showDay" ) {
463 mView->viewManager()->showDayView(); 463 mView->viewManager()->showDayView();
464 } 464 }
465 else if ( msg == "-showWWeek" ) { 465 else if ( msg == "-showWWeek" ) {
466 mView->viewManager()->showWorkWeekView(); 466 mView->viewManager()->showWorkWeekView();
467 } 467 }
468 else if ( msg == "-ringSync" ) { 468 else if ( msg == "-ringSync" ) {
469 mSyncManager->multiSync( false ); 469 mSyncManager->multiSync( false );
470 } 470 }
471 else if ( msg == "-showWeek" ) { 471 else if ( msg == "-showWeek" ) {
472 mView->viewManager()->showWeekView(); 472 mView->viewManager()->showWeekView();
473 } 473 }
474 else if ( msg == "-showTodo" ) { 474 else if ( msg == "-showTodo" ) {
475 mView->viewManager()->showTodoView(); 475 mView->viewManager()->showTodoView();
476 } 476 }
477 else if ( msg == "-showJournal" ) { 477 else if ( msg == "-showJournal" ) {
478 mView->dateNavigator()->selectDates( 1 ); 478 mView->dateNavigator()->selectDates( 1 );
479 mView->dateNavigator()->selectToday(); 479 mView->dateNavigator()->selectToday();
480 mView->viewManager()->showJournalView(); 480 mView->viewManager()->showJournalView();
481 } 481 }
482 else if ( msg == "-showKO" ) { 482 else if ( msg == "-showKO" ) {
483 mView->viewManager()->showNextXView(); 483 mView->viewManager()->showNextXView();
484 } 484 }
485 else if ( msg == "-showWNext" || msg == "nextView()" ) { 485 else if ( msg == "-showWNext" || msg == "nextView()" ) {
486 mView->viewManager()->showWhatsNextView(); 486 mView->viewManager()->showWhatsNextView();
487 } 487 }
488 else if ( msg == "-showNextXView" ) { 488 else if ( msg == "-showNextXView" ) {
489 mView->viewManager()->showNextXView(); 489 mView->viewManager()->showNextXView();
490 } 490 }
491 491
492 492
493 } 493 }
494 494
495 showMaximized(); 495 showMaximized();
496 raise(); 496 raise();
497} 497}
498 498
499QPixmap MainWindow::loadPixmap( QString name ) 499QPixmap MainWindow::loadPixmap( QString name )
500{ 500{
501 return SmallIcon( name ); 501 return SmallIcon( name );
502 502
503} 503}
504void MainWindow::initActions() 504void MainWindow::initActions()
505{ 505{
506 //KOPrefs::instance()->mShowFullMenu 506 //KOPrefs::instance()->mShowFullMenu
507 iconToolBar->clear(); 507 iconToolBar->clear();
508 KOPrefs *p = KOPrefs::instance(); 508 KOPrefs *p = KOPrefs::instance();
509 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 509 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
510 510
511 QPopupMenu *viewMenu = new QPopupMenu( this ); 511 QPopupMenu *viewMenu = new QPopupMenu( this );
512 QPopupMenu *actionMenu = new QPopupMenu( this ); 512 QPopupMenu *actionMenu = new QPopupMenu( this );
513 QPopupMenu *importMenu = new QPopupMenu( this ); 513 QPopupMenu *importMenu = new QPopupMenu( this );
514 selectFilterMenu = new QPopupMenu( this ); 514 selectFilterMenu = new QPopupMenu( this );
515 selectFilterMenu->setCheckable( true ); 515 selectFilterMenu->setCheckable( true );
516 syncMenu = new QPopupMenu( this ); 516 syncMenu = new QPopupMenu( this );
517 configureAgendaMenu = new QPopupMenu( this ); 517 configureAgendaMenu = new QPopupMenu( this );
518 configureToolBarMenu = new QPopupMenu( this ); 518 configureToolBarMenu = new QPopupMenu( this );
519 QPopupMenu *helpMenu = new QPopupMenu( this ); 519 QPopupMenu *helpMenu = new QPopupMenu( this );
520 if ( KOPrefs::instance()->mShowFullMenu ) { 520 if ( KOPrefs::instance()->mShowFullMenu ) {
521 QMenuBar *menuBar1; 521 QMenuBar *menuBar1;
522 menuBar1 = menuBar(); 522 menuBar1 = menuBar();
523 menuBar1->insertItem( i18n("File"), importMenu ); 523 menuBar1->insertItem( i18n("File"), importMenu );
524 menuBar1->insertItem( i18n("View"), viewMenu ); 524 menuBar1->insertItem( i18n("View"), viewMenu );
525 menuBar1->insertItem( i18n("Actions"), actionMenu ); 525 menuBar1->insertItem( i18n("Actions"), actionMenu );
526 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 526 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
527 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 527 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
528 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 528 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
529 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 529 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
530 menuBar1->insertItem( i18n("Help"), helpMenu ); 530 menuBar1->insertItem( i18n("Help"), helpMenu );
531 } else { 531 } else {
532 QPEMenuBar *menuBar1; 532 QPEMenuBar *menuBar1;
533 menuBar1 = new QPEMenuBar( iconToolBar ); 533 menuBar1 = new QPEMenuBar( iconToolBar );
534 QPopupMenu *menuBar = new QPopupMenu( this ); 534 QPopupMenu *menuBar = new QPopupMenu( this );
535 menuBar1->insertItem( i18n("ME"), menuBar); 535 menuBar1->insertItem( i18n("ME"), menuBar);
536 menuBar->insertItem( i18n("File"), importMenu ); 536 menuBar->insertItem( i18n("File"), importMenu );
537 menuBar->insertItem( i18n("View"), viewMenu ); 537 menuBar->insertItem( i18n("View"), viewMenu );
538 menuBar->insertItem( i18n("Actions"), actionMenu ); 538 menuBar->insertItem( i18n("Actions"), actionMenu );
539 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 539 menuBar->insertItem( i18n("Synchronize"), syncMenu );
540 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 540 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
541 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 541 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
542 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 542 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
543 menuBar->insertItem( i18n("Help"), helpMenu ); 543 menuBar->insertItem( i18n("Help"), helpMenu );
544 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 544 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
545 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 545 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
546 } 546 }
547 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 547 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
548 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) ); 548 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) );
549 549
550 // ****************** 550 // ******************
551 QAction *action; 551 QAction *action;
552 QIconSet icon; 552 QIconSet icon;
553 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 553 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
554 configureToolBarMenu->setCheckable( true ); 554 configureToolBarMenu->setCheckable( true );
555 555
556 QString pathString = ""; 556 QString pathString = "";
557 if ( !p->mToolBarMiniIcons ) { 557 if ( !p->mToolBarMiniIcons ) {
558 if ( QApplication::desktop()->width() < 480 ) 558 if ( QApplication::desktop()->width() < 480 )
559 pathString += "icons16/"; 559 pathString += "icons16/";
560 } else 560 } else
561 pathString += "iconsmini/"; 561 pathString += "iconsmini/";
562 configureAgendaMenu->setCheckable( true ); 562 configureAgendaMenu->setCheckable( true );
563 configureAgendaMenu->insertItem(i18n("Tiny"), 4 ); 563 configureAgendaMenu->insertItem(i18n("Tiny"), 4 );
564 configureAgendaMenu->insertItem(i18n("Small"), 6 ); 564 configureAgendaMenu->insertItem(i18n("Small"), 6 );
565 configureAgendaMenu->insertItem(i18n("Medium"), 8 ); 565 configureAgendaMenu->insertItem(i18n("Medium"), 8 );
566 configureAgendaMenu->insertItem(i18n("Normal"), 10 ); 566 configureAgendaMenu->insertItem(i18n("Normal"), 10 );
567 configureAgendaMenu->insertItem(i18n("Large"), 12 ); 567 configureAgendaMenu->insertItem(i18n("Large"), 12 );
568 configureAgendaMenu->insertItem(i18n("Big"), 14 ); 568 configureAgendaMenu->insertItem(i18n("Big"), 14 );
569 configureAgendaMenu->insertItem(i18n("Bigger"), 16 ); 569 configureAgendaMenu->insertItem(i18n("Bigger"), 16 );
570 configureAgendaMenu->insertItem(i18n("Biggest"), 18 ); 570 configureAgendaMenu->insertItem(i18n("Biggest"), 18 );
571 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 571 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
572 572
573 icon = loadPixmap( pathString + "configure" ); 573 icon = loadPixmap( pathString + "configure" );
574 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 574 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
575 action->addTo( actionMenu ); 575 action->addTo( actionMenu );
576 connect( action, SIGNAL( activated() ), 576 connect( action, SIGNAL( activated() ),
577 mView, SLOT( edit_options() ) ); 577 mView, SLOT( edit_options() ) );
578 actionMenu->insertSeparator(); 578 actionMenu->insertSeparator();
579 579
580 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this ); 580 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this );
581 action->addTo( actionMenu ); 581 action->addTo( actionMenu );
582 connect( action, SIGNAL( activated() ), 582 connect( action, SIGNAL( activated() ),
583 mView, SLOT( undo_delete() ) ); 583 mView, SLOT( undo_delete() ) );
584 actionMenu->insertSeparator(); 584 actionMenu->insertSeparator();
585 585
586 icon = loadPixmap( pathString + "newevent" ); 586 icon = loadPixmap( pathString + "newevent" );
587 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 587 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
588 configureToolBarMenu->insertSeparator(); 588 configureToolBarMenu->insertSeparator();
589 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 589 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
590 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 590 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
591 ne_action->addTo( actionMenu ); 591 ne_action->addTo( actionMenu );
592 connect( ne_action, SIGNAL( activated() ), 592 connect( ne_action, SIGNAL( activated() ),
593 mView, SLOT( newEvent() ) ); 593 mView, SLOT( newEvent() ) );
594 icon = loadPixmap( pathString + "newtodo" ); 594 icon = loadPixmap( pathString + "newtodo" );
595 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 595 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
596 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 596 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
597 nt_action->addTo( actionMenu ); 597 nt_action->addTo( actionMenu );
598 connect( nt_action, SIGNAL( activated() ), 598 connect( nt_action, SIGNAL( activated() ),
599 mView, SLOT( newTodo() ) ); 599 mView, SLOT( newTodo() ) );
600 icon = loadPixmap( pathString + "navi" ); 600 icon = loadPixmap( pathString + "navi" );
601 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 601 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
602 action->addTo( viewMenu ); 602 action->addTo( viewMenu );
603 connect( action, SIGNAL( activated() ), 603 connect( action, SIGNAL( activated() ),
604 mView, SLOT( toggleDateNavigatorWidget() ) ); 604 mView, SLOT( toggleDateNavigatorWidget() ) );
605 icon = loadPixmap( pathString + "filter" ); 605 icon = loadPixmap( pathString + "filter" );
606 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this ); 606 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this );
607 action->addTo( viewMenu ); 607 action->addTo( viewMenu );
608 connect( action, SIGNAL( activated() ), 608 connect( action, SIGNAL( activated() ),
609 mView, SLOT( toggleFilter() ) ); 609 mView, SLOT( toggleFilter() ) );
610 action = new QAction( i18n("Toggle Allday"), i18n("Toggle Allday"), 0, this ); 610 icon = loadPixmap( pathString + "allday" );
611 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this );
611 action->addTo( viewMenu ); 612 action->addTo( viewMenu );
612 connect( action, SIGNAL( activated() ), 613 connect( action, SIGNAL( activated() ),
613 mView, SLOT( toggleAllDaySize() ) ); 614 mView, SLOT( toggleAllDaySize() ) );
614 615
615 viewMenu->insertSeparator(); 616 viewMenu->insertSeparator();
616 icon = loadPixmap( pathString + "picker" ); 617 icon = loadPixmap( pathString + "picker" );
617 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this ); 618 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
618 action->addTo( viewMenu ); 619 action->addTo( viewMenu );
619 connect( action, SIGNAL( activated() ), 620 connect( action, SIGNAL( activated() ),
620 mView, SLOT( showDatePicker() ) ); 621 mView, SLOT( showDatePicker() ) );
621 action->addTo( iconToolBar ); 622 action->addTo( iconToolBar );
622 viewMenu->insertSeparator(); 623 viewMenu->insertSeparator();
623 icon = loadPixmap( pathString + "list" ); 624 icon = loadPixmap( pathString + "list" );
624 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 625 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
625 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 626 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
626 showlist_action->addTo( viewMenu ); 627 showlist_action->addTo( viewMenu );
627 connect( showlist_action, SIGNAL( activated() ), 628 connect( showlist_action, SIGNAL( activated() ),
628 mView->viewManager(), SLOT( showListView() ) ); 629 mView->viewManager(), SLOT( showListView() ) );
629 630
630 631
631 icon = loadPixmap( pathString + "day" ); 632 icon = loadPixmap( pathString + "day" );
632 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 633 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
633 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); 634 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this );
634 day1_action->addTo( viewMenu ); 635 day1_action->addTo( viewMenu );
635 // action->addTo( toolBar ); 636 // action->addTo( toolBar );
636 connect( day1_action, SIGNAL( activated() ), 637 connect( day1_action, SIGNAL( activated() ),
637 mView->viewManager(), SLOT( showDayView() ) ); 638 mView->viewManager(), SLOT( showDayView() ) );
638 639
639 icon = loadPixmap( pathString + "workweek" ); 640 icon = loadPixmap( pathString + "workweek" );
640 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); 641 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 );
641 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); 642 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this );
642 day5_action->addTo( viewMenu ); 643 day5_action->addTo( viewMenu );
643 connect( day5_action, SIGNAL( activated() ), 644 connect( day5_action, SIGNAL( activated() ),
644 mView->viewManager(), SLOT( showWorkWeekView() ) ); 645 mView->viewManager(), SLOT( showWorkWeekView() ) );
645 646
646 icon = loadPixmap( pathString + "week" ); 647 icon = loadPixmap( pathString + "week" );
647 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); 648 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 );
648 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); 649 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this );
649 day7_action->addTo( viewMenu ); 650 day7_action->addTo( viewMenu );
650 connect( day7_action, SIGNAL( activated() ), 651 connect( day7_action, SIGNAL( activated() ),
651 mView->viewManager(), SLOT( showWeekView() ) ); 652 mView->viewManager(), SLOT( showWeekView() ) );
652 653
653 icon = loadPixmap( pathString + "month" ); 654 icon = loadPixmap( pathString + "month" );
654 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); 655 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 );
655 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); 656 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this );
656 month_action->addTo( viewMenu ); 657 month_action->addTo( viewMenu );
657 connect( month_action, SIGNAL( activated() ), 658 connect( month_action, SIGNAL( activated() ),
658 mView->viewManager(), SLOT( showMonthView() ) ); 659 mView->viewManager(), SLOT( showMonthView() ) );
659 660
660 icon = loadPixmap( pathString + "todo" ); 661 icon = loadPixmap( pathString + "todo" );
661 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); 662 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 );
662 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); 663 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this );
663 todoview_action->addTo( viewMenu ); 664 todoview_action->addTo( viewMenu );
664 connect( todoview_action, SIGNAL( activated() ), 665 connect( todoview_action, SIGNAL( activated() ),
665 mView->viewManager(), SLOT( showTodoView() ) ); 666 mView->viewManager(), SLOT( showTodoView() ) );
666 667
667 icon = loadPixmap( pathString + "journal" ); 668 icon = loadPixmap( pathString + "journal" );
668 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 669 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
669 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 670 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
670 viewjournal_action->addTo( viewMenu ); 671 viewjournal_action->addTo( viewMenu );
671 connect( viewjournal_action, SIGNAL( activated() ), 672 connect( viewjournal_action, SIGNAL( activated() ),
672 mView->viewManager(), SLOT( showJournalView() ) ); 673 mView->viewManager(), SLOT( showJournalView() ) );
673 674
674 icon = loadPixmap( pathString + "xdays" ); 675 icon = loadPixmap( pathString + "xdays" );
675 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); 676 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 );
676 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 677 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
677 xdays_action->addTo( viewMenu ); 678 xdays_action->addTo( viewMenu );
678 connect( xdays_action, SIGNAL( activated() ), 679 connect( xdays_action, SIGNAL( activated() ),
679 mView->viewManager(), SLOT( showNextXView() ) ); 680 mView->viewManager(), SLOT( showNextXView() ) );
680 681
681 icon = loadPixmap( pathString + "whatsnext" ); 682 icon = loadPixmap( pathString + "whatsnext" );
682 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); 683 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 );
683 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 684 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
684 whatsnext_action->addTo( viewMenu ); 685 whatsnext_action->addTo( viewMenu );
685 connect( whatsnext_action, SIGNAL( activated() ), 686 connect( whatsnext_action, SIGNAL( activated() ),
686 mView->viewManager(), SLOT( showWhatsNextView() ) ); 687 mView->viewManager(), SLOT( showWhatsNextView() ) );
687 688
688#if 0 689#if 0
689 action = new QAction( "view_timespan", "Time Span", 0, this ); 690 action = new QAction( "view_timespan", "Time Span", 0, this );
690 action->addTo( viewMenu ); 691 action->addTo( viewMenu );
691 connect( action, SIGNAL( activated() ), 692 connect( action, SIGNAL( activated() ),
692 mView->viewManager(), SLOT( showTimeSpanView() ) ); 693 mView->viewManager(), SLOT( showTimeSpanView() ) );
693#endif 694#endif
694 695
695 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, 696 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0,
696 this ); 697 this );
697 mNewSubTodoAction->addTo( actionMenu ); 698 mNewSubTodoAction->addTo( actionMenu );
698 connect( mNewSubTodoAction, SIGNAL( activated() ), 699 connect( mNewSubTodoAction, SIGNAL( activated() ),
699 mView, SLOT( newSubTodo() ) ); 700 mView, SLOT( newSubTodo() ) );
700 701
701 actionMenu->insertSeparator(); 702 actionMenu->insertSeparator();
702 703
703 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); 704 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
704 mShowAction->addTo( actionMenu ); 705 mShowAction->addTo( actionMenu );
705 connect( mShowAction, SIGNAL( activated() ), 706 connect( mShowAction, SIGNAL( activated() ),
706 mView, SLOT( showIncidence() ) ); 707 mView, SLOT( showIncidence() ) );
707 708
708 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 709 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
709 mEditAction->addTo( actionMenu ); 710 mEditAction->addTo( actionMenu );
710 connect( mEditAction, SIGNAL( activated() ), 711 connect( mEditAction, SIGNAL( activated() ),
711 mView, SLOT( editIncidence() ) ); 712 mView, SLOT( editIncidence() ) );
712 713
713 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 714 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
714 mDeleteAction->addTo( actionMenu ); 715 mDeleteAction->addTo( actionMenu );
715 connect( mDeleteAction, SIGNAL( activated() ), 716 connect( mDeleteAction, SIGNAL( activated() ),
716 mView, SLOT( deleteIncidence() ) ); 717 mView, SLOT( deleteIncidence() ) );
717 718
718 719
719 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this ); 720 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
720 mCloneAction->addTo( actionMenu ); 721 mCloneAction->addTo( actionMenu );
721 connect( mCloneAction, SIGNAL( activated() ), 722 connect( mCloneAction, SIGNAL( activated() ),
722 mView, SLOT( cloneIncidence() ) ); 723 mView, SLOT( cloneIncidence() ) );
723 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this ); 724 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
724 mMoveAction->addTo( actionMenu ); 725 mMoveAction->addTo( actionMenu );
725 connect( mMoveAction, SIGNAL( activated() ), 726 connect( mMoveAction, SIGNAL( activated() ),
726 mView, SLOT( moveIncidence() ) ); 727 mView, SLOT( moveIncidence() ) );
727 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this ); 728 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
728 mBeamAction->addTo( actionMenu ); 729 mBeamAction->addTo( actionMenu );
729 connect( mBeamAction, SIGNAL( activated() ), 730 connect( mBeamAction, SIGNAL( activated() ),
730 mView, SLOT( beamIncidence() ) ); 731 mView, SLOT( beamIncidence() ) );
731 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this ); 732 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
732 mCancelAction->addTo( actionMenu ); 733 mCancelAction->addTo( actionMenu );
733 connect( mCancelAction, SIGNAL( activated() ), 734 connect( mCancelAction, SIGNAL( activated() ),
734 mView, SLOT( toggleCancelIncidence() ) ); 735 mView, SLOT( toggleCancelIncidence() ) );
735 736
736 actionMenu->insertSeparator(); 737 actionMenu->insertSeparator();
737 738
738 action = new QAction( "purge_completed", i18n("Purge Completed"), 0, 739 action = new QAction( "purge_completed", i18n("Purge Completed"), 0,
739 this ); 740 this );
740 action->addTo( actionMenu ); 741 action->addTo( actionMenu );
741 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); 742 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
742 743
743 icon = loadPixmap( pathString + "search" ); 744 icon = loadPixmap( pathString + "search" );
744 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 745 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
745 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); 746 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4);
746 search_action->addTo( actionMenu ); 747 search_action->addTo( actionMenu );
747 connect( search_action, SIGNAL( activated() ), 748 connect( search_action, SIGNAL( activated() ),
748 mView->dialogManager(), SLOT( showSearchDialog() ) ); 749 mView->dialogManager(), SLOT( showSearchDialog() ) );
749 750
750 icon = loadPixmap( pathString + "today" ); 751 icon = loadPixmap( pathString + "today" );
751 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); 752 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130);
752 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 753 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
753 today_action->addTo( actionMenu ); 754 today_action->addTo( actionMenu );
754 connect( today_action, SIGNAL( activated() ), 755 connect( today_action, SIGNAL( activated() ),
755 mView, SLOT( goToday() ) ); 756 mView, SLOT( goToday() ) );
756 757
757 if ( KOPrefs::instance()->mShowFullMenu ) { 758 if ( KOPrefs::instance()->mShowFullMenu ) {
758 actionMenu->insertSeparator(); 759 actionMenu->insertSeparator();
759 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); 760 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
760 761
761 } 762 }
762 // actionMenu->insertSeparator(); 763 // actionMenu->insertSeparator();
763 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, 764 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0,
764 this ); 765 this );
765 action->addTo( importMenu ); 766 action->addTo( importMenu );
766 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); 767 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) );
767 action = new QAction( "import_quick", i18n("Import last file"), 0, 768 action = new QAction( "import_quick", i18n("Import last file"), 0,
768 this ); 769 this );
769 action->addTo( importMenu ); 770 action->addTo( importMenu );
770 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); 771 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) );
771 importMenu->insertSeparator(); 772 importMenu->insertSeparator();
772 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, 773 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0,
773 this ); 774 this );
774 action->addTo( importMenu ); 775 action->addTo( importMenu );
775 connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); 776 connect( action, SIGNAL( activated() ), SLOT( importBday() ) );
776#ifndef DESKTOP_VERSION 777#ifndef DESKTOP_VERSION
777 importMenu->insertSeparator(); 778 importMenu->insertSeparator();
778 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, 779 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0,
779 this ); 780 this );
780 action->addTo( importMenu ); 781 action->addTo( importMenu );
781 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); 782 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) );
782#else 783#else
783#ifdef _OL_IMPORT_ 784#ifdef _OL_IMPORT_
784 importMenu->insertSeparator(); 785 importMenu->insertSeparator();
785 action = new QAction( "import_ol", i18n("Import from OL"), 0, 786 action = new QAction( "import_ol", i18n("Import from OL"), 0,
786 this ); 787 this );
787 action->addTo( importMenu ); 788 action->addTo( importMenu );
788 connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); 789 connect( action, SIGNAL( activated() ), SLOT( importOL() ) );
789#endif 790#endif
790#endif 791#endif
791 792
792 importMenu->insertSeparator(); 793 importMenu->insertSeparator();
793 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, 794 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0,
794 this ); 795 this );
795 action->addTo( importMenu ); 796 action->addTo( importMenu );
796 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); 797 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) );
797 798
798 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, 799 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0,
799 this ); 800 this );
800 action->addTo( importMenu ); 801 action->addTo( importMenu );
801 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); 802 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) );
802 803
803 importMenu->insertSeparator(); 804 importMenu->insertSeparator();
804 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, 805 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0,
805 this ); 806 this );
806 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); 807 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) );
807 808
808 809
809 //LR 810 //LR
810 QPopupMenu *ex2phone = new QPopupMenu( this ); 811 QPopupMenu *ex2phone = new QPopupMenu( this );
811 ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 812 ex2phone->insertItem(i18n("Complete calendar..."), 1 );
812 ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 813 ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
813 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); 814 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) );
814 importMenu->insertItem( i18n("Export to phone"), ex2phone ); 815 importMenu->insertItem( i18n("Export to phone"), ex2phone );
815 816
816 importMenu->insertSeparator(); 817 importMenu->insertSeparator();
817 action = new QAction( "manage cat", i18n("Manage new categories..."), 0, 818 action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
818 this ); 819 this );
819 action->addTo( importMenu ); 820 action->addTo( importMenu );
820 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); 821 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
821#ifndef DESKTOP_VERSION 822#ifndef DESKTOP_VERSION
822 importMenu->insertSeparator(); 823 importMenu->insertSeparator();
823 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0, 824 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0,
824 this ); 825 this );
825 brAction->addTo( importMenu ); 826 brAction->addTo( importMenu );
826 brAction->setToggleAction (true ) ; 827 brAction->setToggleAction (true ) ;
827 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); 828 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) );
828 829
829 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, 830 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0,
830 this ); 831 this );
831 action->addTo( importMenu ); 832 action->addTo( importMenu );
832 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); 833 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) );
833 834
834 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, 835 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0,
835 this ); 836 this );
836 action->addTo( importMenu ); 837 action->addTo( importMenu );
837 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); 838 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) );
838#else 839#else
839 importMenu->insertSeparator(); 840 importMenu->insertSeparator();
840 icon = loadPixmap( pathString + "print" ); 841 icon = loadPixmap( pathString + "print" );
841 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); 842 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this );
842 action->addTo( importMenu ); 843 action->addTo( importMenu );
843 connect( action, SIGNAL( activated() ), 844 connect( action, SIGNAL( activated() ),
844 this, SLOT( printCal() ) ); 845 this, SLOT( printCal() ) );
845 846
846 icon = loadPixmap( pathString + "print" ); 847 icon = loadPixmap( pathString + "print" );
847 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); 848 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this );
848 action->addTo( importMenu ); 849 action->addTo( importMenu );
849 connect( action, SIGNAL( activated() ), 850 connect( action, SIGNAL( activated() ),
850 this, SLOT( printSel() ) ); 851 this, SLOT( printSel() ) );
851 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this ); 852 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this );
852 action->addTo( importMenu ); 853 action->addTo( importMenu );
853 connect( action, SIGNAL( activated() ), 854 connect( action, SIGNAL( activated() ),
854 mView->viewManager(), SIGNAL( printWNV() ) ); 855 mView->viewManager(), SIGNAL( printWNV() ) );
855#endif 856#endif
856 importMenu->insertSeparator(); 857 importMenu->insertSeparator();
857 action = new QAction( "beam all", i18n("Save"), 0, 858 action = new QAction( "beam all", i18n("Save"), 0,
858 this ); 859 this );
859 action->addTo( importMenu ); 860 action->addTo( importMenu );
860 connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); 861 connect( action, SIGNAL( activated() ), this, SLOT( save() ) );
861 action = new QAction( "beam all", i18n("Exit (+save)"), 0, 862 action = new QAction( "beam all", i18n("Exit (+save)"), 0,
862 this ); 863 this );
863 action->addTo( importMenu ); 864 action->addTo( importMenu );
864 connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); 865 connect( action, SIGNAL( activated() ), this, SLOT( close() ) );
865 866
866 //menuBar->insertItem( "Configure",configureMenu ); 867 //menuBar->insertItem( "Configure",configureMenu );