summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-06-13 07:32:41 (UTC)
committer zautrix <zautrix>2005-06-13 07:32:41 (UTC)
commit2be8214908c52298ba79c8058d340edca5a8b417 (patch) (unidiff)
tree35c2775e9c00c2fe9c5616b3123d3dab62fad983 /korganizer
parentc4ebf56feb36302b61b9c5ca6af97626812427b8 (diff)
downloadkdepimpi-2be8214908c52298ba79c8058d340edca5a8b417.zip
kdepimpi-2be8214908c52298ba79c8058d340edca5a8b417.tar.gz
kdepimpi-2be8214908c52298ba79c8058d340edca5a8b417.tar.bz2
fixes
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp29
-rw-r--r--korganizer/koprefs.cpp6
-rw-r--r--korganizer/mainwindow.cpp13
3 files changed, 35 insertions, 13 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 1024b4e..b3686aa 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -858,3541 +858,3562 @@ void CalendarView::addAlarm(const QDateTime &qdt, const QString &noti )
858 //qDebug("Alarm timer started with secs: %d ", sec); 858 //qDebug("Alarm timer started with secs: %d ", sec);
859 mAlarmTimer->start( sec *1000 , true ); 859 mAlarmTimer->start( sec *1000 , true );
860 860
861} 861}
862// called by mRecheckAlarmTimer to get next alarm 862// called by mRecheckAlarmTimer to get next alarm
863// we need this, because a QTimer has only a max range of 25 days 863// we need this, because a QTimer has only a max range of 25 days
864void CalendarView::recheckTimerAlarm() 864void CalendarView::recheckTimerAlarm()
865{ 865{
866 mAlarmTimer->stop(); 866 mAlarmTimer->stop();
867 mRecheckAlarmTimer->stop(); 867 mRecheckAlarmTimer->stop();
868 mCalendar->checkAlarmForIncidence( 0, true ); 868 mCalendar->checkAlarmForIncidence( 0, true );
869} 869}
870void CalendarView::removeAlarm(const QDateTime &qdt, const QString &noti ) 870void CalendarView::removeAlarm(const QDateTime &qdt, const QString &noti )
871{ 871{
872 //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); 872 //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() );
873 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { 873 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) {
874#ifndef DESKTOP_VERSION 874#ifndef DESKTOP_VERSION
875 AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() ); 875 AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() );
876#endif 876#endif
877 return; 877 return;
878 } 878 }
879 mAlarmTimer->stop(); 879 mAlarmTimer->stop();
880} 880}
881void CalendarView::selectWeekNum ( int num ) 881void CalendarView::selectWeekNum ( int num )
882{ 882{
883 dateNavigator()->blockSignals( true ); 883 dateNavigator()->blockSignals( true );
884 dateNavigator()->selectWeek( num ); 884 dateNavigator()->selectWeek( num );
885 dateNavigator()->blockSignals( false ); 885 dateNavigator()->blockSignals( false );
886 mViewManager->showWeekView(); 886 mViewManager->showWeekView();
887} 887}
888KOViewManager *CalendarView::viewManager() 888KOViewManager *CalendarView::viewManager()
889{ 889{
890 return mViewManager; 890 return mViewManager;
891} 891}
892 892
893KODialogManager *CalendarView::dialogManager() 893KODialogManager *CalendarView::dialogManager()
894{ 894{
895 return mDialogManager; 895 return mDialogManager;
896} 896}
897 897
898QDate CalendarView::startDate() 898QDate CalendarView::startDate()
899{ 899{
900 DateList dates = mNavigator->selectedDates(); 900 DateList dates = mNavigator->selectedDates();
901 901
902 return dates.first(); 902 return dates.first();
903} 903}
904 904
905QDate CalendarView::endDate() 905QDate CalendarView::endDate()
906{ 906{
907 DateList dates = mNavigator->selectedDates(); 907 DateList dates = mNavigator->selectedDates();
908 908
909 return dates.last(); 909 return dates.last();
910} 910}
911 911
912 912
913void CalendarView::createPrinter() 913void CalendarView::createPrinter()
914{ 914{
915#ifndef KORG_NOPRINTER 915#ifndef KORG_NOPRINTER
916 if (!mCalPrinter) { 916 if (!mCalPrinter) {
917 mCalPrinter = new CalPrinter(this, mCalendar); 917 mCalPrinter = new CalPrinter(this, mCalendar);
918 connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig())); 918 connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig()));
919 } 919 }
920#endif 920#endif
921} 921}
922 922
923 923
924//KOPrefs::instance()->mWriteBackFile 924//KOPrefs::instance()->mWriteBackFile
925//KOPrefs::instance()->mWriteBackExistingOnly 925//KOPrefs::instance()->mWriteBackExistingOnly
926 926
927// 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); 927// 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
928// 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); 928// 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
929// 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); 929// 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
930// 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); 930// 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
931// 4 syncPrefsGroup->addRadio(i18n("Force take local entry always")); 931// 4 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
932// 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); 932// 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
933 933
934int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full ) 934int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full )
935{ 935{
936 936
937 // 0 equal 937 // 0 equal
938 // 1 take local 938 // 1 take local
939 // 2 take remote 939 // 2 take remote
940 // 3 cancel 940 // 3 cancel
941 QDateTime lastSync = mLastCalendarSync; 941 QDateTime lastSync = mLastCalendarSync;
942 QDateTime localMod = local->lastModified(); 942 QDateTime localMod = local->lastModified();
943 QDateTime remoteMod = remote->lastModified(); 943 QDateTime remoteMod = remote->lastModified();
944 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 944 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
945 bool remCh, locCh; 945 bool remCh, locCh;
946 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); 946 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
947 //if ( remCh ) 947 //if ( remCh )
948 //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); 948 //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() );
949 locCh = ( localMod > mLastCalendarSync ); 949 locCh = ( localMod > mLastCalendarSync );
950 if ( !remCh && ! locCh ) { 950 if ( !remCh && ! locCh ) {
951 //qDebug("both not changed "); 951 //qDebug("both not changed ");
952 lastSync = localMod.addDays(1); 952 lastSync = localMod.addDays(1);
953 if ( mode <= SYNC_PREF_ASK ) 953 if ( mode <= SYNC_PREF_ASK )
954 return 0; 954 return 0;
955 } else { 955 } else {
956 if ( locCh ) { 956 if ( locCh ) {
957 //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1()); 957 //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1());
958 lastSync = localMod.addDays( -1 ); 958 lastSync = localMod.addDays( -1 );
959 if ( !remCh ) 959 if ( !remCh )
960 remoteMod = ( lastSync.addDays( -1 ) ); 960 remoteMod = ( lastSync.addDays( -1 ) );
961 } else { 961 } else {
962 //qDebug(" not loc changed "); 962 //qDebug(" not loc changed ");
963 lastSync = localMod.addDays( 1 ); 963 lastSync = localMod.addDays( 1 );
964 if ( remCh ) 964 if ( remCh )
965 remoteMod =( lastSync.addDays( 1 ) ); 965 remoteMod =( lastSync.addDays( 1 ) );
966 966
967 } 967 }
968 } 968 }
969 full = true; 969 full = true;
970 if ( mode < SYNC_PREF_ASK ) 970 if ( mode < SYNC_PREF_ASK )
971 mode = SYNC_PREF_ASK; 971 mode = SYNC_PREF_ASK;
972 } else { 972 } else {
973 if ( localMod == remoteMod ) 973 if ( localMod == remoteMod )
974 // if ( local->revision() == remote->revision() ) 974 // if ( local->revision() == remote->revision() )
975 return 0; 975 return 0;
976 976
977 } 977 }
978 // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() ); 978 // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() );
979 979
980 //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision()); 980 //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision());
981 //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() ); 981 //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() );
982 //full = true; //debug only 982 //full = true; //debug only
983 if ( full ) { 983 if ( full ) {
984 bool equ = false; 984 bool equ = false;
985 if ( local->typeID() == eventID ) { 985 if ( local->typeID() == eventID ) {
986 equ = (*((Event*) local) == *((Event*) remote)); 986 equ = (*((Event*) local) == *((Event*) remote));
987 } 987 }
988 else if ( local->typeID() == todoID ) 988 else if ( local->typeID() == todoID )
989 equ = (*((Todo*) local) == (*(Todo*) remote)); 989 equ = (*((Todo*) local) == (*(Todo*) remote));
990 else if ( local->typeID() == journalID ) 990 else if ( local->typeID() == journalID )
991 equ = (*((Journal*) local) == *((Journal*) remote)); 991 equ = (*((Journal*) local) == *((Journal*) remote));
992 if ( equ ) { 992 if ( equ ) {
993 //qDebug("equal "); 993 //qDebug("equal ");
994 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 994 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
995 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); 995 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) );
996 } 996 }
997 if ( mode < SYNC_PREF_FORCE_LOCAL ) 997 if ( mode < SYNC_PREF_FORCE_LOCAL )
998 return 0; 998 return 0;
999 999
1000 }//else //debug only 1000 }//else //debug only
1001 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); 1001 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1());
1002 } 1002 }
1003 int result; 1003 int result;
1004 bool localIsNew; 1004 bool localIsNew;
1005 //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() ); 1005 //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() );
1006 1006
1007 1007
1008 // ************************************************ 1008 // ************************************************
1009 // ************************************************ 1009 // ************************************************
1010 // ************************************************ 1010 // ************************************************
1011 // We may have that lastSync > remoteMod AND lastSync > localMod 1011 // We may have that lastSync > remoteMod AND lastSync > localMod
1012 // BUT remoteMod != localMod 1012 // BUT remoteMod != localMod
1013 1013
1014 1014
1015 if ( full && mode < SYNC_PREF_NEWEST ) 1015 if ( full && mode < SYNC_PREF_NEWEST )
1016 mode = SYNC_PREF_ASK; 1016 mode = SYNC_PREF_ASK;
1017 1017
1018 switch( mode ) { 1018 switch( mode ) {
1019 case SYNC_PREF_LOCAL: 1019 case SYNC_PREF_LOCAL:
1020 if ( lastSync > remoteMod ) 1020 if ( lastSync > remoteMod )
1021 return 1; 1021 return 1;
1022 if ( lastSync > localMod ) 1022 if ( lastSync > localMod )
1023 return 2; 1023 return 2;
1024 return 1; 1024 return 1;
1025 break; 1025 break;
1026 case SYNC_PREF_REMOTE: 1026 case SYNC_PREF_REMOTE:
1027 if ( lastSync > localMod ) 1027 if ( lastSync > localMod )
1028 return 2; 1028 return 2;
1029 if ( lastSync > remoteMod ) 1029 if ( lastSync > remoteMod )
1030 return 1; 1030 return 1;
1031 return 2; 1031 return 2;
1032 break; 1032 break;
1033 case SYNC_PREF_NEWEST: 1033 case SYNC_PREF_NEWEST:
1034 if ( localMod >= remoteMod ) 1034 if ( localMod >= remoteMod )
1035 return 1; 1035 return 1;
1036 else 1036 else
1037 return 2; 1037 return 2;
1038 break; 1038 break;
1039 case SYNC_PREF_ASK: 1039 case SYNC_PREF_ASK:
1040 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 1040 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
1041 if ( lastSync > remoteMod && lastSync > localMod) 1041 if ( lastSync > remoteMod && lastSync > localMod)
1042 return 0; 1042 return 0;
1043 if ( lastSync > remoteMod ) 1043 if ( lastSync > remoteMod )
1044 return 1; 1044 return 1;
1045 if ( lastSync > localMod ) 1045 if ( lastSync > localMod )
1046 return 2; 1046 return 2;
1047 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 1047 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
1048 localIsNew = localMod >= remoteMod; 1048 localIsNew = localMod >= remoteMod;
1049 if ( localIsNew ) 1049 if ( localIsNew )
1050 getEventViewerDialog()->setColorMode( 1 ); 1050 getEventViewerDialog()->setColorMode( 1 );
1051 else 1051 else
1052 getEventViewerDialog()->setColorMode( 2 ); 1052 getEventViewerDialog()->setColorMode( 2 );
1053 getEventViewerDialog()->setIncidence(local); 1053 getEventViewerDialog()->setIncidence(local);
1054 if ( localIsNew ) 1054 if ( localIsNew )
1055 getEventViewerDialog()->setColorMode( 2 ); 1055 getEventViewerDialog()->setColorMode( 2 );
1056 else 1056 else
1057 getEventViewerDialog()->setColorMode( 1 ); 1057 getEventViewerDialog()->setColorMode( 1 );
1058 getEventViewerDialog()->addIncidence(remote); 1058 getEventViewerDialog()->addIncidence(remote);
1059 getEventViewerDialog()->setColorMode( 0 ); 1059 getEventViewerDialog()->setColorMode( 0 );
1060 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); 1060 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() );
1061 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!")); 1061 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!"));
1062 getEventViewerDialog()->showMe(); 1062 getEventViewerDialog()->showMe();
1063 result = getEventViewerDialog()->executeS( localIsNew ); 1063 result = getEventViewerDialog()->executeS( localIsNew );
1064 return result; 1064 return result;
1065 1065
1066 break; 1066 break;
1067 case SYNC_PREF_FORCE_LOCAL: 1067 case SYNC_PREF_FORCE_LOCAL:
1068 return 1; 1068 return 1;
1069 break; 1069 break;
1070 case SYNC_PREF_FORCE_REMOTE: 1070 case SYNC_PREF_FORCE_REMOTE:
1071 return 2; 1071 return 2;
1072 break; 1072 break;
1073 1073
1074 default: 1074 default:
1075 // SYNC_PREF_TAKE_BOTH not implemented 1075 // SYNC_PREF_TAKE_BOTH not implemented
1076 break; 1076 break;
1077 } 1077 }
1078 return 0; 1078 return 0;
1079} 1079}
1080Event* CalendarView::getLastSyncEvent() 1080Event* CalendarView::getLastSyncEvent()
1081{ 1081{
1082 Event* lse; 1082 Event* lse;
1083 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 1083 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
1084 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice ); 1084 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice );
1085 if (!lse) { 1085 if (!lse) {
1086 lse = new Event(); 1086 lse = new Event();
1087 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice ); 1087 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice );
1088 QString sum = ""; 1088 QString sum = "";
1089 if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) 1089 if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) )
1090 sum = "E: "; 1090 sum = "E: ";
1091 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); 1091 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event"));
1092 lse->setDtStart( mLastCalendarSync ); 1092 lse->setDtStart( mLastCalendarSync );
1093 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 1093 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
1094 lse->setCategories( i18n("SyncEvent") ); 1094 lse->setCategories( i18n("SyncEvent") );
1095 lse->setReadOnly( true ); 1095 lse->setReadOnly( true );
1096 mCalendar->addEvent( lse ); 1096 mCalendar->addEvent( lse );
1097 } 1097 }
1098 1098
1099 return lse; 1099 return lse;
1100 1100
1101} 1101}
1102 1102
1103// we check, if the to delete event has a id for a profile 1103// we check, if the to delete event has a id for a profile
1104// if yes, we set this id in the profile to delete 1104// if yes, we set this id in the profile to delete
1105void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ) 1105void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete )
1106{ 1106{
1107 if ( lastSync.count() == 0 ) { 1107 if ( lastSync.count() == 0 ) {
1108 //qDebug(" lastSync.count() == 0"); 1108 //qDebug(" lastSync.count() == 0");
1109 return; 1109 return;
1110 } 1110 }
1111 if ( toDelete->typeID() == journalID ) 1111 if ( toDelete->typeID() == journalID )
1112 return; 1112 return;
1113 1113
1114 Event* eve = lastSync.first(); 1114 Event* eve = lastSync.first();
1115 1115
1116 while ( eve ) { 1116 while ( eve ) {
1117 QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name 1117 QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name
1118 if ( !id.isEmpty() ) { 1118 if ( !id.isEmpty() ) {
1119 QString des = eve->description(); 1119 QString des = eve->description();
1120 QString pref = "e"; 1120 QString pref = "e";
1121 if ( toDelete->typeID() == todoID ) 1121 if ( toDelete->typeID() == todoID )
1122 pref = "t"; 1122 pref = "t";
1123 des += pref+ id + ","; 1123 des += pref+ id + ",";
1124 eve->setReadOnly( false ); 1124 eve->setReadOnly( false );
1125 eve->setDescription( des ); 1125 eve->setDescription( des );
1126 //qDebug("setdes %s ", des.latin1()); 1126 //qDebug("setdes %s ", des.latin1());
1127 eve->setReadOnly( true ); 1127 eve->setReadOnly( true );
1128 } 1128 }
1129 eve = lastSync.next(); 1129 eve = lastSync.next();
1130 } 1130 }
1131 1131
1132} 1132}
1133void CalendarView::checkExternalId( Incidence * inc ) 1133void CalendarView::checkExternalId( Incidence * inc )
1134{ 1134{
1135 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ; 1135 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ;
1136 checkExternSyncEvent( lastSync, inc ); 1136 checkExternSyncEvent( lastSync, inc );
1137 1137
1138} 1138}
1139bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) 1139bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode )
1140{ 1140{
1141 bool syncOK = true; 1141 bool syncOK = true;
1142 int addedEvent = 0; 1142 int addedEvent = 0;
1143 int addedEventR = 0; 1143 int addedEventR = 0;
1144 int deletedEventR = 0; 1144 int deletedEventR = 0;
1145 int deletedEventL = 0; 1145 int deletedEventL = 0;
1146 int changedLocal = 0; 1146 int changedLocal = 0;
1147 int changedRemote = 0; 1147 int changedRemote = 0;
1148 int filteredIN = 0; 1148 int filteredIN = 0;
1149 int filteredOUT = 0; 1149 int filteredOUT = 0;
1150 //QPtrList<Event> el = local->rawEvents(); 1150 //QPtrList<Event> el = local->rawEvents();
1151 Event* eventR; 1151 Event* eventR;
1152 QString uid; 1152 QString uid;
1153 int take; 1153 int take;
1154 Event* eventL; 1154 Event* eventL;
1155 Event* eventRSync; 1155 Event* eventRSync;
1156 Event* eventLSync; 1156 Event* eventLSync;
1157 clearAllViews(); 1157 clearAllViews();
1158 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); 1158 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents();
1159 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); 1159 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents();
1160 bool fullDateRange = false; 1160 bool fullDateRange = false;
1161 local->resetTempSyncStat(); 1161 local->resetTempSyncStat();
1162 mLastCalendarSync = QDateTime::currentDateTime(); 1162 mLastCalendarSync = QDateTime::currentDateTime();
1163 if ( mSyncManager->syncWithDesktop() ) { 1163 if ( mSyncManager->syncWithDesktop() ) {
1164 remote->resetPilotStat(1); 1164 remote->resetPilotStat(1);
1165 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 1165 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
1166 mLastCalendarSync = KSyncManager::mRequestedSyncEvent; 1166 mLastCalendarSync = KSyncManager::mRequestedSyncEvent;
1167 qDebug("KO: using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() ); 1167 qDebug("KO: using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() );
1168 } else { 1168 } else {
1169 qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime "); 1169 qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime ");
1170 } 1170 }
1171 } 1171 }
1172 QDateTime modifiedCalendar = mLastCalendarSync; 1172 QDateTime modifiedCalendar = mLastCalendarSync;
1173 eventLSync = getLastSyncEvent(); 1173 eventLSync = getLastSyncEvent();
1174 eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); 1174 eventR = remote->event("last-syncEvent-"+mCurrentSyncName );
1175 if ( eventR ) { 1175 if ( eventR ) {
1176 eventRSync = (Event*) eventR->clone(); 1176 eventRSync = (Event*) eventR->clone();
1177 remote->deleteEvent(eventR ); 1177 remote->deleteEvent(eventR );
1178 1178
1179 } else { 1179 } else {
1180 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) { 1180 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) {
1181 eventRSync = (Event*)eventLSync->clone(); 1181 eventRSync = (Event*)eventLSync->clone();
1182 } else { 1182 } else {
1183 fullDateRange = true; 1183 fullDateRange = true;
1184 eventRSync = new Event(); 1184 eventRSync = new Event();
1185 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); 1185 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event"));
1186 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); 1186 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName );
1187 eventRSync->setDtStart( mLastCalendarSync ); 1187 eventRSync->setDtStart( mLastCalendarSync );
1188 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 1188 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
1189 eventRSync->setCategories( i18n("SyncEvent") ); 1189 eventRSync->setCategories( i18n("SyncEvent") );
1190 } 1190 }
1191 } 1191 }
1192 if ( eventLSync->dtStart() == mLastCalendarSync ) 1192 if ( eventLSync->dtStart() == mLastCalendarSync )
1193 fullDateRange = true; 1193 fullDateRange = true;
1194 1194
1195 if ( ! fullDateRange ) { 1195 if ( ! fullDateRange ) {
1196 if ( eventLSync->dtStart() != eventRSync->dtStart() ) { 1196 if ( eventLSync->dtStart() != eventRSync->dtStart() ) {
1197 1197
1198 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); 1198 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() );
1199 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); 1199 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec());
1200 fullDateRange = true; 1200 fullDateRange = true;
1201 } 1201 }
1202 } 1202 }
1203 if ( mSyncManager->syncWithDesktop() ) { 1203 if ( mSyncManager->syncWithDesktop() ) {
1204 fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync ); 1204 fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync );
1205 } 1205 }
1206 if ( fullDateRange ) 1206 if ( fullDateRange )
1207 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); 1207 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365);
1208 else 1208 else
1209 mLastCalendarSync = eventLSync->dtStart(); 1209 mLastCalendarSync = eventLSync->dtStart();
1210 // for resyncing if own file has changed 1210 // for resyncing if own file has changed
1211 if ( mCurrentSyncDevice == "deleteaftersync" ) { 1211 if ( mCurrentSyncDevice == "deleteaftersync" ) {
1212 mLastCalendarSync = loadedFileVersion; 1212 mLastCalendarSync = loadedFileVersion;
1213 //qDebug("setting mLastCalendarSync "); 1213 //qDebug("setting mLastCalendarSync ");
1214 } 1214 }
1215 //qDebug("*************************** "); 1215 //qDebug("*************************** ");
1216 qDebug("KO: mLastCalendarSync %s .Full: %d",mLastCalendarSync.toString().latin1(), fullDateRange); 1216 qDebug("KO: mLastCalendarSync %s .Full: %d",mLastCalendarSync.toString().latin1(), fullDateRange);
1217 QPtrList<Incidence> er = remote->rawIncidences(); 1217 QPtrList<Incidence> er = remote->rawIncidences();
1218 Incidence* inR = er.first(); 1218 Incidence* inR = er.first();
1219 Incidence* inL; 1219 Incidence* inL;
1220 QProgressBar bar( er.count(),0 ); 1220 QProgressBar bar( er.count(),0 );
1221 bar.setCaption (i18n("Syncing - close to abort!") ); 1221 bar.setCaption (i18n("Syncing - close to abort!") );
1222 1222
1223 // ************** setting up filter ************* 1223 // ************** setting up filter *************
1224 CalFilter *filterIN = 0; 1224 CalFilter *filterIN = 0;
1225 CalFilter *filterOUT = 0; 1225 CalFilter *filterOUT = 0;
1226 CalFilter *filter = mFilters.first(); 1226 CalFilter *filter = mFilters.first();
1227 while(filter) { 1227 while(filter) {
1228 if ( filter->name() == mSyncManager->mFilterInCal ) 1228 if ( filter->name() == mSyncManager->mFilterInCal )
1229 filterIN = filter; 1229 filterIN = filter;
1230 if ( filter->name() == mSyncManager->mFilterOutCal ) 1230 if ( filter->name() == mSyncManager->mFilterOutCal )
1231 filterOUT = filter; 1231 filterOUT = filter;
1232 filter = mFilters.next(); 1232 filter = mFilters.next();
1233 } 1233 }
1234 int w = 300; 1234 int w = 300;
1235 if ( QApplication::desktop()->width() < 320 ) 1235 if ( QApplication::desktop()->width() < 320 )
1236 w = 220; 1236 w = 220;
1237 int h = bar.sizeHint().height() ; 1237 int h = bar.sizeHint().height() ;
1238 int dw = QApplication::desktop()->width(); 1238 int dw = QApplication::desktop()->width();
1239 int dh = QApplication::desktop()->height(); 1239 int dh = QApplication::desktop()->height();
1240 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1240 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1241 bar.show(); 1241 bar.show();
1242 int modulo = (er.count()/10)+1; 1242 int modulo = (er.count()/10)+1;
1243 int incCounter = 0; 1243 int incCounter = 0;
1244 while ( inR ) { 1244 while ( inR ) {
1245 if ( ! bar.isVisible() ) 1245 if ( ! bar.isVisible() )
1246 return false; 1246 return false;
1247 if ( incCounter % modulo == 0 ) 1247 if ( incCounter % modulo == 0 )
1248 bar.setProgress( incCounter ); 1248 bar.setProgress( incCounter );
1249 ++incCounter; 1249 ++incCounter;
1250 uid = inR->uid(); 1250 uid = inR->uid();
1251 bool skipIncidence = false; 1251 bool skipIncidence = false;
1252 if ( uid.left(15) == QString("last-syncEvent-") ) 1252 if ( uid.left(15) == QString("last-syncEvent-") )
1253 skipIncidence = true; 1253 skipIncidence = true;
1254 QString idS; 1254 QString idS;
1255 qApp->processEvents(); 1255 qApp->processEvents();
1256 if ( !skipIncidence ) { 1256 if ( !skipIncidence ) {
1257 inL = local->incidence( uid ); 1257 inL = local->incidence( uid );
1258 if ( inL ) { // maybe conflict - same uid in both calendars 1258 if ( inL ) { // maybe conflict - same uid in both calendars
1259 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { 1259 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
1260 //qDebug("take %d %s ", take, inL->summary().latin1()); 1260 //qDebug("take %d %s ", take, inL->summary().latin1());
1261 if ( take == 3 ) 1261 if ( take == 3 )
1262 return false; 1262 return false;
1263 if ( take == 1 ) {// take local ********************** 1263 if ( take == 1 ) {// take local **********************
1264 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 1264 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
1265 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1265 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1266 else 1266 else
1267 idS = inR->IDStr(); 1267 idS = inR->IDStr();
1268 remote->deleteIncidence( inR ); 1268 remote->deleteIncidence( inR );
1269 inR = inL->clone(); 1269 inR = inL->clone();
1270 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1270 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1271 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL ) 1271 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
1272 inR->setIDStr( idS ); 1272 inR->setIDStr( idS );
1273 remote->addIncidence( inR ); 1273 remote->addIncidence( inR );
1274 if ( mSyncManager->syncWithDesktop() ) 1274 if ( mSyncManager->syncWithDesktop() )
1275 inR->setPilotId( 2 ); 1275 inR->setPilotId( 2 );
1276 ++changedRemote; 1276 ++changedRemote;
1277 } else {// take remote ********************** 1277 } else {// take remote **********************
1278 idS = inL->IDStr(); 1278 idS = inL->IDStr();
1279 int pid = inL->pilotId(); 1279 int pid = inL->pilotId();
1280 local->deleteIncidence( inL ); 1280 local->deleteIncidence( inL );
1281 inL = inR->clone(); 1281 inL = inR->clone();
1282 if ( mSyncManager->syncWithDesktop() ) 1282 if ( mSyncManager->syncWithDesktop() )
1283 inL->setPilotId( pid ); 1283 inL->setPilotId( pid );
1284 inL->setIDStr( idS ); 1284 inL->setIDStr( idS );
1285 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1285 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1286 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1286 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1287 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1287 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1288 } 1288 }
1289 local->addIncidence( inL ); 1289 local->addIncidence( inL );
1290 ++changedLocal; 1290 ++changedLocal;
1291 } 1291 }
1292 } 1292 }
1293 } else { // no conflict ********** add or delete remote 1293 } else { // no conflict ********** add or delete remote
1294 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ 1294 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){
1295 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1295 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1296 QString des = eventLSync->description(); 1296 QString des = eventLSync->description();
1297 QString pref = "e"; 1297 QString pref = "e";
1298 if ( inR->typeID() == todoID ) 1298 if ( inR->typeID() == todoID )
1299 pref = "t"; 1299 pref = "t";
1300 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 1300 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
1301 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1301 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1302 //remote->deleteIncidence( inR ); 1302 //remote->deleteIncidence( inR );
1303 ++deletedEventR; 1303 ++deletedEventR;
1304 } else { 1304 } else {
1305 inR->setLastModified( modifiedCalendar ); 1305 inR->setLastModified( modifiedCalendar );
1306 inL = inR->clone(); 1306 inL = inR->clone();
1307 inL->setIDStr( ":" ); 1307 inL->setIDStr( ":" );
1308 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1308 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1309 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1309 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1310 local->addIncidence( inL ); 1310 local->addIncidence( inL );
1311 ++addedEvent; 1311 ++addedEvent;
1312 1312
1313 } 1313 }
1314 } else { 1314 } else {
1315 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { 1315 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
1316 inR->setLastModified( modifiedCalendar ); 1316 inR->setLastModified( modifiedCalendar );
1317 inL = inR->clone(); 1317 inL = inR->clone();
1318 inL->setIDStr( ":" ); 1318 inL->setIDStr( ":" );
1319 local->addIncidence( inL ); 1319 local->addIncidence( inL );
1320 ++addedEvent; 1320 ++addedEvent;
1321 1321
1322 } else { 1322 } else {
1323 checkExternSyncEvent(eventRSyncSharp, inR); 1323 checkExternSyncEvent(eventRSyncSharp, inR);
1324 remote->deleteIncidence( inR ); 1324 remote->deleteIncidence( inR );
1325 ++deletedEventR; 1325 ++deletedEventR;
1326 } 1326 }
1327 } 1327 }
1328 } else { 1328 } else {
1329 ++filteredIN; 1329 ++filteredIN;
1330 } 1330 }
1331 } 1331 }
1332 } 1332 }
1333 inR = er.next(); 1333 inR = er.next();
1334 } 1334 }
1335 QPtrList<Incidence> el = local->rawIncidences(); 1335 QPtrList<Incidence> el = local->rawIncidences();
1336 inL = el.first(); 1336 inL = el.first();
1337 modulo = (el.count()/10)+1; 1337 modulo = (el.count()/10)+1;
1338 bar.setCaption (i18n("Add / remove events") ); 1338 bar.setCaption (i18n("Add / remove events") );
1339 bar.setTotalSteps ( el.count() ) ; 1339 bar.setTotalSteps ( el.count() ) ;
1340 bar.show(); 1340 bar.show();
1341 incCounter = 0; 1341 incCounter = 0;
1342 1342
1343 while ( inL ) { 1343 while ( inL ) {
1344 1344
1345 qApp->processEvents(); 1345 qApp->processEvents();
1346 if ( ! bar.isVisible() ) 1346 if ( ! bar.isVisible() )
1347 return false; 1347 return false;
1348 if ( incCounter % modulo == 0 ) 1348 if ( incCounter % modulo == 0 )
1349 bar.setProgress( incCounter ); 1349 bar.setProgress( incCounter );
1350 ++incCounter; 1350 ++incCounter;
1351 uid = inL->uid(); 1351 uid = inL->uid();
1352 bool skipIncidence = false; 1352 bool skipIncidence = false;
1353 if ( uid.left(15) == QString("last-syncEvent-") ) 1353 if ( uid.left(15) == QString("last-syncEvent-") )
1354 skipIncidence = true; 1354 skipIncidence = true;
1355 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->typeID() == journalID ) 1355 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->typeID() == journalID )
1356 skipIncidence = true; 1356 skipIncidence = true;
1357 if ( !skipIncidence ) { 1357 if ( !skipIncidence ) {
1358 inR = remote->incidence( uid ); 1358 inR = remote->incidence( uid );
1359 if ( ! inR ) { 1359 if ( ! inR ) {
1360 if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ 1360 if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){
1361 // no conflict ********** add or delete local 1361 // no conflict ********** add or delete local
1362 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1362 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1363 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 1363 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
1364 checkExternSyncEvent(eventLSyncSharp, inL); 1364 checkExternSyncEvent(eventLSyncSharp, inL);
1365 local->deleteIncidence( inL ); 1365 local->deleteIncidence( inL );
1366 ++deletedEventL; 1366 ++deletedEventL;
1367 } else { 1367 } else {
1368 if ( ! mSyncManager->mWriteBackExistingOnly ) { 1368 if ( ! mSyncManager->mWriteBackExistingOnly ) {
1369 inL->removeID(mCurrentSyncDevice ); 1369 inL->removeID(mCurrentSyncDevice );
1370 ++addedEventR; 1370 ++addedEventR;
1371 //qDebug("remote added Incidence %s ", inL->summary().latin1()); 1371 //qDebug("remote added Incidence %s ", inL->summary().latin1());
1372 inL->setLastModified( modifiedCalendar ); 1372 inL->setLastModified( modifiedCalendar );
1373 inR = inL->clone(); 1373 inR = inL->clone();
1374 inR->setIDStr( ":" ); 1374 inR->setIDStr( ":" );
1375 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1375 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1376 remote->addIncidence( inR ); 1376 remote->addIncidence( inR );
1377 } 1377 }
1378 } 1378 }
1379 } else { 1379 } else {
1380 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { 1380 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
1381 checkExternSyncEvent(eventLSyncSharp, inL); 1381 checkExternSyncEvent(eventLSyncSharp, inL);
1382 local->deleteIncidence( inL ); 1382 local->deleteIncidence( inL );
1383 ++deletedEventL; 1383 ++deletedEventL;
1384 } else { 1384 } else {
1385 if ( ! mSyncManager->mWriteBackExistingOnly ) { 1385 if ( ! mSyncManager->mWriteBackExistingOnly ) {
1386 ++addedEventR; 1386 ++addedEventR;
1387 inL->setLastModified( modifiedCalendar ); 1387 inL->setLastModified( modifiedCalendar );
1388 inR = inL->clone(); 1388 inR = inL->clone();
1389 inR->setIDStr( ":" ); 1389 inR->setIDStr( ":" );
1390 remote->addIncidence( inR ); 1390 remote->addIncidence( inR );
1391 } 1391 }
1392 } 1392 }
1393 } 1393 }
1394 } else { 1394 } else {
1395 ++filteredOUT; 1395 ++filteredOUT;
1396 } 1396 }
1397 } 1397 }
1398 } 1398 }
1399 inL = el.next(); 1399 inL = el.next();
1400 } 1400 }
1401 int delFut = 0; 1401 int delFut = 0;
1402 int remRem = 0; 1402 int remRem = 0;
1403 if ( mSyncManager->mWriteBackInFuture ) { 1403 if ( mSyncManager->mWriteBackInFuture ) {
1404 er = remote->rawIncidences(); 1404 er = remote->rawIncidences();
1405 remRem = er.count(); 1405 remRem = er.count();
1406 inR = er.first(); 1406 inR = er.first();
1407 QDateTime dt; 1407 QDateTime dt;
1408 QDateTime cur = QDateTime::currentDateTime().addDays( -(mSyncManager->mWriteBackInPast * 7) ); 1408 QDateTime cur = QDateTime::currentDateTime().addDays( -(mSyncManager->mWriteBackInPast * 7) );
1409 QDateTime end = QDateTime::currentDateTime().addDays( (mSyncManager->mWriteBackInFuture ) *7 ); 1409 QDateTime end = QDateTime::currentDateTime().addDays( (mSyncManager->mWriteBackInFuture ) *7 );
1410 while ( inR ) { 1410 while ( inR ) {
1411 if ( inR->typeID() == todoID ) { 1411 if ( inR->typeID() == todoID ) {
1412 Todo * t = (Todo*)inR; 1412 Todo * t = (Todo*)inR;
1413 if ( t->hasDueDate() ) 1413 if ( t->hasDueDate() )
1414 dt = t->dtDue(); 1414 dt = t->dtDue();
1415 else 1415 else
1416 dt = cur.addSecs( 62 ); 1416 dt = cur.addSecs( 62 );
1417 } 1417 }
1418 else if (inR->typeID() == eventID ) { 1418 else if (inR->typeID() == eventID ) {
1419 bool ok; 1419 bool ok;
1420 dt = inR->getNextOccurence( cur, &ok ); 1420 dt = inR->getNextOccurence( cur, &ok );
1421 if ( !ok ) 1421 if ( !ok )
1422 dt = cur.addSecs( -62 ); 1422 dt = cur.addSecs( -62 );
1423 } 1423 }
1424 else 1424 else
1425 dt = inR->dtStart(); 1425 dt = inR->dtStart();
1426 if ( dt < cur || dt > end ) { 1426 if ( dt < cur || dt > end ) {
1427 remote->deleteIncidence( inR ); 1427 remote->deleteIncidence( inR );
1428 ++delFut; 1428 ++delFut;
1429 } 1429 }
1430 inR = er.next(); 1430 inR = er.next();
1431 } 1431 }
1432 } 1432 }
1433 bar.hide(); 1433 bar.hide();
1434 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); 1434 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
1435 eventLSync->setReadOnly( false ); 1435 eventLSync->setReadOnly( false );
1436 eventLSync->setDtStart( mLastCalendarSync ); 1436 eventLSync->setDtStart( mLastCalendarSync );
1437 eventRSync->setDtStart( mLastCalendarSync ); 1437 eventRSync->setDtStart( mLastCalendarSync );
1438 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1438 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1439 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1439 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1440 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1440 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1441 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1441 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1442 eventLSync->setReadOnly( true ); 1442 eventLSync->setReadOnly( true );
1443 qDebug("KO: Normal sync: %d ",mGlobalSyncMode == SYNC_MODE_NORMAL ); 1443 qDebug("KO: Normal sync: %d ",mGlobalSyncMode == SYNC_MODE_NORMAL );
1444 if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal... 1444 if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal...
1445 remote->addEvent( eventRSync ); 1445 remote->addEvent( eventRSync );
1446 else 1446 else
1447 delete eventRSync; 1447 delete eventRSync;
1448 qDebug("KO: Sync with desktop %d ",mSyncManager->syncWithDesktop() ); 1448 qDebug("KO: Sync with desktop %d ",mSyncManager->syncWithDesktop() );
1449 QString mes; 1449 QString mes;
1450 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 ); 1450 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 );
1451 QString delmess; 1451 QString delmess;
1452 if ( delFut ) { 1452 if ( delFut ) {
1453 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); 1453 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);
1454 mes += delmess; 1454 mes += delmess;
1455 } 1455 }
1456 mes = i18n("Local calendar changed!\n") +mes; 1456 mes = i18n("Local calendar changed!\n") +mes;
1457 mCalendar->checkAlarmForIncidence( 0, true ); 1457 mCalendar->checkAlarmForIncidence( 0, true );
1458 qDebug( mes ); 1458 qDebug( mes );
1459 if ( mSyncManager->mShowSyncSummary ) { 1459 if ( mSyncManager->mShowSyncSummary ) {
1460 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes, 1460 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes,
1461 i18n("KO/Pi Synchronization"),i18n("Write back"))) { 1461 i18n("KO/Pi Synchronization"),i18n("Write back"))) {
1462 qDebug("KO: WB cancelled "); 1462 qDebug("KO: WB cancelled ");
1463 mSyncManager->mWriteBackFile = false; 1463 mSyncManager->mWriteBackFile = false;
1464 return syncOK; 1464 return syncOK;
1465 } 1465 }
1466 } 1466 }
1467 return syncOK; 1467 return syncOK;
1468} 1468}
1469 1469
1470void CalendarView::setSyncDevice( QString s ) 1470void CalendarView::setSyncDevice( QString s )
1471{ 1471{
1472 mCurrentSyncDevice= s; 1472 mCurrentSyncDevice= s;
1473} 1473}
1474void CalendarView::setSyncName( QString s ) 1474void CalendarView::setSyncName( QString s )
1475{ 1475{
1476 mCurrentSyncName= s; 1476 mCurrentSyncName= s;
1477} 1477}
1478bool CalendarView::syncCalendar(QString filename, int mode) 1478bool CalendarView::syncCalendar(QString filename, int mode)
1479{ 1479{
1480 //qDebug("syncCalendar %s ", filename.latin1()); 1480 //qDebug("syncCalendar %s ", filename.latin1());
1481 mGlobalSyncMode = SYNC_MODE_NORMAL; 1481 mGlobalSyncMode = SYNC_MODE_NORMAL;
1482 CalendarLocal* calendar = new CalendarLocal(); 1482 CalendarLocal* calendar = new CalendarLocal();
1483 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 1483 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
1484 FileStorage* storage = new FileStorage( calendar ); 1484 FileStorage* storage = new FileStorage( calendar );
1485 bool syncOK = false; 1485 bool syncOK = false;
1486 storage->setFileName( filename ); 1486 storage->setFileName( filename );
1487 // qDebug("loading ... "); 1487 // qDebug("loading ... ");
1488 if ( storage->load() ) { 1488 if ( storage->load() ) {
1489 getEventViewerDialog()->setSyncMode( true ); 1489 getEventViewerDialog()->setSyncMode( true );
1490 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1490 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1491 getEventViewerDialog()->setSyncMode( false ); 1491 getEventViewerDialog()->setSyncMode( false );
1492 if ( syncOK ) { 1492 if ( syncOK ) {
1493 if ( mSyncManager->mWriteBackFile ) 1493 if ( mSyncManager->mWriteBackFile )
1494 { 1494 {
1495 storage->setSaveFormat( new ICalFormat() ); 1495 storage->setSaveFormat( new ICalFormat() );
1496 storage->save(); 1496 storage->save();
1497 } 1497 }
1498 } 1498 }
1499 setModified( true ); 1499 setModified( true );
1500 } 1500 }
1501 delete storage; 1501 delete storage;
1502 delete calendar; 1502 delete calendar;
1503 if ( syncOK ) 1503 if ( syncOK )
1504 updateView(); 1504 updateView();
1505 return syncOK; 1505 return syncOK;
1506} 1506}
1507 1507
1508void CalendarView::syncExternal( int mode ) 1508void CalendarView::syncExternal( int mode )
1509{ 1509{
1510 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1510 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1511 1511
1512 qApp->processEvents(); 1512 qApp->processEvents();
1513 CalendarLocal* calendar = new CalendarLocal(); 1513 CalendarLocal* calendar = new CalendarLocal();
1514 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 1514 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
1515 bool syncOK = false; 1515 bool syncOK = false;
1516 bool loadSuccess = false; 1516 bool loadSuccess = false;
1517 PhoneFormat* phoneFormat = 0; 1517 PhoneFormat* phoneFormat = 0;
1518 emit tempDisableBR(true); 1518 emit tempDisableBR(true);
1519#ifndef DESKTOP_VERSION 1519#ifndef DESKTOP_VERSION
1520 SharpFormat* sharpFormat = 0; 1520 SharpFormat* sharpFormat = 0;
1521 if ( mode == 0 ) { // sharp 1521 if ( mode == 0 ) { // sharp
1522 sharpFormat = new SharpFormat () ; 1522 sharpFormat = new SharpFormat () ;
1523 loadSuccess = sharpFormat->load( calendar, mCalendar ); 1523 loadSuccess = sharpFormat->load( calendar, mCalendar );
1524 1524
1525 } else 1525 } else
1526#endif 1526#endif
1527 if ( mode == 1 ) { // phone 1527 if ( mode == 1 ) { // phone
1528 phoneFormat = new PhoneFormat (mCurrentSyncDevice, 1528 phoneFormat = new PhoneFormat (mCurrentSyncDevice,
1529 mSyncManager->mPhoneDevice, 1529 mSyncManager->mPhoneDevice,
1530 mSyncManager->mPhoneConnection, 1530 mSyncManager->mPhoneConnection,
1531 mSyncManager->mPhoneModel); 1531 mSyncManager->mPhoneModel);
1532 loadSuccess = phoneFormat->load( calendar,mCalendar); 1532 loadSuccess = phoneFormat->load( calendar,mCalendar);
1533 1533
1534 } else { 1534 } else {
1535 emit tempDisableBR(false); 1535 emit tempDisableBR(false);
1536 return; 1536 return;
1537 } 1537 }
1538 if ( loadSuccess ) { 1538 if ( loadSuccess ) {
1539 getEventViewerDialog()->setSyncMode( true ); 1539 getEventViewerDialog()->setSyncMode( true );
1540 syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs ); 1540 syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs );
1541 getEventViewerDialog()->setSyncMode( false ); 1541 getEventViewerDialog()->setSyncMode( false );
1542 qApp->processEvents(); 1542 qApp->processEvents();
1543 if ( syncOK ) { 1543 if ( syncOK ) {
1544 if ( mSyncManager->mWriteBackFile ) 1544 if ( mSyncManager->mWriteBackFile )
1545 { 1545 {
1546 QPtrList<Incidence> iL = mCalendar->rawIncidences(); 1546 QPtrList<Incidence> iL = mCalendar->rawIncidences();
1547 Incidence* inc = iL.first(); 1547 Incidence* inc = iL.first();
1548 if ( phoneFormat ) { 1548 if ( phoneFormat ) {
1549 while ( inc ) { 1549 while ( inc ) {
1550 inc->removeID(mCurrentSyncDevice); 1550 inc->removeID(mCurrentSyncDevice);
1551 inc = iL.next(); 1551 inc = iL.next();
1552 } 1552 }
1553 } 1553 }
1554#ifndef DESKTOP_VERSION 1554#ifndef DESKTOP_VERSION
1555 if ( sharpFormat ) 1555 if ( sharpFormat )
1556 sharpFormat->save(calendar); 1556 sharpFormat->save(calendar);
1557#endif 1557#endif
1558 if ( phoneFormat ) 1558 if ( phoneFormat )
1559 phoneFormat->save(calendar); 1559 phoneFormat->save(calendar);
1560 iL = calendar->rawIncidences(); 1560 iL = calendar->rawIncidences();
1561 inc = iL.first(); 1561 inc = iL.first();
1562 Incidence* loc; 1562 Incidence* loc;
1563 while ( inc ) { 1563 while ( inc ) {
1564 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { 1564 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) {
1565 loc = mCalendar->incidence(inc->uid() ); 1565 loc = mCalendar->incidence(inc->uid() );
1566 if ( loc ) { 1566 if ( loc ) {
1567 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); 1567 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) );
1568 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) ); 1568 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) );
1569 } 1569 }
1570 } 1570 }
1571 inc = iL.next(); 1571 inc = iL.next();
1572 } 1572 }
1573 Incidence* lse = getLastSyncEvent(); 1573 Incidence* lse = getLastSyncEvent();
1574 if ( lse ) { 1574 if ( lse ) {
1575 lse->setReadOnly( false ); 1575 lse->setReadOnly( false );
1576 lse->setDescription( "" ); 1576 lse->setDescription( "" );
1577 lse->setReadOnly( true ); 1577 lse->setReadOnly( true );
1578 } 1578 }
1579 } 1579 }
1580 } else { 1580 } else {
1581 topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") ); 1581 topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") );
1582 } 1582 }
1583 setModified( true ); 1583 setModified( true );
1584 } else { 1584 } else {
1585 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ; 1585 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ;
1586 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"), 1586 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"),
1587 question, i18n("Ok")) ; 1587 question, i18n("Ok")) ;
1588 1588
1589 } 1589 }
1590 delete calendar; 1590 delete calendar;
1591 updateView(); 1591 updateView();
1592 emit tempDisableBR(false); 1592 emit tempDisableBR(false);
1593 return ;//syncOK; 1593 return ;//syncOK;
1594 1594
1595} 1595}
1596 1596
1597bool CalendarView::importBday() 1597bool CalendarView::importBday()
1598{ 1598{
1599#ifndef KORG_NOKABC 1599#ifndef KORG_NOKABC
1600 1600
1601#ifdef DESKTOP_VERSION 1601#ifdef DESKTOP_VERSION
1602 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 1602 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
1603 KABC::AddressBook::Iterator it; 1603 KABC::AddressBook::Iterator it;
1604 int count = 0; 1604 int count = 0;
1605 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1605 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1606 ++count; 1606 ++count;
1607 } 1607 }
1608 QProgressBar bar(count,0 ); 1608 QProgressBar bar(count,0 );
1609 int w = 300; 1609 int w = 300;
1610 if ( QApplication::desktop()->width() < 320 ) 1610 if ( QApplication::desktop()->width() < 320 )
1611 w = 220; 1611 w = 220;
1612 int h = bar.sizeHint().height() ; 1612 int h = bar.sizeHint().height() ;
1613 int dw = QApplication::desktop()->width(); 1613 int dw = QApplication::desktop()->width();
1614 int dh = QApplication::desktop()->height(); 1614 int dh = QApplication::desktop()->height();
1615 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1615 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1616 bar.show(); 1616 bar.show();
1617 bar.setCaption (i18n("Reading addressbook - close to abort!") ); 1617 bar.setCaption (i18n("Reading addressbook - close to abort!") );
1618 qApp->processEvents(); 1618 qApp->processEvents();
1619 count = 0; 1619 count = 0;
1620 int addCount = 0; 1620 int addCount = 0;
1621 KCal::Attendee* a = 0; 1621 KCal::Attendee* a = 0;
1622 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1622 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1623 if ( ! bar.isVisible() ) 1623 if ( ! bar.isVisible() )
1624 return false; 1624 return false;
1625 bar.setProgress( count++ ); 1625 bar.setProgress( count++ );
1626 qApp->processEvents(); 1626 qApp->processEvents();
1627 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() ); 1627 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() );
1628 if ( (*it).birthday().date().isValid() ){ 1628 if ( (*it).birthday().date().isValid() ){
1629 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1629 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1630 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) ) 1630 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) )
1631 ++addCount; 1631 ++addCount;
1632 } 1632 }
1633 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); 1633 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d");
1634 if ( anni.isValid() ){ 1634 if ( anni.isValid() ){
1635 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1635 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1636 if ( addAnniversary( anni, (*it).assembledName(), a, false ) ) 1636 if ( addAnniversary( anni, (*it).assembledName(), a, false ) )
1637 ++addCount; 1637 ++addCount;
1638 } 1638 }
1639 } 1639 }
1640 updateView(); 1640 updateView();
1641 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); 1641 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!"));
1642#else //DESKTOP_VERSION 1642#else //DESKTOP_VERSION
1643 1643
1644 ExternalAppHandler::instance()->requestBirthdayListFromKAPI("QPE/Application/kopi", this->name() /* name is here the unique uid*/); 1644 ExternalAppHandler::instance()->requestBirthdayListFromKAPI("QPE/Application/kopi", this->name() /* name is here the unique uid*/);
1645 // the result should now arrive through method insertBirthdays 1645 // the result should now arrive through method insertBirthdays
1646 1646
1647#endif //DESKTOP_VERSION 1647#endif //DESKTOP_VERSION
1648 1648
1649#endif //KORG_NOKABC 1649#endif //KORG_NOKABC
1650 1650
1651 1651
1652 return true; 1652 return true;
1653} 1653}
1654 1654
1655// This method will be called from Ka/Pi as a response to requestBirthdayListFromKAPI 1655// This method will be called from Ka/Pi as a response to requestBirthdayListFromKAPI
1656void CalendarView::insertBirthdays(const QString& uid, const QStringList& birthdayList, 1656void CalendarView::insertBirthdays(const QString& uid, const QStringList& birthdayList,
1657 const QStringList& anniversaryList, const QStringList& realNameList, 1657 const QStringList& anniversaryList, const QStringList& realNameList,
1658 const QStringList& emailList, const QStringList& assembledNameList, 1658 const QStringList& emailList, const QStringList& assembledNameList,
1659 const QStringList& uidList) 1659 const QStringList& uidList)
1660{ 1660{
1661 //qDebug("KO::CalendarView::insertBirthdays"); 1661 //qDebug("KO::CalendarView::insertBirthdays");
1662 if (uid == this->name()) 1662 if (uid == this->name())
1663 { 1663 {
1664 int count = birthdayList.count(); 1664 int count = birthdayList.count();
1665 int addCount = 0; 1665 int addCount = 0;
1666 KCal::Attendee* a = 0; 1666 KCal::Attendee* a = 0;
1667 1667
1668 //qDebug("CalView 1 %i", count); 1668 //qDebug("CalView 1 %i", count);
1669 1669
1670 QProgressBar bar(count,0 ); 1670 QProgressBar bar(count,0 );
1671 int w = 300; 1671 int w = 300;
1672 if ( QApplication::desktop()->width() < 320 ) 1672 if ( QApplication::desktop()->width() < 320 )
1673 w = 220; 1673 w = 220;
1674 int h = bar.sizeHint().height() ; 1674 int h = bar.sizeHint().height() ;
1675 int dw = QApplication::desktop()->width(); 1675 int dw = QApplication::desktop()->width();
1676 int dh = QApplication::desktop()->height(); 1676 int dh = QApplication::desktop()->height();
1677 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1677 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1678 bar.show(); 1678 bar.show();
1679 bar.setCaption (i18n("inserting birthdays - close to abort!") ); 1679 bar.setCaption (i18n("inserting birthdays - close to abort!") );
1680 qApp->processEvents(); 1680 qApp->processEvents();
1681 1681
1682 QDate birthday; 1682 QDate birthday;
1683 QDate anniversary; 1683 QDate anniversary;
1684 QString realName; 1684 QString realName;
1685 QString email; 1685 QString email;
1686 QString assembledName; 1686 QString assembledName;
1687 QString uid; 1687 QString uid;
1688 bool ok = true; 1688 bool ok = true;
1689 for ( int i = 0; i < count; i++) 1689 for ( int i = 0; i < count; i++)
1690 { 1690 {
1691 if ( ! bar.isVisible() ) 1691 if ( ! bar.isVisible() )
1692 return; 1692 return;
1693 bar.setProgress( i ); 1693 bar.setProgress( i );
1694 qApp->processEvents(); 1694 qApp->processEvents();
1695 1695
1696 birthday = KGlobal::locale()->readDate(birthdayList[i], KLocale::ISODate, &ok); 1696 birthday = KGlobal::locale()->readDate(birthdayList[i], KLocale::ISODate, &ok);
1697 if (!ok) { 1697 if (!ok) {
1698 ;//qDebug("CalendarView::insertBirthdays found invalid birthday: %s",birthdayList[i].latin1()); 1698 ;//qDebug("CalendarView::insertBirthdays found invalid birthday: %s",birthdayList[i].latin1());
1699 } 1699 }
1700 1700
1701 anniversary = KGlobal::locale()->readDate(anniversaryList[i], KLocale::ISODate, &ok); 1701 anniversary = KGlobal::locale()->readDate(anniversaryList[i], KLocale::ISODate, &ok);
1702 if (!ok) { 1702 if (!ok) {
1703 ;//qDebug("CalendarView::insertBirthdays found invalid anniversary: %s",anniversaryList[i].latin1()); 1703 ;//qDebug("CalendarView::insertBirthdays found invalid anniversary: %s",anniversaryList[i].latin1());
1704 } 1704 }
1705 realName = realNameList[i]; 1705 realName = realNameList[i];
1706 email = emailList[i]; 1706 email = emailList[i];
1707 assembledName = assembledNameList[i]; 1707 assembledName = assembledNameList[i];
1708 uid = uidList[i]; 1708 uid = uidList[i];
1709 //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() ); 1709 //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() );
1710 1710
1711 if ( birthday.isValid() ){ 1711 if ( birthday.isValid() ){
1712 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction, 1712 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction,
1713 KCal::Attendee::ReqParticipant,uid) ; 1713 KCal::Attendee::ReqParticipant,uid) ;
1714 if ( addAnniversary( birthday, assembledName, a, true ) ) 1714 if ( addAnniversary( birthday, assembledName, a, true ) )
1715 ++addCount; 1715 ++addCount;
1716 } 1716 }
1717 1717
1718 if ( anniversary.isValid() ){ 1718 if ( anniversary.isValid() ){
1719 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction, 1719 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction,
1720 KCal::Attendee::ReqParticipant,uid) ; 1720 KCal::Attendee::ReqParticipant,uid) ;
1721 if ( addAnniversary( anniversary, assembledName, a, false ) ) 1721 if ( addAnniversary( anniversary, assembledName, a, false ) )
1722 ++addCount; 1722 ++addCount;
1723 } 1723 }
1724 } 1724 }
1725 1725
1726 updateView(); 1726 updateView();
1727 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); 1727 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!"));
1728 1728
1729 } 1729 }
1730 1730
1731} 1731}
1732 1732
1733 1733
1734 1734
1735bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday) 1735bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday)
1736{ 1736{
1737 //qDebug("addAnni "); 1737 //qDebug("addAnni ");
1738 Event * ev = new Event(); 1738 Event * ev = new Event();
1739 ev->setOrganizer(KOPrefs::instance()->email()); 1739 ev->setOrganizer(KOPrefs::instance()->email());
1740 if ( a ) { 1740 if ( a ) {
1741 ev->addAttendee( a ); 1741 ev->addAttendee( a );
1742 } 1742 }
1743 QString kind; 1743 QString kind;
1744 if ( birthday ) { 1744 if ( birthday ) {
1745 kind = i18n( "Birthday" ); 1745 kind = i18n( "Birthday" );
1746 ev->setSummary( name + " (" + QString::number(date.year()) +")"); 1746 ev->setSummary( name + " (" + QString::number(date.year()) +")");
1747 } 1747 }
1748 else { 1748 else {
1749 kind = i18n( "Anniversary" ); 1749 kind = i18n( "Anniversary" );
1750 ev->setSummary( name + " (" + QString::number(date.year()) +") " + kind ); 1750 ev->setSummary( name + " (" + QString::number(date.year()) +") " + kind );
1751 } 1751 }
1752 ev->setCategories( kind ); 1752 ev->setCategories( kind );
1753 ev->setDtStart( QDateTime(date) ); 1753 ev->setDtStart( QDateTime(date) );
1754 ev->setDtEnd( QDateTime(date) ); 1754 ev->setDtEnd( QDateTime(date) );
1755 ev->setFloats( true ); 1755 ev->setFloats( true );
1756 Recurrence * rec = ev->recurrence(); 1756 Recurrence * rec = ev->recurrence();
1757 rec->setYearly(Recurrence::rYearlyMonth,1,-1); 1757 rec->setYearly(Recurrence::rYearlyMonth,1,-1);
1758 rec->addYearlyNum( date.month() ); 1758 rec->addYearlyNum( date.month() );
1759 if ( !mCalendar->addAnniversaryNoDup( ev ) ) { 1759 if ( !mCalendar->addAnniversaryNoDup( ev ) ) {
1760 delete ev; 1760 delete ev;
1761 return false; 1761 return false;
1762 } 1762 }
1763 return true; 1763 return true;
1764 1764
1765} 1765}
1766bool CalendarView::importQtopia( const QString &categories, 1766bool CalendarView::importQtopia( const QString &categories,
1767 const QString &datebook, 1767 const QString &datebook,
1768 const QString &todolist ) 1768 const QString &todolist )
1769{ 1769{
1770 1770
1771 QtopiaFormat qtopiaFormat; 1771 QtopiaFormat qtopiaFormat;
1772 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1772 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1773 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories ); 1773 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories );
1774 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook ); 1774 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook );
1775 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist ); 1775 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist );
1776 1776
1777 updateView(); 1777 updateView();
1778 return true; 1778 return true;
1779 1779
1780#if 0 1780#if 0
1781 mGlobalSyncMode = SYNC_MODE_QTOPIA; 1781 mGlobalSyncMode = SYNC_MODE_QTOPIA;
1782 mCurrentSyncDevice = "qtopia-XML"; 1782 mCurrentSyncDevice = "qtopia-XML";
1783 if ( mSyncManager->mAskForPreferences ) 1783 if ( mSyncManager->mAskForPreferences )
1784 edit_sync_options(); 1784 edit_sync_options();
1785 qApp->processEvents(); 1785 qApp->processEvents();
1786 CalendarLocal* calendar = new CalendarLocal(); 1786 CalendarLocal* calendar = new CalendarLocal();
1787 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 1787 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
1788 bool syncOK = false; 1788 bool syncOK = false;
1789 QtopiaFormat qtopiaFormat; 1789 QtopiaFormat qtopiaFormat;
1790 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1790 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1791 bool loadOk = true; 1791 bool loadOk = true;
1792 if ( !categories.isEmpty() ) 1792 if ( !categories.isEmpty() )
1793 loadOk = qtopiaFormat.load( calendar, categories ); 1793 loadOk = qtopiaFormat.load( calendar, categories );
1794 if ( loadOk && !datebook.isEmpty() ) 1794 if ( loadOk && !datebook.isEmpty() )
1795 loadOk = qtopiaFormat.load( calendar, datebook ); 1795 loadOk = qtopiaFormat.load( calendar, datebook );
1796 if ( loadOk && !todolist.isEmpty() ) 1796 if ( loadOk && !todolist.isEmpty() )
1797 loadOk = qtopiaFormat.load( calendar, todolist ); 1797 loadOk = qtopiaFormat.load( calendar, todolist );
1798 1798
1799 if ( loadOk ) { 1799 if ( loadOk ) {
1800 getEventViewerDialog()->setSyncMode( true ); 1800 getEventViewerDialog()->setSyncMode( true );
1801 syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs ); 1801 syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs );
1802 getEventViewerDialog()->setSyncMode( false ); 1802 getEventViewerDialog()->setSyncMode( false );
1803 qApp->processEvents(); 1803 qApp->processEvents();
1804 if ( syncOK ) { 1804 if ( syncOK ) {
1805 if ( mSyncManager->mWriteBackFile ) 1805 if ( mSyncManager->mWriteBackFile )
1806 { 1806 {
1807 // write back XML file 1807 // write back XML file
1808 1808
1809 } 1809 }
1810 setModified( true ); 1810 setModified( true );
1811 } 1811 }
1812 } else { 1812 } else {
1813 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ; 1813 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ;
1814 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"), 1814 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"),
1815 question, i18n("Ok")) ; 1815 question, i18n("Ok")) ;
1816 } 1816 }
1817 delete calendar; 1817 delete calendar;
1818 updateView(); 1818 updateView();
1819 return syncOK; 1819 return syncOK;
1820 1820
1821 1821
1822#endif 1822#endif
1823 1823
1824} 1824}
1825 1825
1826void CalendarView::setSyncEventsReadOnly() 1826void CalendarView::setSyncEventsReadOnly()
1827{ 1827{
1828 Event * ev; 1828 Event * ev;
1829 QPtrList<Event> eL = mCalendar->rawEvents(); 1829 QPtrList<Event> eL = mCalendar->rawEvents();
1830 ev = eL.first(); 1830 ev = eL.first();
1831 while ( ev ) { 1831 while ( ev ) {
1832 if ( ev->uid().left(15) == QString("last-syncEvent-") ) 1832 if ( ev->uid().left(15) == QString("last-syncEvent-") )
1833 ev->setReadOnly( true ); 1833 ev->setReadOnly( true );
1834 ev = eL.next(); 1834 ev = eL.next();
1835 } 1835 }
1836} 1836}
1837bool CalendarView::openCalendar(QString filename, bool merge) 1837bool CalendarView::openCalendar(QString filename, bool merge)
1838{ 1838{
1839 1839
1840 if (filename.isEmpty()) { 1840 if (filename.isEmpty()) {
1841 return false; 1841 return false;
1842 } 1842 }
1843 1843
1844 if (!QFile::exists(filename)) { 1844 if (!QFile::exists(filename)) {
1845 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); 1845 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename));
1846 return false; 1846 return false;
1847 } 1847 }
1848 1848
1849 globalFlagBlockAgenda = 1; 1849 globalFlagBlockAgenda = 1;
1850 clearAllViews(); 1850 clearAllViews();
1851 if (!merge) { 1851 if (!merge) {
1852 mViewManager->setDocumentId( filename ); 1852 mViewManager->setDocumentId( filename );
1853 mCalendar->close(); 1853 mCalendar->close();
1854 } 1854 }
1855 mStorage->setFileName( filename ); 1855 mStorage->setFileName( filename );
1856 1856
1857 if ( mStorage->load() ) { 1857 if ( mStorage->load() ) {
1858 if ( merge ) ;//setModified( true ); 1858 if ( merge ) ;//setModified( true );
1859 else { 1859 else {
1860 //setModified( true ); 1860 //setModified( true );
1861 mViewManager->setDocumentId( filename ); 1861 mViewManager->setDocumentId( filename );
1862 mDialogManager->setDocumentId( filename ); 1862 mDialogManager->setDocumentId( filename );
1863 mTodoList->setDocumentId( filename ); 1863 mTodoList->setDocumentId( filename );
1864 } 1864 }
1865 globalFlagBlockAgenda = 2; 1865 globalFlagBlockAgenda = 2;
1866 // if ( getLastSyncEvent() ) 1866 // if ( getLastSyncEvent() )
1867 // getLastSyncEvent()->setReadOnly( true ); 1867 // getLastSyncEvent()->setReadOnly( true );
1868 mCalendar->reInitAlarmSettings(); 1868 mCalendar->reInitAlarmSettings();
1869 setSyncEventsReadOnly(); 1869 setSyncEventsReadOnly();
1870 updateUnmanagedViews(); 1870 updateUnmanagedViews();
1871 updateView(); 1871 updateView();
1872 if ( filename != MainWindow::defaultFileName() ) { 1872 if ( filename != MainWindow::defaultFileName() ) {
1873 saveCalendar( MainWindow::defaultFileName() ); 1873 saveCalendar( MainWindow::defaultFileName() );
1874 } else { 1874 } else {
1875 QFileInfo finf ( MainWindow::defaultFileName()); 1875 QFileInfo finf ( MainWindow::defaultFileName());
1876 if ( finf.exists() ) { 1876 if ( finf.exists() ) {
1877 setLoadedFileVersion( finf.lastModified () ); 1877 setLoadedFileVersion( finf.lastModified () );
1878 } 1878 }
1879 } 1879 }
1880 return true; 1880 return true;
1881 } else { 1881 } else {
1882 // while failing to load, the calendar object could 1882 // while failing to load, the calendar object could
1883 // have become partially populated. Clear it out. 1883 // have become partially populated. Clear it out.
1884 if ( !merge ) { 1884 if ( !merge ) {
1885 mCalendar->close(); 1885 mCalendar->close();
1886 mViewManager->setDocumentId( filename ); 1886 mViewManager->setDocumentId( filename );
1887 mDialogManager->setDocumentId( filename ); 1887 mDialogManager->setDocumentId( filename );
1888 mTodoList->setDocumentId( filename ); 1888 mTodoList->setDocumentId( filename );
1889 } 1889 }
1890 1890
1891 //KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename)); 1891 //KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename));
1892 1892
1893 QTimer::singleShot ( 1, this, SLOT ( showOpenError() ) ); 1893 QTimer::singleShot ( 1, this, SLOT ( showOpenError() ) );
1894 globalFlagBlockAgenda = 2; 1894 globalFlagBlockAgenda = 2;
1895 mCalendar->reInitAlarmSettings(); 1895 mCalendar->reInitAlarmSettings();
1896 setSyncEventsReadOnly(); 1896 setSyncEventsReadOnly();
1897 updateUnmanagedViews(); 1897 updateUnmanagedViews();
1898 updateView(); 1898 updateView();
1899 } 1899 }
1900 return false; 1900 return false;
1901} 1901}
1902void CalendarView::showOpenError() 1902void CalendarView::showOpenError()
1903{ 1903{
1904 KMessageBox::error(this,i18n("Couldn't load calendar\n.")); 1904 KMessageBox::error(this,i18n("Couldn't load calendar\n."));
1905} 1905}
1906void CalendarView::setLoadedFileVersion(QDateTime dt) 1906void CalendarView::setLoadedFileVersion(QDateTime dt)
1907{ 1907{
1908 loadedFileVersion = dt; 1908 loadedFileVersion = dt;
1909} 1909}
1910bool CalendarView::checkFileChanged(QString fn) 1910bool CalendarView::checkFileChanged(QString fn)
1911{ 1911{
1912 QFileInfo finf ( fn ); 1912 QFileInfo finf ( fn );
1913 if ( !finf.exists() ) 1913 if ( !finf.exists() )
1914 return true; 1914 return true;
1915 QDateTime dt = finf.lastModified (); 1915 QDateTime dt = finf.lastModified ();
1916 if ( dt <= loadedFileVersion ) 1916 if ( dt <= loadedFileVersion )
1917 return false; 1917 return false;
1918 return true; 1918 return true;
1919 1919
1920} 1920}
1921void CalendarView::watchSavedFile() 1921void CalendarView::watchSavedFile()
1922{ 1922{
1923 QFileInfo finf ( MainWindow::defaultFileName()); 1923 QFileInfo finf ( MainWindow::defaultFileName());
1924 if ( !finf.exists() ) 1924 if ( !finf.exists() )
1925 return; 1925 return;
1926 QDateTime dt = finf.lastModified (); 1926 QDateTime dt = finf.lastModified ();
1927 if ( dt < loadedFileVersion ) { 1927 if ( dt < loadedFileVersion ) {
1928 //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1()); 1928 //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1());
1929 QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) ); 1929 QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) );
1930 return; 1930 return;
1931 } 1931 }
1932 loadedFileVersion = dt; 1932 loadedFileVersion = dt;
1933} 1933}
1934 1934
1935bool CalendarView::checkFileVersion(QString fn) 1935bool CalendarView::checkFileVersion(QString fn)
1936{ 1936{
1937 QFileInfo finf ( fn ); 1937 QFileInfo finf ( fn );
1938 if ( !finf.exists() ) 1938 if ( !finf.exists() )
1939 return true; 1939 return true;
1940 QDateTime dt = finf.lastModified (); 1940 QDateTime dt = finf.lastModified ();
1941 //qDebug("loaded file version %s",loadedFileVersion.toString().latin1()); 1941 //qDebug("loaded file version %s",loadedFileVersion.toString().latin1());
1942 //qDebug("file on disk version %s",dt.toString().latin1()); 1942 //qDebug("file on disk version %s",dt.toString().latin1());
1943 if ( dt <= loadedFileVersion ) 1943 if ( dt <= loadedFileVersion )
1944 return true; 1944 return true;
1945 int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , 1945 int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) ,
1946 i18n("KO/Pi Warning"),i18n("Overwrite"), 1946 i18n("KO/Pi Warning"),i18n("Overwrite"),
1947 i18n("Sync+save")); 1947 i18n("Sync+save"));
1948 1948
1949 if ( km == KMessageBox::Cancel ) 1949 if ( km == KMessageBox::Cancel )
1950 return false; 1950 return false;
1951 if ( km == KMessageBox::Yes ) 1951 if ( km == KMessageBox::Yes )
1952 return true; 1952 return true;
1953 1953
1954 setSyncDevice("deleteaftersync" ); 1954 setSyncDevice("deleteaftersync" );
1955 mSyncManager->mAskForPreferences = true; 1955 mSyncManager->mAskForPreferences = true;
1956 mSyncManager->mSyncAlgoPrefs = 3; 1956 mSyncManager->mSyncAlgoPrefs = 3;
1957 mSyncManager->mWriteBackFile = false; 1957 mSyncManager->mWriteBackFile = false;
1958 mSyncManager->mWriteBackExistingOnly = false; 1958 mSyncManager->mWriteBackExistingOnly = false;
1959 mSyncManager->mShowSyncSummary = false; 1959 mSyncManager->mShowSyncSummary = false;
1960 syncCalendar( fn, 3 ); 1960 syncCalendar( fn, 3 );
1961 Event * e = getLastSyncEvent(); 1961 Event * e = getLastSyncEvent();
1962 if ( e ) 1962 if ( e )
1963 deleteEvent ( e ); 1963 deleteEvent ( e );
1964 updateView(); 1964 updateView();
1965 return true; 1965 return true;
1966} 1966}
1967 1967
1968bool CalendarView::saveCalendar( QString filename ) 1968bool CalendarView::saveCalendar( QString filename )
1969{ 1969{
1970 1970
1971 // Store back all unsaved data into calendar object 1971 // Store back all unsaved data into calendar object
1972 // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); 1972 // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() );
1973 if ( mViewManager->currentView() ) 1973 if ( mViewManager->currentView() )
1974 mViewManager->currentView()->flushView(); 1974 mViewManager->currentView()->flushView();
1975 1975
1976 1976
1977 QDateTime lfv = QDateTime::currentDateTime().addSecs( -2); 1977 QDateTime lfv = QDateTime::currentDateTime().addSecs( -2);
1978 mStorage->setSaveFormat( new ICalFormat() ); 1978 mStorage->setSaveFormat( new ICalFormat() );
1979 mStorage->setFileName( filename ); 1979 mStorage->setFileName( filename );
1980 bool success; 1980 bool success;
1981 success = mStorage->save(); 1981 success = mStorage->save();
1982 if ( !success ) { 1982 if ( !success ) {
1983 return false; 1983 return false;
1984 } 1984 }
1985 if ( filename == MainWindow::defaultFileName() ) { 1985 if ( filename == MainWindow::defaultFileName() ) {
1986 setLoadedFileVersion( lfv ); 1986 setLoadedFileVersion( lfv );
1987 watchSavedFile(); 1987 watchSavedFile();
1988 } 1988 }
1989 return true; 1989 return true;
1990} 1990}
1991 1991
1992void CalendarView::closeCalendar() 1992void CalendarView::closeCalendar()
1993{ 1993{
1994 1994
1995 // child windows no longer valid 1995 // child windows no longer valid
1996 clearAllViews(); 1996 clearAllViews();
1997 emit closingDown(); 1997 emit closingDown();
1998 1998
1999 mCalendar->close(); 1999 mCalendar->close();
2000 setModified(false); 2000 setModified(false);
2001 updateView(); 2001 updateView();
2002} 2002}
2003 2003
2004void CalendarView::archiveCalendar() 2004void CalendarView::archiveCalendar()
2005{ 2005{
2006 mDialogManager->showArchiveDialog(); 2006 mDialogManager->showArchiveDialog();
2007} 2007}
2008 2008
2009 2009
2010void CalendarView::readSettings() 2010void CalendarView::readSettings()
2011{ 2011{
2012 2012
2013 2013
2014 // mViewManager->showAgendaView(); 2014 // mViewManager->showAgendaView();
2015 QString str; 2015 QString str;
2016 //qDebug("CalendarView::readSettings() "); 2016 //qDebug("CalendarView::readSettings() ");
2017 // read settings from the KConfig, supplying reasonable 2017 // read settings from the KConfig, supplying reasonable
2018 // defaults where none are to be found 2018 // defaults where none are to be found
2019 KConfig *config = KOGlobals::config(); 2019 KConfig *config = KOGlobals::config();
2020#ifndef KORG_NOSPLITTER 2020#ifndef KORG_NOSPLITTER
2021 config->setGroup("KOrganizer Geometry"); 2021 config->setGroup("KOrganizer Geometry");
2022 2022
2023 QValueList<int> sizes = config->readIntListEntry("Separator1"); 2023 QValueList<int> sizes = config->readIntListEntry("Separator1");
2024 if (sizes.count() != 2) { 2024 if (sizes.count() != 2) {
2025 sizes << mDateNavigator->minimumSizeHint().width(); 2025 sizes << mDateNavigator->minimumSizeHint().width();
2026 sizes << 300; 2026 sizes << 300;
2027 } 2027 }
2028 mPanner->setSizes(sizes); 2028 mPanner->setSizes(sizes);
2029 2029
2030 sizes = config->readIntListEntry("Separator2"); 2030 sizes = config->readIntListEntry("Separator2");
2031 if ( ( mResourceView && sizes.count() == 4 ) || 2031 if ( ( mResourceView && sizes.count() == 4 ) ||
2032 ( !mResourceView && sizes.count() == 3 ) ) { 2032 ( !mResourceView && sizes.count() == 3 ) ) {
2033 mLeftSplitter->setSizes(sizes); 2033 mLeftSplitter->setSizes(sizes);
2034 } 2034 }
2035#endif 2035#endif
2036 globalFlagBlockAgenda = 1; 2036 globalFlagBlockAgenda = 1;
2037 mViewManager->showAgendaView(); 2037 mViewManager->showAgendaView();
2038 //mViewManager->readSettings( config ); 2038 //mViewManager->readSettings( config );
2039 mTodoList->restoreLayout(config,QString("Todo Layout")); 2039 mTodoList->restoreLayout(config,QString("Todo Layout"));
2040 readFilterSettings(config); 2040 readFilterSettings(config);
2041 2041
2042#ifdef DESKTOP_VERSION 2042#ifdef DESKTOP_VERSION
2043 config->setGroup("WidgetLayout"); 2043 config->setGroup("WidgetLayout");
2044 QStringList list; 2044 QStringList list;
2045 list = config->readListEntry("MainLayout"); 2045 list = config->readListEntry("MainLayout");
2046 int x,y,w,h; 2046 int x,y,w,h;
2047 if ( ! list.isEmpty() ) { 2047 if ( ! list.isEmpty() ) {
2048 x = list[0].toInt(); 2048 x = list[0].toInt();
2049 y = list[1].toInt(); 2049 y = list[1].toInt();
2050 w = list[2].toInt(); 2050 w = list[2].toInt();
2051 h = list[3].toInt(); 2051 h = list[3].toInt();
2052 KApplication::testCoords( &x,&y,&w,&h ); 2052 KApplication::testCoords( &x,&y,&w,&h );
2053 topLevelWidget()->setGeometry(x,y,w,h); 2053 topLevelWidget()->setGeometry(x,y,w,h);
2054 2054
2055 } else { 2055 } else {
2056 topLevelWidget()->setGeometry( 40 ,40 , 640, 440); 2056 topLevelWidget()->setGeometry( 40 ,40 , 640, 440);
2057 } 2057 }
2058 list = config->readListEntry("EditEventLayout"); 2058 list = config->readListEntry("EditEventLayout");
2059 if ( ! list.isEmpty() ) { 2059 if ( ! list.isEmpty() ) {
2060 x = list[0].toInt(); 2060 x = list[0].toInt();
2061 y = list[1].toInt(); 2061 y = list[1].toInt();
2062 w = list[2].toInt(); 2062 w = list[2].toInt();
2063 h = list[3].toInt(); 2063 h = list[3].toInt();
2064 KApplication::testCoords( &x,&y,&w,&h ); 2064 KApplication::testCoords( &x,&y,&w,&h );
2065 mEventEditor->setGeometry(x,y,w,h); 2065 mEventEditor->setGeometry(x,y,w,h);
2066 2066
2067 } 2067 }
2068 list = config->readListEntry("EditTodoLayout"); 2068 list = config->readListEntry("EditTodoLayout");
2069 if ( ! list.isEmpty() ) { 2069 if ( ! list.isEmpty() ) {
2070 x = list[0].toInt(); 2070 x = list[0].toInt();
2071 y = list[1].toInt(); 2071 y = list[1].toInt();
2072 w = list[2].toInt(); 2072 w = list[2].toInt();
2073 h = list[3].toInt(); 2073 h = list[3].toInt();
2074 KApplication::testCoords( &x,&y,&w,&h ); 2074 KApplication::testCoords( &x,&y,&w,&h );
2075 mTodoEditor->setGeometry(x,y,w,h); 2075 mTodoEditor->setGeometry(x,y,w,h);
2076 2076
2077 } 2077 }
2078 list = config->readListEntry("ViewerLayout"); 2078 list = config->readListEntry("ViewerLayout");
2079 if ( ! list.isEmpty() ) { 2079 if ( ! list.isEmpty() ) {
2080 x = list[0].toInt(); 2080 x = list[0].toInt();
2081 y = list[1].toInt(); 2081 y = list[1].toInt();
2082 w = list[2].toInt(); 2082 w = list[2].toInt();
2083 h = list[3].toInt(); 2083 h = list[3].toInt();
2084 KApplication::testCoords( &x,&y,&w,&h ); 2084 KApplication::testCoords( &x,&y,&w,&h );
2085 getEventViewerDialog()->setGeometry(x,y,w,h); 2085 getEventViewerDialog()->setGeometry(x,y,w,h);
2086 } 2086 }
2087#endif 2087#endif
2088 config->setGroup( "Views" ); 2088 config->setGroup( "Views" );
2089 int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); 2089 int dateCount = config->readNumEntry( "ShownDatesCount", 7 );
2090 2090
2091 QValueList<int> sizes = config->readIntListEntry("Left Splitter Frame"); 2091 QValueList<int> sizes = config->readIntListEntry("Left Splitter Frame");
2092 2092
2093 int resetval = 0; 2093 int resetval = 0;
2094 int maxVal = 0; 2094 int maxVal = 0;
2095 if (sizes.count() != 3) { 2095 if (sizes.count() != 3) {
2096 if ( KOPrefs::instance()->mVerticalScreen ) { 2096 if ( KOPrefs::instance()->mVerticalScreen ) {
2097 resetval = mDateNavigator->sizeHint().width()+2; 2097 resetval = mDateNavigator->sizeHint().width()+2;
2098 } else { 2098 } else {
2099 resetval = mDateNavigator->sizeHint().height()+2; 2099 resetval = mDateNavigator->sizeHint().height()+2;
2100 } 2100 }
2101 } 2101 }
2102 if ( resetval ) { 2102 if ( resetval ) {
2103 sizes.clear(); 2103 sizes.clear();
2104 if ( KOPrefs::instance()->mVerticalScreen ) { 2104 if ( KOPrefs::instance()->mVerticalScreen ) {
2105 maxVal = QApplication::desktop()->width() -10; 2105 maxVal = QApplication::desktop()->width() -10;
2106 } else { 2106 } else {
2107 maxVal = QApplication::desktop()->height()-10; 2107 maxVal = QApplication::desktop()->height()-10;
2108 } 2108 }
2109 sizes << resetval; 2109 sizes << resetval;
2110 if ( maxVal < resetval + resetval) 2110 if ( maxVal < resetval + resetval)
2111 resetval = maxVal - resetval; 2111 resetval = maxVal - resetval;
2112 sizes << resetval; 2112 sizes << resetval;
2113 sizes << 100; 2113 sizes << 100;
2114 } 2114 }
2115 mLeftFrame->setSizes(sizes); 2115 mLeftFrame->setSizes(sizes);
2116 sizes = config->readIntListEntry("Main Splitter Frame"); 2116 sizes = config->readIntListEntry("Main Splitter Frame");
2117 resetval = 0; 2117 resetval = 0;
2118 maxVal = 0; 2118 maxVal = 0;
2119 if (sizes.count() != 2) { 2119 if (sizes.count() != 2) {
2120 if ( !KOPrefs::instance()->mVerticalScreen ) { 2120 if ( !KOPrefs::instance()->mVerticalScreen ) {
2121 resetval = mDateNavigator->sizeHint().width()+2; 2121 resetval = mDateNavigator->sizeHint().width()+2;
2122 } else { 2122 } else {
2123 resetval = mDateNavigator->sizeHint().height()+2; 2123 resetval = mDateNavigator->sizeHint().height()+2;
2124 } 2124 }
2125 } 2125 }
2126 if ( resetval ) { 2126 if ( resetval ) {
2127 sizes.clear(); 2127 sizes.clear();
2128 if ( !KOPrefs::instance()->mVerticalScreen ) { 2128 if ( !KOPrefs::instance()->mVerticalScreen ) {
2129 maxVal = QApplication::desktop()->width() -10; 2129 maxVal = QApplication::desktop()->width() -10;
2130 } else { 2130 } else {
2131 maxVal = QApplication::desktop()->height()-10; 2131 maxVal = QApplication::desktop()->height()-10;
2132 } 2132 }
2133 sizes << resetval; 2133 sizes << resetval;
2134 if ( maxVal < resetval + resetval) 2134 if ( maxVal < resetval + resetval)
2135 resetval = maxVal - resetval; 2135 resetval = maxVal - resetval;
2136 sizes << resetval; 2136 sizes << resetval;
2137 } 2137 }
2138 mMainFrame->setSizes(sizes); 2138 mMainFrame->setSizes(sizes);
2139 if ( dateCount == 5 ) mNavigator->selectWorkWeek(); 2139 if ( dateCount == 5 ) mNavigator->selectWorkWeek();
2140 else if ( dateCount == 7 ) mNavigator->selectWeek(); 2140 else if ( dateCount == 7 ) mNavigator->selectWeek();
2141 else mNavigator->selectDates( dateCount ); 2141 else mNavigator->selectDates( dateCount );
2142 // mViewManager->readSettings( config ); 2142 // mViewManager->readSettings( config );
2143 updateConfig(); 2143 updateConfig();
2144 globalFlagBlockAgenda = 2; 2144 globalFlagBlockAgenda = 2;
2145 mViewManager->readSettings( config ); 2145 mViewManager->readSettings( config );
2146 QTimer::singleShot( 1, mDateNavigator, SLOT ( setResizeEnabled() ) ); 2146 QTimer::singleShot( 1, mDateNavigator, SLOT ( setResizeEnabled() ) );
2147} 2147}
2148 2148
2149 2149
2150void CalendarView::writeSettings() 2150void CalendarView::writeSettings()
2151{ 2151{
2152 // kdDebug() << "CalendarView::writeSettings" << endl; 2152 // kdDebug() << "CalendarView::writeSettings" << endl;
2153 2153
2154 KConfig *config = KOGlobals::config(); 2154 KConfig *config = KOGlobals::config();
2155 2155
2156 mViewManager->writeSettings( config ); 2156 mViewManager->writeSettings( config );
2157 mTodoList->saveLayout(config,QString("Todo Layout")); 2157 mTodoList->saveLayout(config,QString("Todo Layout"));
2158 mDialogManager->writeSettings( config ); 2158 mDialogManager->writeSettings( config );
2159 //KOPrefs::instance()->usrWriteConfig(); 2159 //KOPrefs::instance()->usrWriteConfig();
2160 KOPrefs::instance()->writeConfig(); 2160 KOPrefs::instance()->writeConfig();
2161 2161
2162 writeFilterSettings(config); 2162 writeFilterSettings(config);
2163 config->setGroup( "AppRun" ); 2163 config->setGroup( "AppRun" );
2164 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) ); 2164 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) );
2165 int days = dt.daysTo( QDate::currentDate() ); 2165 int days = dt.daysTo( QDate::currentDate() );
2166 dt = dt.addDays( days ); 2166 dt = dt.addDays( days );
2167 int secs = dt.secsTo( QDateTime::currentDateTime() ); 2167 int secs = dt.secsTo( QDateTime::currentDateTime() );
2168 config->writeEntry( "LatestProgramStopDays", days ); 2168 config->writeEntry( "LatestProgramStopDays", days );
2169 config->writeEntry( "LatestProgramStopSecs", secs ); 2169 config->writeEntry( "LatestProgramStopSecs", secs );
2170 //qDebug("KO: Writing stop time: %d ", secs); 2170 //qDebug("KO: Writing stop time: %d ", secs);
2171 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() ); 2171 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() );
2172 //QDateTime latest = dt.addSecs ( secs ); 2172 //QDateTime latest = dt.addSecs ( secs );
2173 //qDebug("KO: Termination on %s ", latest.toString().latin1()); 2173 //qDebug("KO: Termination on %s ", latest.toString().latin1());
2174 config->setGroup( "Views" ); 2174 config->setGroup( "Views" );
2175 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() ); 2175 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() );
2176 2176
2177#if 0 2177#if 0
2178 qDebug("********************* "); 2178 qDebug("********************* ");
2179 qDebug("Testcode secsto "); 2179 qDebug("Testcode secsto ");
2180 QDateTime dt_nodaylight ( QDate (2005,3,26), QTime( 0,0,0 ) ); 2180 QDateTime dt_nodaylight ( QDate (2005,3,26), QTime( 0,0,0 ) );
2181 QDateTime dt_daylight ( QDate (2005,3,29), QTime( 0,0,0 ) ); 2181 QDateTime dt_daylight ( QDate (2005,3,29), QTime( 0,0,0 ) );
2182 int secsto = dt_nodaylight.secsTo( dt_daylight ); 2182 int secsto = dt_nodaylight.secsTo( dt_daylight );
2183 QDateTime dt_daylight_wrong = dt_nodaylight.addSecs( secsto ); 2183 QDateTime dt_daylight_wrong = dt_nodaylight.addSecs( secsto );
2184 qDebug("dt nodaylight %s ",dt_nodaylight.toString().latin1() ); 2184 qDebug("dt nodaylight %s ",dt_nodaylight.toString().latin1() );
2185 qDebug("dt daylight %s ",dt_daylight.toString().latin1() ); 2185 qDebug("dt daylight %s ",dt_daylight.toString().latin1() );
2186 qDebug("dt daylight_wrong %s ",dt_daylight_wrong.toString().latin1() ); 2186 qDebug("dt daylight_wrong %s ",dt_daylight_wrong.toString().latin1() );
2187 qDebug("Computed secsTo %d . in minutes: %d . in hours: %d ", secsto, secsto/60, secsto/3600); 2187 qDebug("Computed secsTo %d . in minutes: %d . in hours: %d ", secsto, secsto/60, secsto/3600);
2188 qDebug("********************* testcode end"); 2188 qDebug("********************* testcode end");
2189 2189
2190#endif 2190#endif
2191 2191
2192 QValueList<int> listINT = mLeftFrame->sizes(); 2192 QValueList<int> listINT = mLeftFrame->sizes();
2193 config->writeEntry("Left Splitter Frame",listINT); 2193 config->writeEntry("Left Splitter Frame",listINT);
2194 QValueList<int> listINT2 = mMainFrame->sizes(); 2194 QValueList<int> listINT2 = mMainFrame->sizes();
2195 config->writeEntry("Main Splitter Frame",listINT2); 2195 config->writeEntry("Main Splitter Frame",listINT2);
2196#ifdef DESKTOP_VERSION 2196#ifdef DESKTOP_VERSION
2197 config->setGroup("WidgetLayout"); 2197 config->setGroup("WidgetLayout");
2198 QStringList list ;//= config->readListEntry("MainLayout"); 2198 QStringList list ;//= config->readListEntry("MainLayout");
2199 int x,y,w,h; 2199 int x,y,w,h;
2200 QWidget* wid; 2200 QWidget* wid;
2201 wid = topLevelWidget(); 2201 wid = topLevelWidget();
2202 x = wid->geometry().x(); 2202 x = wid->geometry().x();
2203 y = wid->geometry().y(); 2203 y = wid->geometry().y();
2204 w = wid->width(); 2204 w = wid->width();
2205 h = wid->height(); 2205 h = wid->height();
2206 list.clear(); 2206 list.clear();
2207 list << QString::number( x ); 2207 list << QString::number( x );
2208 list << QString::number( y ); 2208 list << QString::number( y );
2209 list << QString::number( w ); 2209 list << QString::number( w );
2210 list << QString::number( h ); 2210 list << QString::number( h );
2211 config->writeEntry("MainLayout",list ); 2211 config->writeEntry("MainLayout",list );
2212 2212
2213 wid = mEventEditor; 2213 wid = mEventEditor;
2214 x = wid->geometry().x(); 2214 x = wid->geometry().x();
2215 y = wid->geometry().y(); 2215 y = wid->geometry().y();
2216 w = wid->width(); 2216 w = wid->width();
2217 h = wid->height(); 2217 h = wid->height();
2218 list.clear(); 2218 list.clear();
2219 list << QString::number( x ); 2219 list << QString::number( x );
2220 list << QString::number( y ); 2220 list << QString::number( y );
2221 list << QString::number( w ); 2221 list << QString::number( w );
2222 list << QString::number( h ); 2222 list << QString::number( h );
2223 config->writeEntry("EditEventLayout",list ); 2223 config->writeEntry("EditEventLayout",list );
2224 2224
2225 wid = mTodoEditor; 2225 wid = mTodoEditor;
2226 x = wid->geometry().x(); 2226 x = wid->geometry().x();
2227 y = wid->geometry().y(); 2227 y = wid->geometry().y();
2228 w = wid->width(); 2228 w = wid->width();
2229 h = wid->height(); 2229 h = wid->height();
2230 list.clear(); 2230 list.clear();
2231 list << QString::number( x ); 2231 list << QString::number( x );
2232 list << QString::number( y ); 2232 list << QString::number( y );
2233 list << QString::number( w ); 2233 list << QString::number( w );
2234 list << QString::number( h ); 2234 list << QString::number( h );
2235 config->writeEntry("EditTodoLayout",list ); 2235 config->writeEntry("EditTodoLayout",list );
2236 wid = getEventViewerDialog(); 2236 wid = getEventViewerDialog();
2237 x = wid->geometry().x(); 2237 x = wid->geometry().x();
2238 y = wid->geometry().y(); 2238 y = wid->geometry().y();
2239 w = wid->width(); 2239 w = wid->width();
2240 h = wid->height(); 2240 h = wid->height();
2241 list.clear(); 2241 list.clear();
2242 list << QString::number( x ); 2242 list << QString::number( x );
2243 list << QString::number( y ); 2243 list << QString::number( y );
2244 list << QString::number( w ); 2244 list << QString::number( w );
2245 list << QString::number( h ); 2245 list << QString::number( h );
2246 config->writeEntry("ViewerLayout",list ); 2246 config->writeEntry("ViewerLayout",list );
2247 wid = mDialogManager->getSearchDialog(); 2247 wid = mDialogManager->getSearchDialog();
2248 if ( wid ) { 2248 if ( wid ) {
2249 x = wid->geometry().x(); 2249 x = wid->geometry().x();
2250 y = wid->geometry().y(); 2250 y = wid->geometry().y();
2251 w = wid->width(); 2251 w = wid->width();
2252 h = wid->height(); 2252 h = wid->height();
2253 list.clear(); 2253 list.clear();
2254 list << QString::number( x ); 2254 list << QString::number( x );
2255 list << QString::number( y ); 2255 list << QString::number( y );
2256 list << QString::number( w ); 2256 list << QString::number( w );
2257 list << QString::number( h ); 2257 list << QString::number( h );
2258 config->writeEntry("SearchLayout",list ); 2258 config->writeEntry("SearchLayout",list );
2259 } 2259 }
2260#endif 2260#endif
2261 2261
2262 2262
2263 config->sync(); 2263 config->sync();
2264} 2264}
2265 2265
2266void CalendarView::readFilterSettings(KConfig *config) 2266void CalendarView::readFilterSettings(KConfig *config)
2267{ 2267{
2268 // kdDebug() << "CalendarView::readFilterSettings()" << endl; 2268 // kdDebug() << "CalendarView::readFilterSettings()" << endl;
2269 2269
2270 mFilters.clear(); 2270 mFilters.clear();
2271 2271
2272 config->setGroup("General"); 2272 config->setGroup("General");
2273 QStringList filterList = config->readListEntry("CalendarFilters"); 2273 QStringList filterList = config->readListEntry("CalendarFilters");
2274 2274
2275 QStringList::ConstIterator it = filterList.begin(); 2275 QStringList::ConstIterator it = filterList.begin();
2276 QStringList::ConstIterator end = filterList.end(); 2276 QStringList::ConstIterator end = filterList.end();
2277 while(it != end) { 2277 while(it != end) {
2278 // kdDebug() << " filter: " << (*it) << endl; 2278 // kdDebug() << " filter: " << (*it) << endl;
2279 2279
2280 CalFilter *filter; 2280 CalFilter *filter;
2281 filter = new CalFilter(*it); 2281 filter = new CalFilter(*it);
2282 config->setGroup("Filter_" + (*it).utf8()); 2282 config->setGroup("Filter_" + (*it).utf8());
2283 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) ); 2283 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) );
2284 filter->setCriteria(config->readNumEntry("Criteria",0)); 2284 filter->setCriteria(config->readNumEntry("Criteria",0));
2285 filter->setCategoryList(config->readListEntry("CategoryList")); 2285 filter->setCategoryList(config->readListEntry("CategoryList"));
2286 mFilters.append(filter); 2286 mFilters.append(filter);
2287 2287
2288 ++it; 2288 ++it;
2289 } 2289 }
2290 2290
2291 if (mFilters.count() == 0) { 2291 if (mFilters.count() == 0) {
2292 CalFilter *filter = new CalFilter(i18n("Default")); 2292 CalFilter *filter = new CalFilter(i18n("Default"));
2293 mFilters.append(filter); 2293 mFilters.append(filter);
2294 } 2294 }
2295 mFilterView->updateFilters(); 2295 mFilterView->updateFilters();
2296 config->setGroup("FilterView"); 2296 config->setGroup("FilterView");
2297 2297
2298 mFilterView->blockSignals(true); 2298 mFilterView->blockSignals(true);
2299 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled")); 2299 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled"));
2300 mFilterView->setSelectedFilter(config->readEntry("Current Filter")); 2300 mFilterView->setSelectedFilter(config->readEntry("Current Filter"));
2301 mFilterView->blockSignals(false); 2301 mFilterView->blockSignals(false);
2302 // We do it manually to avoid it being done twice by the above calls 2302 // We do it manually to avoid it being done twice by the above calls
2303 updateFilter(); 2303 updateFilter();
2304} 2304}
2305 2305
2306void CalendarView::writeFilterSettings(KConfig *config) 2306void CalendarView::writeFilterSettings(KConfig *config)
2307{ 2307{
2308 // kdDebug() << "CalendarView::writeFilterSettings()" << endl; 2308 // kdDebug() << "CalendarView::writeFilterSettings()" << endl;
2309 2309
2310 QStringList filterList; 2310 QStringList filterList;
2311 2311
2312 CalFilter *filter = mFilters.first(); 2312 CalFilter *filter = mFilters.first();
2313 while(filter) { 2313 while(filter) {
2314 // kdDebug() << " fn: " << filter->name() << endl; 2314 // kdDebug() << " fn: " << filter->name() << endl;
2315 filterList << filter->name(); 2315 filterList << filter->name();
2316 config->setGroup("Filter_" + filter->name().utf8()); 2316 config->setGroup("Filter_" + filter->name().utf8());
2317 config->writeEntry("Criteria",filter->criteria()); 2317 config->writeEntry("Criteria",filter->criteria());
2318 config->writeEntry("CategoryList",filter->categoryList()); 2318 config->writeEntry("CategoryList",filter->categoryList());
2319 filter = mFilters.next(); 2319 filter = mFilters.next();
2320 } 2320 }
2321 config->setGroup("General"); 2321 config->setGroup("General");
2322 config->writeEntry("CalendarFilters",filterList); 2322 config->writeEntry("CalendarFilters",filterList);
2323 2323
2324 config->setGroup("FilterView"); 2324 config->setGroup("FilterView");
2325 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled()); 2325 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled());
2326 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name()); 2326 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name());
2327} 2327}
2328 2328
2329 2329
2330void CalendarView::goToday() 2330void CalendarView::goToday()
2331{ 2331{
2332 if ( mViewManager->currentView()->isMonthView() ) 2332 if ( mViewManager->currentView()->isMonthView() )
2333 mNavigator->selectTodayMonth(); 2333 mNavigator->selectTodayMonth();
2334 else 2334 else
2335 mNavigator->selectToday(); 2335 mNavigator->selectToday();
2336} 2336}
2337 2337
2338void CalendarView::goNext() 2338void CalendarView::goNext()
2339{ 2339{
2340 mNavigator->selectNext(); 2340 mNavigator->selectNext();
2341} 2341}
2342 2342
2343void CalendarView::goPrevious() 2343void CalendarView::goPrevious()
2344{ 2344{
2345 mNavigator->selectPrevious(); 2345 mNavigator->selectPrevious();
2346} 2346}
2347void CalendarView::goNextMonth() 2347void CalendarView::goNextMonth()
2348{ 2348{
2349 mNavigator->selectNextMonth(); 2349 mNavigator->selectNextMonth();
2350} 2350}
2351 2351
2352void CalendarView::goPreviousMonth() 2352void CalendarView::goPreviousMonth()
2353{ 2353{
2354 mNavigator->selectPreviousMonth(); 2354 mNavigator->selectPreviousMonth();
2355} 2355}
2356void CalendarView::writeLocale() 2356void CalendarView::writeLocale()
2357{ 2357{
2358 //KPimGlobalPrefs::instance()->setGlobalConfig(); 2358 //KPimGlobalPrefs::instance()->setGlobalConfig();
2359#if 0 2359#if 0
2360 KGlobal::locale()->setHore24Format( !KOPrefs::instance()->mPreferredTime ); 2360 KGlobal::locale()->setHore24Format( !KOPrefs::instance()->mPreferredTime );
2361 KGlobal::locale()->setWeekStartMonday( !KOPrefs::instance()->mWeekStartsOnSunday ); 2361 KGlobal::locale()->setWeekStartMonday( !KOPrefs::instance()->mWeekStartsOnSunday );
2362 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)KOPrefs::instance()->mPreferredDate ); 2362 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)KOPrefs::instance()->mPreferredDate );
2363 KGlobal::locale()->setLanguage( KOPrefs::instance()->mPreferredLanguage ); 2363 KGlobal::locale()->setLanguage( KOPrefs::instance()->mPreferredLanguage );
2364 QString dummy = KOPrefs::instance()->mUserDateFormatLong; 2364 QString dummy = KOPrefs::instance()->mUserDateFormatLong;
2365 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") )); 2365 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") ));
2366 dummy = KOPrefs::instance()->mUserDateFormatShort; 2366 dummy = KOPrefs::instance()->mUserDateFormatShort;
2367 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") )); 2367 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") ));
2368 KGlobal::locale()->setDaylightSaving( KOPrefs::instance()->mUseDaylightsaving, 2368 KGlobal::locale()->setDaylightSaving( KOPrefs::instance()->mUseDaylightsaving,
2369 KOPrefs::instance()->mDaylightsavingStart, 2369 KOPrefs::instance()->mDaylightsavingStart,
2370 KOPrefs::instance()->mDaylightsavingEnd ); 2370 KOPrefs::instance()->mDaylightsavingEnd );
2371 KGlobal::locale()->setTimezone( KPimGlobalPrefs::instance()->mTimeZoneId ); 2371 KGlobal::locale()->setTimezone( KPimGlobalPrefs::instance()->mTimeZoneId );
2372#endif 2372#endif
2373} 2373}
2374void CalendarView::updateConfig() 2374void CalendarView::updateConfig()
2375{ 2375{
2376 writeLocale(); 2376 writeLocale();
2377 if ( KOPrefs::instance()->mUseAppColors ) 2377 if ( KOPrefs::instance()->mUseAppColors )
2378 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 2378 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
2379 emit configChanged(); 2379 emit configChanged();
2380 mTodoList->updateConfig(); 2380 mTodoList->updateConfig();
2381 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont); 2381 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont);
2382 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2382 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2383 // To make the "fill window" configurations work 2383 // To make the "fill window" configurations work
2384 //mViewManager->raiseCurrentView(); 2384 //mViewManager->raiseCurrentView();
2385} 2385}
2386 2386
2387 2387
2388void CalendarView::eventChanged(Event *event) 2388void CalendarView::eventChanged(Event *event)
2389{ 2389{
2390 changeEventDisplay(event,KOGlobals::EVENTEDITED); 2390 changeEventDisplay(event,KOGlobals::EVENTEDITED);
2391 //updateUnmanagedViews(); 2391 //updateUnmanagedViews();
2392} 2392}
2393 2393
2394void CalendarView::eventAdded(Event *event) 2394void CalendarView::eventAdded(Event *event)
2395{ 2395{
2396 changeEventDisplay(event,KOGlobals::EVENTADDED); 2396 changeEventDisplay(event,KOGlobals::EVENTADDED);
2397} 2397}
2398 2398
2399void CalendarView::eventToBeDeleted(Event *) 2399void CalendarView::eventToBeDeleted(Event *)
2400{ 2400{
2401 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; 2401 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl;
2402} 2402}
2403 2403
2404void CalendarView::eventDeleted() 2404void CalendarView::eventDeleted()
2405{ 2405{
2406 changeEventDisplay(0,KOGlobals::EVENTDELETED); 2406 changeEventDisplay(0,KOGlobals::EVENTDELETED);
2407} 2407}
2408void CalendarView::changeTodoDisplay(Todo *which, int action) 2408void CalendarView::changeTodoDisplay(Todo *which, int action)
2409{ 2409{
2410 changeIncidenceDisplay((Incidence *)which, action); 2410 changeIncidenceDisplay((Incidence *)which, action);
2411 mDateNavigator->updateView(); //LR 2411 mDateNavigator->updateView(); //LR
2412 //mDialogManager->updateSearchDialog(); 2412 //mDialogManager->updateSearchDialog();
2413 2413
2414 if (which) { 2414 if (which) {
2415 mViewManager->updateWNview(); 2415 mViewManager->updateWNview();
2416 //mTodoList->updateView(); 2416 //mTodoList->updateView();
2417 } 2417 }
2418 2418
2419} 2419}
2420 2420
2421void CalendarView::changeIncidenceDisplay(Incidence *which, int action) 2421void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
2422{ 2422{
2423 updateUnmanagedViews(); 2423 updateUnmanagedViews();
2424 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); 2424 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action );
2425 if ( action == KOGlobals::EVENTDELETED ) { //delete 2425 if ( action == KOGlobals::EVENTDELETED ) { //delete
2426 mCalendar->checkAlarmForIncidence( 0, true ); 2426 mCalendar->checkAlarmForIncidence( 0, true );
2427 if ( mEventViewerDialog ) 2427 if ( mEventViewerDialog )
2428 mEventViewerDialog->hide(); 2428 mEventViewerDialog->hide();
2429 } 2429 }
2430 else 2430 else
2431 mCalendar->checkAlarmForIncidence( which , false ); 2431 mCalendar->checkAlarmForIncidence( which , false );
2432} 2432}
2433 2433
2434// most of the changeEventDisplays() right now just call the view's 2434// most of the changeEventDisplays() right now just call the view's
2435// total update mode, but they SHOULD be recoded to be more refresh-efficient. 2435// total update mode, but they SHOULD be recoded to be more refresh-efficient.
2436void CalendarView::changeEventDisplay(Event *which, int action) 2436void CalendarView::changeEventDisplay(Event *which, int action)
2437{ 2437{
2438 // kdDebug() << "CalendarView::changeEventDisplay" << endl; 2438 // kdDebug() << "CalendarView::changeEventDisplay" << endl;
2439 changeIncidenceDisplay((Incidence *)which, action); 2439 changeIncidenceDisplay((Incidence *)which, action);
2440 mDateNavigator->updateView(); 2440 mDateNavigator->updateView();
2441 //mDialogManager->updateSearchDialog(); 2441 //mDialogManager->updateSearchDialog();
2442 2442
2443 if (which) { 2443 if (which) {
2444 // If there is an event view visible update the display 2444 // If there is an event view visible update the display
2445 mViewManager->currentView()->changeEventDisplay(which,action); 2445 mViewManager->currentView()->changeEventDisplay(which,action);
2446 // TODO: check, if update needed 2446 // TODO: check, if update needed
2447 // if (which->getTodoStatus()) { 2447 // if (which->getTodoStatus()) {
2448 mTodoList->updateView(); 2448 mTodoList->updateView();
2449 // } 2449 // }
2450 } else { 2450 } else {
2451 mViewManager->currentView()->updateView(); 2451 mViewManager->currentView()->updateView();
2452 } 2452 }
2453} 2453}
2454 2454
2455 2455
2456void CalendarView::updateTodoViews() 2456void CalendarView::updateTodoViews()
2457{ 2457{
2458 mTodoList->updateView(); 2458 mTodoList->updateView();
2459 mViewManager->currentView()->updateView(); 2459 mViewManager->currentView()->updateView();
2460 2460
2461} 2461}
2462 2462
2463 2463
2464void CalendarView::updateView(const QDate &start, const QDate &end) 2464void CalendarView::updateView(const QDate &start, const QDate &end)
2465{ 2465{
2466 mTodoList->updateView(); 2466 mTodoList->updateView();
2467 mViewManager->updateView(start, end); 2467 mViewManager->updateView(start, end);
2468 //mDateNavigator->updateView(); 2468 //mDateNavigator->updateView();
2469} 2469}
2470 2470
2471void CalendarView::clearAllViews() 2471void CalendarView::clearAllViews()
2472{ 2472{
2473 mTodoList->clearList(); 2473 mTodoList->clearList();
2474 mViewManager->clearAllViews(); 2474 mViewManager->clearAllViews();
2475 SearchDialog * sd = mDialogManager->getSearchDialog(); 2475 SearchDialog * sd = mDialogManager->getSearchDialog();
2476 if ( sd ) { 2476 if ( sd ) {
2477 KOListView* kol = sd->listview(); 2477 KOListView* kol = sd->listview();
2478 if ( kol ) 2478 if ( kol )
2479 kol->clearList(); 2479 kol->clearList();
2480 } 2480 }
2481} 2481}
2482void CalendarView::updateView() 2482void CalendarView::updateView()
2483{ 2483{
2484 DateList tmpList = mNavigator->selectedDates(); 2484 DateList tmpList = mNavigator->selectedDates();
2485 2485
2486 if ( KOPrefs::instance()->mHideNonStartedTodos ) 2486 if ( KOPrefs::instance()->mHideNonStartedTodos )
2487 mTodoList->updateView(); 2487 mTodoList->updateView();
2488 // We assume that the navigator only selects consecutive days. 2488 // We assume that the navigator only selects consecutive days.
2489 updateView( tmpList.first(), tmpList.last() ); 2489 updateView( tmpList.first(), tmpList.last() );
2490} 2490}
2491 2491
2492void CalendarView::updateUnmanagedViews() 2492void CalendarView::updateUnmanagedViews()
2493{ 2493{
2494 mDateNavigator->updateDayMatrix(); 2494 mDateNavigator->updateDayMatrix();
2495} 2495}
2496 2496
2497int CalendarView::msgItemDelete(const QString name) 2497int CalendarView::msgItemDelete(const QString name)
2498{ 2498{
2499 return KMessageBox::warningContinueCancel(this,name +"\n\n"+ 2499 return KMessageBox::warningContinueCancel(this,name +"\n\n"+
2500 i18n("This item will be\npermanently deleted."), 2500 i18n("This item will be\npermanently deleted."),
2501 i18n("KO/Pi Confirmation"),i18n("Delete")); 2501 i18n("KO/Pi Confirmation"),i18n("Delete"));
2502} 2502}
2503 2503
2504 2504
2505void CalendarView::edit_cut() 2505void CalendarView::edit_cut()
2506{ 2506{
2507 Event *anEvent=0; 2507 Event *anEvent=0;
2508 2508
2509 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2509 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2510 2510
2511 if (mViewManager->currentView()->isEventView()) { 2511 if (mViewManager->currentView()->isEventView()) {
2512 if ( incidence && incidence->typeID() == eventID ) { 2512 if ( incidence && incidence->typeID() == eventID ) {
2513 anEvent = static_cast<Event *>(incidence); 2513 anEvent = static_cast<Event *>(incidence);
2514 } 2514 }
2515 } 2515 }
2516 2516
2517 if (!anEvent) { 2517 if (!anEvent) {
2518 KNotifyClient::beep(); 2518 KNotifyClient::beep();
2519 return; 2519 return;
2520 } 2520 }
2521 DndFactory factory( mCalendar ); 2521 DndFactory factory( mCalendar );
2522 factory.cutIncidence(anEvent); 2522 factory.cutIncidence(anEvent);
2523 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2523 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2524} 2524}
2525 2525
2526void CalendarView::edit_copy() 2526void CalendarView::edit_copy()
2527{ 2527{
2528 Event *anEvent=0; 2528 Event *anEvent=0;
2529 2529
2530 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2530 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2531 2531
2532 if (mViewManager->currentView()->isEventView()) { 2532 if (mViewManager->currentView()->isEventView()) {
2533 if ( incidence && incidence->typeID() == eventID ) { 2533 if ( incidence && incidence->typeID() == eventID ) {
2534 anEvent = static_cast<Event *>(incidence); 2534 anEvent = static_cast<Event *>(incidence);
2535 } 2535 }
2536 } 2536 }
2537 2537
2538 if (!anEvent) { 2538 if (!anEvent) {
2539 KNotifyClient::beep(); 2539 KNotifyClient::beep();
2540 return; 2540 return;
2541 } 2541 }
2542 DndFactory factory( mCalendar ); 2542 DndFactory factory( mCalendar );
2543 factory.copyIncidence(anEvent); 2543 factory.copyIncidence(anEvent);
2544} 2544}
2545 2545
2546void CalendarView::edit_paste() 2546void CalendarView::edit_paste()
2547{ 2547{
2548 QDate date = mNavigator->selectedDates().first(); 2548 QDate date = mNavigator->selectedDates().first();
2549 2549
2550 DndFactory factory( mCalendar ); 2550 DndFactory factory( mCalendar );
2551 Event *pastedEvent = (Event *)factory.pasteIncidence( date ); 2551 Event *pastedEvent = (Event *)factory.pasteIncidence( date );
2552 2552
2553 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); 2553 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED );
2554} 2554}
2555void CalendarView::edit_global_options() 2555void CalendarView::edit_global_options()
2556{ 2556{
2557 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId; 2557 QString tz = KPimGlobalPrefs::instance()->mTimeZoneId;
2558 emit save(); 2558 emit save();
2559 emit saveStopTimer(); 2559 emit saveStopTimer();
2560 mDialogManager->showGlobalOptionsDialog(); 2560 mDialogManager->showGlobalOptionsDialog();
2561 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) { 2561 if ( tz != KPimGlobalPrefs::instance()->mTimeZoneId) {
2562 emit saveStopTimer(); 2562 emit saveStopTimer();
2563 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, i18n("The timezone has changed!\nShould the calendar be reloaded\nto apply timezone changes?\nPlease read Menu: Help->FAQ:\n\"How do I change the timezone?\"\nas well!"), 2563 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, i18n("The timezone has changed!\nShould the calendar be reloaded\nto apply timezone changes?\nPlease read Menu: Help->FAQ:\n\"How do I change the timezone?\"\nas well!"),
2564 i18n("Timezone settings"),i18n("Reload"))) { 2564 i18n("Timezone settings"),i18n("Reload"))) {
2565 qDebug("KO: TZ reload cancelled "); 2565 qDebug("KO: TZ reload cancelled ");
2566 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2566 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2567 return; 2567 return;
2568 } 2568 }
2569 qDebug("KO: Timezone change "); 2569 qDebug("KO: Timezone change ");
2570 openCalendar( MainWindow::defaultFileName() ); 2570 openCalendar( MainWindow::defaultFileName() );
2571 setModified(true); 2571 setModified(true);
2572 } 2572 }
2573 else 2573 else
2574 qDebug("KO: No tz change "); 2574 qDebug("KO: No tz change ");
2575} 2575}
2576void CalendarView::edit_options() 2576void CalendarView::edit_options()
2577{ 2577{
2578 mDialogManager->showOptionsDialog(); 2578 mDialogManager->showOptionsDialog();
2579} 2579}
2580 2580
2581 2581
2582void CalendarView::slotSelectPickerDate( QDate d) 2582void CalendarView::slotSelectPickerDate( QDate d)
2583{ 2583{
2584 mDateFrame->hide(); 2584 mDateFrame->hide();
2585 if ( mDatePickerMode == 1 ) { 2585 if ( mDatePickerMode == 1 ) {
2586 mNavigator->slotDaySelect( d ); 2586 mNavigator->slotDaySelect( d );
2587 } else if ( mDatePickerMode == 2 ) { 2587 } else if ( mDatePickerMode == 2 ) {
2588 if ( mMoveIncidence->typeID() == todoID ) { 2588 if ( mMoveIncidence->typeID() == todoID ) {
2589 Todo * to = (Todo *) mMoveIncidence; 2589 Todo * to = (Todo *) mMoveIncidence;
2590 QTime tim; 2590 QTime tim;
2591 int len = 0; 2591 int len = 0;
2592 if ( to->hasStartDate() && to->hasDueDate() ) 2592 if ( to->hasStartDate() && to->hasDueDate() )
2593 len = to->dtStart().secsTo( to->dtDue()); 2593 len = to->dtStart().secsTo( to->dtDue());
2594 if ( to->hasDueDate() ) 2594 if ( to->hasDueDate() )
2595 tim = to->dtDue().time(); 2595 tim = to->dtDue().time();
2596 else { 2596 else {
2597 tim = QTime ( 0,0,0 ); 2597 tim = QTime ( 0,0,0 );
2598 to->setFloats( true ); 2598 to->setFloats( true );
2599 to->setHasDueDate( true ); 2599 to->setHasDueDate( true );
2600 } 2600 }
2601 QDateTime dt ( d,tim ); 2601 QDateTime dt ( d,tim );
2602 to->setDtDue( dt ); 2602 to->setDtDue( dt );
2603 2603
2604 if ( to->hasStartDate() ) { 2604 if ( to->hasStartDate() ) {
2605 if ( len>0 ) 2605 if ( len>0 )
2606 to->setDtStart(to->dtDue().addSecs( -len )); 2606 to->setDtStart(to->dtDue().addSecs( -len ));
2607 else 2607 else
2608 if (to->dtStart() > to->dtDue() ) 2608 if (to->dtStart() > to->dtDue() )
2609 to->setDtStart(to->dtDue().addDays( -3 )); 2609 to->setDtStart(to->dtDue().addDays( -3 ));
2610 } 2610 }
2611 2611
2612 todoChanged( to ); 2612 todoChanged( to );
2613 } else { 2613 } else {
2614 if ( mMoveIncidence->doesRecur() ) { 2614 if ( mMoveIncidence->doesRecur() ) {
2615#if 0 2615#if 0
2616 // PENDING implement this 2616 // PENDING implement this
2617 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate ); 2617 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate );
2618 mCalendar()->addIncidence( newInc ); 2618 mCalendar()->addIncidence( newInc );
2619 if ( mMoveIncidence->typeID() == todoID ) 2619 if ( mMoveIncidence->typeID() == todoID )
2620 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED ); 2620 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED );
2621 else 2621 else
2622 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED); 2622 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED);
2623 mMoveIncidence = newInc; 2623 mMoveIncidence = newInc;
2624 2624
2625#endif 2625#endif
2626 } 2626 }
2627 QTime tim = mMoveIncidence->dtStart().time(); 2627 QTime tim = mMoveIncidence->dtStart().time();
2628 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); 2628 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd());
2629 QDateTime dt ( d,tim ); 2629 QDateTime dt ( d,tim );
2630 mMoveIncidence->setDtStart( dt ); 2630 mMoveIncidence->setDtStart( dt );
2631 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); 2631 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) );
2632 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); 2632 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED);
2633 } 2633 }
2634 2634
2635 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); 2635 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 );
2636 } 2636 }
2637} 2637}
2638 2638
2639void CalendarView::removeCategories() 2639void CalendarView::removeCategories()
2640{ 2640{
2641 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2641 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2642 QStringList catList = KOPrefs::instance()->mCustomCategories; 2642 QStringList catList = KOPrefs::instance()->mCustomCategories;
2643 QStringList catIncList; 2643 QStringList catIncList;
2644 QStringList newCatList; 2644 QStringList newCatList;
2645 Incidence* inc = incList.first(); 2645 Incidence* inc = incList.first();
2646 int i; 2646 int i;
2647 int count = 0; 2647 int count = 0;
2648 while ( inc ) { 2648 while ( inc ) {
2649 newCatList.clear(); 2649 newCatList.clear();
2650 catIncList = inc->categories() ; 2650 catIncList = inc->categories() ;
2651 for( i = 0; i< catIncList.count(); ++i ) { 2651 for( i = 0; i< catIncList.count(); ++i ) {
2652 if ( catList.contains (catIncList[i])) 2652 if ( catList.contains (catIncList[i]))
2653 newCatList.append( catIncList[i] ); 2653 newCatList.append( catIncList[i] );
2654 } 2654 }
2655 newCatList.sort(); 2655 newCatList.sort();
2656 inc->setCategories( newCatList.join(",") ); 2656 inc->setCategories( newCatList.join(",") );
2657 inc = incList.next(); 2657 inc = incList.next();
2658 } 2658 }
2659} 2659}
2660 2660
2661int CalendarView::addCategories() 2661int CalendarView::addCategories()
2662{ 2662{
2663 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2663 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2664 QStringList catList = KOPrefs::instance()->mCustomCategories; 2664 QStringList catList = KOPrefs::instance()->mCustomCategories;
2665 QStringList catIncList; 2665 QStringList catIncList;
2666 Incidence* inc = incList.first(); 2666 Incidence* inc = incList.first();
2667 int i; 2667 int i;
2668 int count = 0; 2668 int count = 0;
2669 while ( inc ) { 2669 while ( inc ) {
2670 catIncList = inc->categories() ; 2670 catIncList = inc->categories() ;
2671 for( i = 0; i< catIncList.count(); ++i ) { 2671 for( i = 0; i< catIncList.count(); ++i ) {
2672 if ( !catList.contains (catIncList[i])) { 2672 if ( !catList.contains (catIncList[i])) {
2673 catList.append( catIncList[i] ); 2673 catList.append( catIncList[i] );
2674 //qDebug("add cat %s ", catIncList[i].latin1()); 2674 //qDebug("add cat %s ", catIncList[i].latin1());
2675 ++count; 2675 ++count;
2676 } 2676 }
2677 } 2677 }
2678 inc = incList.next(); 2678 inc = incList.next();
2679 } 2679 }
2680 catList.sort(); 2680 catList.sort();
2681 KOPrefs::instance()->mCustomCategories = catList; 2681 KOPrefs::instance()->mCustomCategories = catList;
2682 return count; 2682 return count;
2683} 2683}
2684 2684
2685void CalendarView::manageCategories() 2685void CalendarView::manageCategories()
2686{ 2686{
2687 KOCatPrefs* cp = new KOCatPrefs(); 2687 KOCatPrefs* cp = new KOCatPrefs();
2688 cp->show(); 2688 cp->show();
2689 int w =cp->sizeHint().width() ; 2689 int w =cp->sizeHint().width() ;
2690 int h = cp->sizeHint().height() ; 2690 int h = cp->sizeHint().height() ;
2691 int dw = QApplication::desktop()->width(); 2691 int dw = QApplication::desktop()->width();
2692 int dh = QApplication::desktop()->height(); 2692 int dh = QApplication::desktop()->height();
2693 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2693 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2694 if ( !cp->exec() ) { 2694 if ( !cp->exec() ) {
2695 delete cp; 2695 delete cp;
2696 return; 2696 return;
2697 } 2697 }
2698 int count = 0; 2698 int count = 0;
2699 if ( cp->addCat() ) { 2699 if ( cp->addCat() ) {
2700 count = addCategories(); 2700 count = addCategories();
2701 if ( count ) { 2701 if ( count ) {
2702 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! ")); 2702 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! "));
2703 writeSettings(); 2703 writeSettings();
2704 } else 2704 } else
2705 topLevelWidget()->setCaption(QString::number( 0 )+ i18n(" Categories added to list! ")); 2705 topLevelWidget()->setCaption(QString::number( 0 )+ i18n(" Categories added to list! "));
2706 } else { 2706 } else {
2707 removeCategories(); 2707 removeCategories();
2708 updateView(); 2708 updateView();
2709 } 2709 }
2710 delete cp; 2710 delete cp;
2711} 2711}
2712 2712
2713void CalendarView::beamIncidence(Incidence * Inc) 2713void CalendarView::beamIncidence(Incidence * Inc)
2714{ 2714{
2715 QPtrList<Incidence> delSel ; 2715 QPtrList<Incidence> delSel ;
2716 delSel.append(Inc); 2716 delSel.append(Inc);
2717 beamIncidenceList( delSel ); 2717 beamIncidenceList( delSel );
2718} 2718}
2719void CalendarView::beamCalendar() 2719void CalendarView::beamCalendar()
2720{ 2720{
2721 QPtrList<Incidence> delSel = mCalendar->rawIncidences(); 2721 QPtrList<Incidence> delSel = mCalendar->rawIncidences();
2722 //qDebug("beamCalendar() "); 2722 //qDebug("beamCalendar() ");
2723 beamIncidenceList( delSel ); 2723 beamIncidenceList( delSel );
2724} 2724}
2725void CalendarView::beamFilteredCalendar() 2725void CalendarView::beamFilteredCalendar()
2726{ 2726{
2727 QPtrList<Incidence> delSel = mCalendar->incidences(); 2727 QPtrList<Incidence> delSel = mCalendar->incidences();
2728 //qDebug("beamFilteredCalendar() "); 2728 //qDebug("beamFilteredCalendar() ");
2729 beamIncidenceList( delSel ); 2729 beamIncidenceList( delSel );
2730} 2730}
2731void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel ) 2731void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel )
2732{ 2732{
2733 if ( beamDialog->exec () == QDialog::Rejected ) 2733 if ( beamDialog->exec () == QDialog::Rejected )
2734 return; 2734 return;
2735#ifdef DESKTOP_VERSION 2735#ifdef DESKTOP_VERSION
2736 QString fn = locateLocal( "tmp", "kopibeamfile" ); 2736 QString fn = locateLocal( "tmp", "kopibeamfile" );
2737#else 2737#else
2738 QString fn = "/tmp/kopibeamfile"; 2738 QString fn = "/tmp/kopibeamfile";
2739#endif 2739#endif
2740 QString mes; 2740 QString mes;
2741 bool createbup = true; 2741 bool createbup = true;
2742 if ( createbup ) { 2742 if ( createbup ) {
2743 QString description = "\n"; 2743 QString description = "\n";
2744 CalendarLocal* cal = new CalendarLocal(); 2744 CalendarLocal* cal = new CalendarLocal();
2745 if ( beamDialog->beamLocal() ) 2745 if ( beamDialog->beamLocal() )
2746 cal->setLocalTime(); 2746 cal->setLocalTime();
2747 else 2747 else
2748 cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2748 cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2749 Incidence *incidence = delSel.first(); 2749 Incidence *incidence = delSel.first();
2750 bool addText = false; 2750 bool addText = false;
2751 if ( delSel.count() < 10 ) 2751 if ( delSel.count() < 10 )
2752 addText = true; 2752 addText = true;
2753 else { 2753 else {
2754 description.sprintf(i18n(" %d items?"),delSel.count() ); 2754 description.sprintf(i18n(" %d items?"),delSel.count() );
2755 } 2755 }
2756 while ( incidence ) { 2756 while ( incidence ) {
2757 Incidence *in = incidence->clone(); 2757 Incidence *in = incidence->clone();
2758 if ( ! in->summary().isEmpty() ) { 2758 if ( ! in->summary().isEmpty() ) {
2759 in->setDescription(""); 2759 in->setDescription("");
2760 } else { 2760 } else {
2761 in->setSummary( in->description().left(20)); 2761 in->setSummary( in->description().left(20));
2762 in->setDescription(""); 2762 in->setDescription("");
2763 } 2763 }
2764 if ( addText ) 2764 if ( addText )
2765 description += in->summary() + "\n"; 2765 description += in->summary() + "\n";
2766 cal->addIncidence( in ); 2766 cal->addIncidence( in );
2767 incidence = delSel.next(); 2767 incidence = delSel.next();
2768 } 2768 }
2769 if ( beamDialog->beamVcal() ) { 2769 if ( beamDialog->beamVcal() ) {
2770 fn += ".vcs"; 2770 fn += ".vcs";
2771 FileStorage storage( cal, fn, new VCalFormat ); 2771 FileStorage storage( cal, fn, new VCalFormat );
2772 storage.save(); 2772 storage.save();
2773 } else { 2773 } else {
2774 fn += ".ics"; 2774 fn += ".ics";
2775 FileStorage storage( cal, fn, new ICalFormat( ) ); 2775 FileStorage storage( cal, fn, new ICalFormat( ) );
2776 storage.save(); 2776 storage.save();
2777 } 2777 }
2778 delete cal; 2778 delete cal;
2779 mes = i18n("KO/Pi: Ready for beaming"); 2779 mes = i18n("KO/Pi: Ready for beaming");
2780 topLevelWidget()->setCaption(mes); 2780 topLevelWidget()->setCaption(mes);
2781 KApplication::convert2latin1( fn ); 2781 KApplication::convert2latin1( fn );
2782#ifndef DESKTOP_VERSION 2782#ifndef DESKTOP_VERSION
2783 Ir *ir = new Ir( this ); 2783 Ir *ir = new Ir( this );
2784 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); 2784 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) );
2785 ir->send( fn, description, "text/x-vCalendar" ); 2785 ir->send( fn, description, "text/x-vCalendar" );
2786#endif 2786#endif
2787 } 2787 }
2788} 2788}
2789void CalendarView::beamDone( Ir *ir ) 2789void CalendarView::beamDone( Ir *ir )
2790{ 2790{
2791#ifndef DESKTOP_VERSION 2791#ifndef DESKTOP_VERSION
2792 delete ir; 2792 delete ir;
2793#endif 2793#endif
2794 topLevelWidget()->setCaption( i18n("KO/Pi: Beaming done.") ); 2794 topLevelWidget()->setCaption( i18n("KO/Pi: Beaming done.") );
2795 topLevelWidget()->raise(); 2795 topLevelWidget()->raise();
2796} 2796}
2797 2797
2798void CalendarView::moveIncidence(Incidence * inc ) 2798void CalendarView::moveIncidence(Incidence * inc )
2799{ 2799{
2800 if ( !inc ) return; 2800 if ( !inc ) return;
2801 showDatePickerPopup(); 2801 showDatePickerPopup();
2802 mDatePickerMode = 2; 2802 mDatePickerMode = 2;
2803 mMoveIncidence = inc ; 2803 mMoveIncidence = inc ;
2804 QDate da; 2804 QDate da;
2805 if ( mMoveIncidence->typeID() == todoID ) { 2805 if ( mMoveIncidence->typeID() == todoID ) {
2806 Todo * to = (Todo *) mMoveIncidence; 2806 Todo * to = (Todo *) mMoveIncidence;
2807 if ( to->hasDueDate() ) 2807 if ( to->hasDueDate() )
2808 da = to->dtDue().date(); 2808 da = to->dtDue().date();
2809 else 2809 else
2810 da = QDate::currentDate(); 2810 da = QDate::currentDate();
2811 } else { 2811 } else {
2812 da = mMoveIncidence->dtStart().date(); 2812 da = mMoveIncidence->dtStart().date();
2813 } 2813 }
2814 //PENDING set date for recurring incidence to date of recurrence 2814 //PENDING set date for recurring incidence to date of recurrence
2815 //mMoveIncidenceOldDate; 2815 //mMoveIncidenceOldDate;
2816 mDatePicker->setDate( da ); 2816 mDatePicker->setDate( da );
2817} 2817}
2818void CalendarView::showDatePickerPopup() 2818void CalendarView::showDatePickerPopup()
2819{ 2819{
2820 if ( mDateFrame->isVisible() ) 2820 if ( mDateFrame->isVisible() )
2821 mDateFrame->hide(); 2821 mDateFrame->hide();
2822 else { 2822 else {
2823 int offX = 0, offY = 0; 2823 int offX = 0, offY = 0;
2824#ifdef DESKTOP_VERSION 2824#ifdef DESKTOP_VERSION
2825 int w =mDatePicker->sizeHint().width() ; 2825 int w =mDatePicker->sizeHint().width() ;
2826 int h = mDatePicker->sizeHint().height() ; 2826 int h = mDatePicker->sizeHint().height() ;
2827 int dw = topLevelWidget()->width(); 2827 int dw = topLevelWidget()->width();
2828 int dh = topLevelWidget()->height(); 2828 int dh = topLevelWidget()->height();
2829 offX = topLevelWidget()->x(); 2829 offX = topLevelWidget()->x();
2830 offY = topLevelWidget()->y(); 2830 offY = topLevelWidget()->y();
2831#else 2831#else
2832 int w =mDatePicker->sizeHint().width() ; 2832 int w =mDatePicker->sizeHint().width() ;
2833 int h = mDatePicker->sizeHint().height() ; 2833 int h = mDatePicker->sizeHint().height() ;
2834 int dw = QApplication::desktop()->width(); 2834 int dw = QApplication::desktop()->width();
2835 int dh = QApplication::desktop()->height(); 2835 int dh = QApplication::desktop()->height();
2836#endif 2836#endif
2837 mDateFrame->setGeometry( (dw-w)/2+offX, (dh - h )/2+offY ,w,h ); 2837 mDateFrame->setGeometry( (dw-w)/2+offX, (dh - h )/2+offY ,w,h );
2838 mDateFrame->show(); 2838 mDateFrame->show();
2839 } 2839 }
2840} 2840}
2841void CalendarView::showDatePicker( ) 2841void CalendarView::showDatePicker( )
2842{ 2842{
2843 showDatePickerPopup(); 2843 showDatePickerPopup();
2844 mDatePickerMode = 1; 2844 mDatePickerMode = 1;
2845 mDatePicker->setDate( mNavigator->selectedDates().first() ); 2845 mDatePicker->setDate( mNavigator->selectedDates().first() );
2846} 2846}
2847 2847
2848void CalendarView::showEventEditor() 2848void CalendarView::showEventEditor()
2849{ 2849{
2850#ifdef DESKTOP_VERSION 2850#ifdef DESKTOP_VERSION
2851 int x,y,w,h; 2851 int x,y,w,h;
2852 x = mEventEditor->geometry().x(); 2852 x = mEventEditor->geometry().x();
2853 y = mEventEditor->geometry().y(); 2853 y = mEventEditor->geometry().y();
2854 w = mEventEditor->width(); 2854 w = mEventEditor->width();
2855 h = mEventEditor->height(); 2855 h = mEventEditor->height();
2856 mEventEditor->show(); 2856 mEventEditor->show();
2857 mEventEditor->setGeometry(x,y,w,h); 2857 mEventEditor->setGeometry(x,y,w,h);
2858#else 2858#else
2859 if ( mEventEditor->width() < QApplication::desktop()->width() -60 || mEventEditor->width() > QApplication::desktop()->width() ) { 2859 if ( mEventEditor->width() < QApplication::desktop()->width() -60 || mEventEditor->width() > QApplication::desktop()->width() ) {
2860 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") ); 2860 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") );
2861 qDebug("KO: CalendarView: recreate mEventEditor %d %d", mEventEditor->width(), QApplication::desktop()->width() ); 2861 qDebug("KO: CalendarView: recreate mEventEditor %d %d", mEventEditor->width(), QApplication::desktop()->width() );
2862 qApp->processEvents(); 2862 qApp->processEvents();
2863 delete mEventEditor; 2863 delete mEventEditor;
2864 mEventEditor = mDialogManager->getEventEditor(); 2864 mEventEditor = mDialogManager->getEventEditor();
2865 topLevelWidget()->setCaption( i18n("") ); 2865 topLevelWidget()->setCaption( i18n("") );
2866 } 2866 }
2867 mEventEditor->showMaximized(); 2867 mEventEditor->showMaximized();
2868#endif 2868#endif
2869} 2869}
2870void CalendarView::showTodoEditor() 2870void CalendarView::showTodoEditor()
2871{ 2871{
2872#ifdef DESKTOP_VERSION 2872#ifdef DESKTOP_VERSION
2873 int x,y,w,h; 2873 int x,y,w,h;
2874 x = mTodoEditor->geometry().x(); 2874 x = mTodoEditor->geometry().x();
2875 y = mTodoEditor->geometry().y(); 2875 y = mTodoEditor->geometry().y();
2876 w = mTodoEditor->width(); 2876 w = mTodoEditor->width();
2877 h = mTodoEditor->height(); 2877 h = mTodoEditor->height();
2878 mTodoEditor->show(); 2878 mTodoEditor->show();
2879 mTodoEditor->setGeometry(x,y,w,h); 2879 mTodoEditor->setGeometry(x,y,w,h);
2880#else 2880#else
2881 if ( mTodoEditor->width() < QApplication::desktop()->width() -60|| mTodoEditor->width() > QApplication::desktop()->width() ) { 2881 if ( mTodoEditor->width() < QApplication::desktop()->width() -60|| mTodoEditor->width() > QApplication::desktop()->width() ) {
2882 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") ); 2882 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") );
2883 qDebug("KO: CalendarView: recreate mTodoEditor %d %d ", mTodoEditor->width() ,QApplication::desktop()->width() ); 2883 qDebug("KO: CalendarView: recreate mTodoEditor %d %d ", mTodoEditor->width() ,QApplication::desktop()->width() );
2884 qApp->processEvents(); 2884 qApp->processEvents();
2885 delete mTodoEditor; 2885 delete mTodoEditor;
2886 mTodoEditor = mDialogManager->getTodoEditor(); 2886 mTodoEditor = mDialogManager->getTodoEditor();
2887 topLevelWidget()->setCaption( i18n("") ); 2887 topLevelWidget()->setCaption( i18n("") );
2888 } 2888 }
2889 mTodoEditor->showMaximized(); 2889 mTodoEditor->showMaximized();
2890#endif 2890#endif
2891} 2891}
2892 2892
2893void CalendarView::cloneIncidence() 2893void CalendarView::cloneIncidence()
2894{ 2894{
2895 Incidence *incidence = currentSelection(); 2895 Incidence *incidence = currentSelection();
2896 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2896 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2897 if ( incidence ) { 2897 if ( incidence ) {
2898 cloneIncidence(incidence); 2898 cloneIncidence(incidence);
2899 } 2899 }
2900} 2900}
2901void CalendarView::moveIncidence() 2901void CalendarView::moveIncidence()
2902{ 2902{
2903 Incidence *incidence = currentSelection(); 2903 Incidence *incidence = currentSelection();
2904 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2904 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2905 if ( incidence ) { 2905 if ( incidence ) {
2906 moveIncidence(incidence); 2906 moveIncidence(incidence);
2907 } 2907 }
2908} 2908}
2909void CalendarView::beamIncidence() 2909void CalendarView::beamIncidence()
2910{ 2910{
2911 Incidence *incidence = currentSelection(); 2911 Incidence *incidence = currentSelection();
2912 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2912 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2913 if ( incidence ) { 2913 if ( incidence ) {
2914 beamIncidence(incidence); 2914 beamIncidence(incidence);
2915 } 2915 }
2916} 2916}
2917void CalendarView::toggleCancelIncidence() 2917void CalendarView::toggleCancelIncidence()
2918{ 2918{
2919 Incidence *incidence = currentSelection(); 2919 Incidence *incidence = currentSelection();
2920 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2920 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2921 if ( incidence ) { 2921 if ( incidence ) {
2922 cancelIncidence(incidence); 2922 cancelIncidence(incidence);
2923 } 2923 }
2924} 2924}
2925 2925
2926 2926
2927void CalendarView::cancelIncidence(Incidence * inc ) 2927void CalendarView::cancelIncidence(Incidence * inc )
2928{ 2928{
2929 inc->setCancelled( ! inc->cancelled() ); 2929 inc->setCancelled( ! inc->cancelled() );
2930 changeIncidenceDisplay( inc,KOGlobals::EVENTEDITED ); 2930 changeIncidenceDisplay( inc,KOGlobals::EVENTEDITED );
2931 updateView(); 2931 updateView();
2932} 2932}
2933void CalendarView::cloneIncidence(Incidence * orgInc ) 2933void CalendarView::cloneIncidence(Incidence * orgInc )
2934{ 2934{
2935 Incidence * newInc = orgInc->clone(); 2935 Incidence * newInc = orgInc->clone();
2936 newInc->recreate(); 2936 newInc->recreate();
2937 2937
2938 if ( newInc->typeID() == todoID ) { 2938 if ( newInc->typeID() == todoID ) {
2939 Todo* t = (Todo*) newInc; 2939 Todo* t = (Todo*) newInc;
2940 bool cloneSub = false; 2940 bool cloneSub = false;
2941 if ( orgInc->relations().count() ) { 2941 if ( orgInc->relations().count() ) {
2942 int result = KMessageBox::warningYesNoCancel(this, 2942 int result = KMessageBox::warningYesNoCancel(this,
2943 i18n("The todo\n%1\nwill be cloned!\nIt has subtodos!\nDo you want to clone\nall subtodos as well?").arg( newInc->summary().left ( 25 ) ), 2943 i18n("The todo\n%1\nwill be cloned!\nIt has subtodos!\nDo you want to clone\nall subtodos as well?").arg( newInc->summary().left ( 25 ) ),
2944 i18n("Todo has subtodos"), 2944 i18n("Todo has subtodos"),
2945 i18n("Yes"), 2945 i18n("Yes"),
2946 i18n("No")); 2946 i18n("No"));
2947 2947
2948 if ( result == KMessageBox::Cancel ) { 2948 if ( result == KMessageBox::Cancel ) {
2949 delete t; 2949 delete t;
2950 return; 2950 return;
2951 } 2951 }
2952 if (result == KMessageBox::Yes) cloneSub = true; 2952 if (result == KMessageBox::Yes) cloneSub = true;
2953 } 2953 }
2954 showTodoEditor(); 2954 showTodoEditor();
2955 mTodoEditor->editTodo( t ); 2955 mTodoEditor->editTodo( t );
2956 if ( mTodoEditor->exec() ) { 2956 if ( mTodoEditor->exec() ) {
2957 if ( cloneSub ) { 2957 if ( cloneSub ) {
2958 orgInc->cloneRelations( t ); 2958 orgInc->cloneRelations( t );
2959 mCalendar->addIncidenceBranch( t ); 2959 mCalendar->addIncidenceBranch( t );
2960 updateView(); 2960 updateView();
2961 2961
2962 } else { 2962 } else {
2963 mCalendar->addTodo( t ); 2963 mCalendar->addTodo( t );
2964 updateView(); 2964 updateView();
2965 } 2965 }
2966 } else { 2966 } else {
2967 delete t; 2967 delete t;
2968 } 2968 }
2969 } 2969 }
2970 else { 2970 else {
2971 Event* e = (Event*) newInc; 2971 Event* e = (Event*) newInc;
2972 showEventEditor(); 2972 showEventEditor();
2973 mEventEditor->editEvent( e ); 2973 mEventEditor->editEvent( e );
2974 if ( mEventEditor->exec() ) { 2974 if ( mEventEditor->exec() ) {
2975 mCalendar->addEvent( e ); 2975 mCalendar->addEvent( e );
2976 updateView(); 2976 updateView();
2977 } else { 2977 } else {
2978 delete e; 2978 delete e;
2979 } 2979 }
2980 } 2980 }
2981 setActiveWindow(); 2981 setActiveWindow();
2982} 2982}
2983 2983
2984void CalendarView::newEvent() 2984void CalendarView::newEvent()
2985{ 2985{
2986 // TODO: Replace this code by a common eventDurationHint of KOBaseView. 2986 // TODO: Replace this code by a common eventDurationHint of KOBaseView.
2987 KOAgendaView *aView = mViewManager->agendaView(); 2987 KOAgendaView *aView = mViewManager->agendaView();
2988 if (aView) { 2988 if (aView) {
2989 if (aView->selectionStart().isValid()) { 2989 if (aView->selectionStart().isValid()) {
2990 if (aView->selectedIsAllDay()) { 2990 if (aView->selectedIsAllDay()) {
2991 newEvent(aView->selectionStart(),aView->selectionEnd(),true); 2991 newEvent(aView->selectionStart(),aView->selectionEnd(),true);
2992 } else { 2992 } else {
2993 newEvent(aView->selectionStart(),aView->selectionEnd()); 2993 newEvent(aView->selectionStart(),aView->selectionEnd());
2994 } 2994 }
2995 return; 2995 return;
2996 } 2996 }
2997 } 2997 }
2998 2998
2999 QDate date = mNavigator->selectedDates().first(); 2999 QDate date = mNavigator->selectedDates().first();
3000 QDateTime current = QDateTime::currentDateTime(); 3000 QDateTime current = QDateTime::currentDateTime();
3001 if ( date <= current.date() ) { 3001 if ( date <= current.date() ) {
3002 int hour = current.time().hour() +1; 3002 int hour = current.time().hour() +1;
3003 newEvent( QDateTime( current.date(), QTime( hour, 0, 0 ) ), 3003 newEvent( QDateTime( current.date(), QTime( hour, 0, 0 ) ),
3004 QDateTime( current.date(), QTime( hour+ KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) ); 3004 QDateTime( current.date(), QTime( hour+ KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) );
3005 } else 3005 } else
3006 newEvent( QDateTime( date, QTime( KOPrefs::instance()->mStartTime, 0, 0 ) ), 3006 newEvent( QDateTime( date, QTime( KOPrefs::instance()->mStartTime, 0, 0 ) ),
3007 QDateTime( date, QTime( KOPrefs::instance()->mStartTime + 3007 QDateTime( date, QTime( KOPrefs::instance()->mStartTime +
3008 KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) ); 3008 KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) );
3009} 3009}
3010 3010
3011void CalendarView::newEvent(QDateTime fh) 3011void CalendarView::newEvent(QDateTime fh)
3012{ 3012{
3013 newEvent(fh, 3013 newEvent(fh,
3014 QDateTime(fh.addSecs(3600*KOPrefs::instance()->mDefaultDuration))); 3014 QDateTime(fh.addSecs(3600*KOPrefs::instance()->mDefaultDuration)));
3015} 3015}
3016 3016
3017void CalendarView::newEvent(QDate dt) 3017void CalendarView::newEvent(QDate dt)
3018{ 3018{
3019 newEvent(QDateTime(dt, QTime(0,0,0)), 3019 newEvent(QDateTime(dt, QTime(0,0,0)),
3020 QDateTime(dt, QTime(0,0,0)), true); 3020 QDateTime(dt, QTime(0,0,0)), true);
3021} 3021}
3022void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint) 3022void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint)
3023{ 3023{
3024 newEvent(fromHint, toHint, false); 3024 newEvent(fromHint, toHint, false);
3025} 3025}
3026void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint, bool allDay) 3026void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint, bool allDay)
3027{ 3027{
3028 3028
3029 showEventEditor(); 3029 showEventEditor();
3030 mEventEditor->newEvent(fromHint,toHint,allDay); 3030 mEventEditor->newEvent(fromHint,toHint,allDay);
3031 if ( mFilterView->filtersEnabled() ) { 3031 if ( mFilterView->filtersEnabled() ) {
3032 CalFilter *filter = mFilterView->selectedFilter(); 3032 CalFilter *filter = mFilterView->selectedFilter();
3033 if (filter && filter->showCategories()) { 3033 if (filter && filter->showCategories()) {
3034 mEventEditor->setCategories(filter->categoryList().join(",") ); 3034 mEventEditor->setCategories(filter->categoryList().join(",") );
3035 } 3035 }
3036 if ( filter ) 3036 if ( filter )
3037 mEventEditor->setSecrecy( filter->getSecrecy() ); 3037 mEventEditor->setSecrecy( filter->getSecrecy() );
3038 } 3038 }
3039 mEventEditor->exec(); 3039 mEventEditor->exec();
3040 setActiveWindow(); 3040 setActiveWindow();
3041} 3041}
3042void CalendarView::todoAdded(Todo * t) 3042void CalendarView::todoAdded(Todo * t)
3043{ 3043{
3044 3044
3045 changeTodoDisplay ( t ,KOGlobals::EVENTADDED); 3045 changeTodoDisplay ( t ,KOGlobals::EVENTADDED);
3046 updateTodoViews(); 3046 updateTodoViews();
3047} 3047}
3048void CalendarView::todoChanged(Todo * t) 3048void CalendarView::todoChanged(Todo * t)
3049{ 3049{
3050 emit todoModified( t, 4 ); 3050 emit todoModified( t, 4 );
3051 // updateTodoViews(); 3051 // updateTodoViews();
3052} 3052}
3053void CalendarView::todoToBeDeleted(Todo *) 3053void CalendarView::todoToBeDeleted(Todo *)
3054{ 3054{
3055 //qDebug("todoToBeDeleted(Todo *) "); 3055 //qDebug("todoToBeDeleted(Todo *) ");
3056 updateTodoViews(); 3056 updateTodoViews();
3057} 3057}
3058void CalendarView::todoDeleted() 3058void CalendarView::todoDeleted()
3059{ 3059{
3060 //qDebug(" todoDeleted()"); 3060 //qDebug(" todoDeleted()");
3061 updateTodoViews(); 3061 updateTodoViews();
3062} 3062}
3063 3063
3064 3064
3065void CalendarView::newTodoDateTime( QDateTime dt, bool allday ) 3065void CalendarView::newTodoDateTime( QDateTime dt, bool allday )
3066{ 3066{
3067 showTodoEditor(); 3067 showTodoEditor();
3068 mTodoEditor->newTodo(dt,0,allday); 3068 mTodoEditor->newTodo(dt,0,allday);
3069 if ( mFilterView->filtersEnabled() ) { 3069 if ( mFilterView->filtersEnabled() ) {
3070 CalFilter *filter = mFilterView->selectedFilter(); 3070 CalFilter *filter = mFilterView->selectedFilter();
3071 if (filter && filter->showCategories()) { 3071 if (filter && filter->showCategories()) {
3072 mTodoEditor->setCategories(filter->categoryList().join(",") ); 3072 mTodoEditor->setCategories(filter->categoryList().join(",") );
3073 } 3073 }
3074 if ( filter ) 3074 if ( filter )
3075 mTodoEditor->setSecrecy( filter->getSecrecy() ); 3075 mTodoEditor->setSecrecy( filter->getSecrecy() );
3076 } 3076 }
3077 mTodoEditor->exec(); 3077 mTodoEditor->exec();
3078 setActiveWindow(); 3078 setActiveWindow();
3079} 3079}
3080 3080
3081void CalendarView::newTodo() 3081void CalendarView::newTodo()
3082{ 3082{
3083 newTodoDateTime( QDateTime(),true ); 3083 newTodoDateTime( QDateTime(),true );
3084} 3084}
3085 3085
3086void CalendarView::newSubTodo() 3086void CalendarView::newSubTodo()
3087{ 3087{
3088 Todo *todo = selectedTodo(); 3088 Todo *todo = selectedTodo();
3089 if ( todo ) newSubTodo( todo ); 3089 if ( todo ) newSubTodo( todo );
3090} 3090}
3091 3091
3092void CalendarView::newSubTodo(Todo *parentEvent) 3092void CalendarView::newSubTodo(Todo *parentEvent)
3093{ 3093{
3094 3094
3095 showTodoEditor(); 3095 showTodoEditor();
3096 mTodoEditor->newTodo(QDateTime(),parentEvent,true); 3096 mTodoEditor->newTodo(QDateTime(),parentEvent,true);
3097 mTodoEditor->exec(); 3097 mTodoEditor->exec();
3098 setActiveWindow(); 3098 setActiveWindow();
3099} 3099}
3100 3100
3101void CalendarView::newFloatingEvent() 3101void CalendarView::newFloatingEvent()
3102{ 3102{
3103 DateList tmpList = mNavigator->selectedDates(); 3103 DateList tmpList = mNavigator->selectedDates();
3104 QDate date = tmpList.first(); 3104 QDate date = tmpList.first();
3105 3105
3106 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ), 3106 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ),
3107 QDateTime( date, QTime( 12, 0, 0 ) ), true ); 3107 QDateTime( date, QTime( 12, 0, 0 ) ), true );
3108} 3108}
3109 3109
3110 3110
3111void CalendarView::editEvent( Event *event ) 3111void CalendarView::editEvent( Event *event )
3112{ 3112{
3113 3113
3114 if ( !event ) return; 3114 if ( !event ) return;
3115 if ( event->isReadOnly() ) { 3115 if ( event->isReadOnly() ) {
3116 showEvent( event ); 3116 showEvent( event );
3117 return; 3117 return;
3118 } 3118 }
3119 showEventEditor(); 3119 showEventEditor();
3120 mEventEditor->editEvent( event , mFlagEditDescription); 3120 mEventEditor->editEvent( event , mFlagEditDescription);
3121 mEventEditor->exec(); 3121 mEventEditor->exec();
3122 setActiveWindow(); 3122 setActiveWindow();
3123 3123
3124} 3124}
3125void CalendarView::editJournal( Journal *jour ) 3125void CalendarView::editJournal( Journal *jour )
3126{ 3126{
3127 if ( !jour ) return; 3127 if ( !jour ) return;
3128 mDialogManager->hideSearchDialog(); 3128 mDialogManager->hideSearchDialog();
3129 mViewManager->showJournalView(); 3129 mViewManager->showJournalView();
3130 mNavigator->slotDaySelect( jour->dtStart().date() ); 3130 mNavigator->slotDaySelect( jour->dtStart().date() );
3131} 3131}
3132void CalendarView::editTodo( Todo *todo ) 3132void CalendarView::editTodo( Todo *todo )
3133{ 3133{
3134 if ( !todo ) return; 3134 if ( !todo ) return;
3135 3135
3136 if ( todo->isReadOnly() ) { 3136 if ( todo->isReadOnly() ) {
3137 showTodo( todo ); 3137 showTodo( todo );
3138 return; 3138 return;
3139 } 3139 }
3140 showTodoEditor(); 3140 showTodoEditor();
3141 mTodoEditor->editTodo( todo ,mFlagEditDescription); 3141 mTodoEditor->editTodo( todo ,mFlagEditDescription);
3142 mTodoEditor->exec(); 3142 mTodoEditor->exec();
3143 setActiveWindow(); 3143 setActiveWindow();
3144 3144
3145} 3145}
3146 3146
3147KOEventViewerDialog* CalendarView::getEventViewerDialog() 3147KOEventViewerDialog* CalendarView::getEventViewerDialog()
3148{ 3148{
3149 if ( !mEventViewerDialog ) { 3149 if ( !mEventViewerDialog ) {
3150 mEventViewerDialog = new KOEventViewerDialog(0); 3150 mEventViewerDialog = new KOEventViewerDialog(0);
3151 connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) ); 3151 connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) );
3152 connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig())); 3152 connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig()));
3153 connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)), 3153 connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)),
3154 dateNavigator(), SLOT( selectWeek( const QDate & ) ) ); 3154 dateNavigator(), SLOT( selectWeek( const QDate & ) ) );
3155 connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ), 3155 connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ),
3156 viewManager(), SLOT( showAgendaView( bool ) ) ); 3156 viewManager(), SLOT( showAgendaView( bool ) ) );
3157 connect( mEventViewerDialog, SIGNAL(signalViewerClosed()), 3157 connect( mEventViewerDialog, SIGNAL(signalViewerClosed()),
3158 this, SLOT( slotViewerClosed() ) ); 3158 this, SLOT( slotViewerClosed() ) );
3159 connect( mEventViewerDialog, SIGNAL( todoCompleted(Todo *) ), 3159 connect( mEventViewerDialog, SIGNAL( todoCompleted(Todo *) ),
3160 this, SLOT( todoChanged(Todo *) ) ); 3160 this, SLOT( todoChanged(Todo *) ) );
3161 mEventViewerDialog->resize( 640, 480 ); 3161 mEventViewerDialog->resize( 640, 480 );
3162 3162
3163 } 3163 }
3164 return mEventViewerDialog; 3164 return mEventViewerDialog;
3165} 3165}
3166void CalendarView::showEvent(Event *event) 3166void CalendarView::showEvent(Event *event)
3167{ 3167{
3168 getEventViewerDialog()->setEvent(event); 3168 getEventViewerDialog()->setEvent(event);
3169 getEventViewerDialog()->showMe(); 3169 getEventViewerDialog()->showMe();
3170} 3170}
3171 3171
3172void CalendarView::showTodo(Todo *event) 3172void CalendarView::showTodo(Todo *event)
3173{ 3173{
3174 getEventViewerDialog()->setTodo(event); 3174 getEventViewerDialog()->setTodo(event);
3175 getEventViewerDialog()->showMe(); 3175 getEventViewerDialog()->showMe();
3176} 3176}
3177void CalendarView::showJournal( Journal *jour ) 3177void CalendarView::showJournal( Journal *jour )
3178{ 3178{
3179 getEventViewerDialog()->setJournal(jour); 3179 getEventViewerDialog()->setJournal(jour);
3180 getEventViewerDialog()->showMe(); 3180 getEventViewerDialog()->showMe();
3181 3181
3182} 3182}
3183// void CalendarView::todoModified (Todo *event, int changed) 3183// void CalendarView::todoModified (Todo *event, int changed)
3184// { 3184// {
3185// // if (mDialogList.find (event) != mDialogList.end ()) { 3185// // if (mDialogList.find (event) != mDialogList.end ()) {
3186// // kdDebug() << "Todo modified and open" << endl; 3186// // kdDebug() << "Todo modified and open" << endl;
3187// // KOTodoEditor* temp = (KOTodoEditor *) mDialogList[event]; 3187// // KOTodoEditor* temp = (KOTodoEditor *) mDialogList[event];
3188// // temp->modified (changed); 3188// // temp->modified (changed);
3189 3189
3190// // } 3190// // }
3191 3191
3192// mViewManager->updateView(); 3192// mViewManager->updateView();
3193// } 3193// }
3194 3194
3195void CalendarView::appointment_show() 3195void CalendarView::appointment_show()
3196{ 3196{
3197 Event *anEvent = 0; 3197 Event *anEvent = 0;
3198 3198
3199 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 3199 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
3200 3200
3201 if (mViewManager->currentView()->isEventView()) { 3201 if (mViewManager->currentView()->isEventView()) {
3202 if ( incidence && incidence->typeID() == eventID ) { 3202 if ( incidence && incidence->typeID() == eventID ) {
3203 anEvent = static_cast<Event *>(incidence); 3203 anEvent = static_cast<Event *>(incidence);
3204 } 3204 }
3205 } 3205 }
3206 3206
3207 if (!anEvent) { 3207 if (!anEvent) {
3208 KNotifyClient::beep(); 3208 KNotifyClient::beep();
3209 return; 3209 return;
3210 } 3210 }
3211 3211
3212 showEvent(anEvent); 3212 showEvent(anEvent);
3213} 3213}
3214 3214
3215void CalendarView::appointment_edit() 3215void CalendarView::appointment_edit()
3216{ 3216{
3217 Event *anEvent = 0; 3217 Event *anEvent = 0;
3218 3218
3219 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 3219 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
3220 3220
3221 if (mViewManager->currentView()->isEventView()) { 3221 if (mViewManager->currentView()->isEventView()) {
3222 if ( incidence && incidence->typeID() == eventID ) { 3222 if ( incidence && incidence->typeID() == eventID ) {
3223 anEvent = static_cast<Event *>(incidence); 3223 anEvent = static_cast<Event *>(incidence);
3224 } 3224 }
3225 } 3225 }
3226 3226
3227 if (!anEvent) { 3227 if (!anEvent) {
3228 KNotifyClient::beep(); 3228 KNotifyClient::beep();
3229 return; 3229 return;
3230 } 3230 }
3231 3231
3232 editEvent(anEvent); 3232 editEvent(anEvent);
3233} 3233}
3234 3234
3235void CalendarView::appointment_delete() 3235void CalendarView::appointment_delete()
3236{ 3236{
3237 Event *anEvent = 0; 3237 Event *anEvent = 0;
3238 3238
3239 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 3239 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
3240 3240
3241 if (mViewManager->currentView()->isEventView()) { 3241 if (mViewManager->currentView()->isEventView()) {
3242 if ( incidence && incidence->typeID() == eventID ) { 3242 if ( incidence && incidence->typeID() == eventID ) {
3243 anEvent = static_cast<Event *>(incidence); 3243 anEvent = static_cast<Event *>(incidence);
3244 } 3244 }
3245 } 3245 }
3246 3246
3247 if (!anEvent) { 3247 if (!anEvent) {
3248 KNotifyClient::beep(); 3248 KNotifyClient::beep();
3249 return; 3249 return;
3250 } 3250 }
3251 3251
3252 deleteEvent(anEvent); 3252 deleteEvent(anEvent);
3253} 3253}
3254 3254
3255void CalendarView::todo_resub( Todo * parent, Todo * sub ) 3255void CalendarView::todo_resub( Todo * parent, Todo * sub )
3256{ 3256{
3257 if (!sub) return; 3257 if (!sub) return;
3258 if ( sub->relatedTo() == parent ) 3258 if ( sub->relatedTo() == parent )
3259 return; 3259 return;
3260 sub->setRelatedTo(parent); 3260 sub->setRelatedTo(parent);
3261 sub->updated(); 3261 sub->updated();
3262 setModified(true); 3262 setModified(true);
3263 updateView(); 3263 updateView();
3264} 3264}
3265void CalendarView::todo_unsub(Todo *anTodo ) 3265void CalendarView::todo_unsub(Todo *anTodo )
3266{ 3266{
3267 todo_resub( 0, anTodo ); 3267 todo_resub( 0, anTodo );
3268} 3268}
3269 3269
3270void CalendarView::deleteTodo(Todo *todo) 3270void CalendarView::deleteTodo(Todo *todo)
3271{ 3271{
3272 if (!todo) { 3272 if (!todo) {
3273 KNotifyClient::beep(); 3273 KNotifyClient::beep();
3274 return; 3274 return;
3275 } 3275 }
3276 if (KOPrefs::instance()->mConfirm) { 3276 if (KOPrefs::instance()->mConfirm) {
3277 QString text = todo->summary().left(20); 3277 QString text = todo->summary().left(20);
3278 if (!todo->relations().isEmpty()) { 3278 if (!todo->relations().isEmpty()) {
3279 text += i18n("\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!"); 3279 text += i18n("\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!");
3280 3280
3281 } 3281 }
3282 switch (msgItemDelete(text)) { 3282 switch (msgItemDelete(text)) {
3283 case KMessageBox::Continue: // OK 3283 case KMessageBox::Continue: // OK
3284 bool deleteT = false; 3284 bool deleteT = false;
3285 if (!todo->relations().isEmpty()) { 3285 if (!todo->relations().isEmpty()) {
3286 deleteT = removeCompletedSubTodos( todo ); 3286 deleteT = removeCompletedSubTodos( todo );
3287 } 3287 }
3288 // deleteT == true: todo already deleted in removeCompletedSubTodos 3288 // deleteT == true: todo already deleted in removeCompletedSubTodos
3289 if ( !deleteT ) { 3289 if ( !deleteT ) {
3290 checkExternalId( todo ); 3290 checkExternalId( todo );
3291 calendar()->deleteTodo(todo); 3291 calendar()->deleteTodo(todo);
3292 changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); 3292 changeTodoDisplay( todo,KOGlobals::EVENTDELETED );
3293 updateView(); 3293 updateView();
3294 } 3294 }
3295 break; 3295 break;
3296 } // switch 3296 } // switch
3297 } else { 3297 } else {
3298 checkExternalId( todo ); 3298 checkExternalId( todo );
3299 mCalendar->deleteTodo(todo); 3299 mCalendar->deleteTodo(todo);
3300 changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); 3300 changeTodoDisplay( todo,KOGlobals::EVENTDELETED );
3301 updateView(); 3301 updateView();
3302 } 3302 }
3303 3303
3304 emit updateSearchDialog(); 3304 emit updateSearchDialog();
3305} 3305}
3306void CalendarView::deleteJournal(Journal *jour) 3306void CalendarView::deleteJournal(Journal *jour)
3307{ 3307{
3308 if (!jour) { 3308 if (!jour) {
3309 KNotifyClient::beep(); 3309 KNotifyClient::beep();
3310 return; 3310 return;
3311 } 3311 }
3312 if (KOPrefs::instance()->mConfirm) { 3312 if (KOPrefs::instance()->mConfirm) {
3313 switch (msgItemDelete( jour->description().left(20))) { 3313 switch (msgItemDelete( jour->description().left(20))) {
3314 case KMessageBox::Continue: // OK 3314 case KMessageBox::Continue: // OK
3315 calendar()->deleteJournal(jour); 3315 calendar()->deleteJournal(jour);
3316 updateView(); 3316 updateView();
3317 break; 3317 break;
3318 } // switch 3318 } // switch
3319 } else { 3319 } else {
3320 calendar()->deleteJournal(jour);; 3320 calendar()->deleteJournal(jour);;
3321 updateView(); 3321 updateView();
3322 } 3322 }
3323 emit updateSearchDialog(); 3323 emit updateSearchDialog();
3324} 3324}
3325 3325
3326void CalendarView::deleteEvent(Event *anEvent) 3326void CalendarView::deleteEvent(Event *anEvent)
3327{ 3327{
3328 if (!anEvent) { 3328 if (!anEvent) {
3329 KNotifyClient::beep(); 3329 KNotifyClient::beep();
3330 return; 3330 return;
3331 } 3331 }
3332 3332
3333 if (anEvent->recurrence()->doesRecur()) { 3333 if (anEvent->recurrence()->doesRecur()) {
3334 QDate itemDate = mViewManager->currentSelectionDate(); 3334 QDate itemDate = mViewManager->currentSelectionDate();
3335 int km; 3335 int km;
3336 if (!itemDate.isValid()) { 3336 if (!itemDate.isValid()) {
3337 //kdDebug() << "Date Not Valid" << endl; 3337 //kdDebug() << "Date Not Valid" << endl;
3338 if (KOPrefs::instance()->mConfirm) { 3338 if (KOPrefs::instance()->mConfirm) {
3339 km = KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) + 3339 km = KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) +
3340 i18n("\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?"), 3340 i18n("\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?"),
3341 i18n("KO/Pi Confirmation"),i18n("Delete All")); 3341 i18n("KO/Pi Confirmation"),i18n("Delete All"));
3342 if ( km == KMessageBox::Continue ) 3342 if ( km == KMessageBox::Continue )
3343 km = KMessageBox::No; // No = all below 3343 km = KMessageBox::No; // No = all below
3344 } else 3344 } else
3345 km = KMessageBox::No; 3345 km = KMessageBox::No;
3346 } else { 3346 } else {
3347 km = KMessageBox::warningYesNoCancel(this,anEvent->summary().left(25) + 3347 km = KMessageBox::warningYesNoCancel(this,anEvent->summary().left(25) +
3348 i18n("\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n")+ 3348 i18n("\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n")+
3349 KGlobal::locale()->formatDate(itemDate)+i18n(" ?\n\nDelete:\n"), 3349 KGlobal::locale()->formatDate(itemDate)+i18n(" ?\n\nDelete:\n"),
3350 i18n("KO/Pi Confirmation"),i18n("Current"), 3350 i18n("KO/Pi Confirmation"),i18n("Current"),
3351 i18n("All")); 3351 i18n("All"));
3352 } 3352 }
3353 switch(km) { 3353 switch(km) {
3354 3354
3355 case KMessageBox::No: // Continue // all 3355 case KMessageBox::No: // Continue // all
3356 //qDebug("KMessageBox::No "); 3356 //qDebug("KMessageBox::No ");
3357 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 3357 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
3358 schedule(Scheduler::Cancel,anEvent); 3358 schedule(Scheduler::Cancel,anEvent);
3359 3359
3360 checkExternalId( anEvent); 3360 checkExternalId( anEvent);
3361 mCalendar->deleteEvent(anEvent); 3361 mCalendar->deleteEvent(anEvent);
3362 changeEventDisplay(anEvent,KOGlobals::EVENTDELETED); 3362 changeEventDisplay(anEvent,KOGlobals::EVENTDELETED);
3363 break; 3363 break;
3364 3364
3365 // Disabled because it does not work 3365 // Disabled because it does not work
3366 //#if 0 3366 //#if 0
3367 case KMessageBox::Yes: // just this one 3367 case KMessageBox::Yes: // just this one
3368 //QDate qd = mNavigator->selectedDates().first(); 3368 //QDate qd = mNavigator->selectedDates().first();
3369 //if (!qd.isValid()) { 3369 //if (!qd.isValid()) {
3370 // kdDebug() << "no date selected, or invalid date" << endl; 3370 // kdDebug() << "no date selected, or invalid date" << endl;
3371 // KNotifyClient::beep(); 3371 // KNotifyClient::beep();
3372 // return; 3372 // return;
3373 //} 3373 //}
3374 //while (!anEvent->recursOn(qd)) qd = qd.addDays(1); 3374 //while (!anEvent->recursOn(qd)) qd = qd.addDays(1);
3375 if (itemDate!=QDate(1,1,1) || itemDate.isValid()) { 3375 if (itemDate!=QDate(1,1,1) || itemDate.isValid()) {
3376 anEvent->addExDate(itemDate); 3376 anEvent->addExDate(itemDate);
3377 int duration = anEvent->recurrence()->duration(); 3377 int duration = anEvent->recurrence()->duration();
3378 if ( duration > 0 ) { 3378 if ( duration > 0 ) {
3379 anEvent->recurrence()->setDuration( duration - 1 ); 3379 anEvent->recurrence()->setDuration( duration - 1 );
3380 } 3380 }
3381 changeEventDisplay(anEvent, KOGlobals::EVENTEDITED); 3381 changeEventDisplay(anEvent, KOGlobals::EVENTEDITED);
3382 } 3382 }
3383 break; 3383 break;
3384 //#endif 3384 //#endif
3385 } // switch 3385 } // switch
3386 } else { 3386 } else {
3387 if (KOPrefs::instance()->mConfirm) { 3387 if (KOPrefs::instance()->mConfirm) {
3388 switch (KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) + 3388 switch (KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) +
3389 i18n("\nAre you sure you want\nto delete this event?"), 3389 i18n("\nAre you sure you want\nto delete this event?"),
3390 i18n("KO/Pi Confirmation"),i18n("Delete"))) { 3390 i18n("KO/Pi Confirmation"),i18n("Delete"))) {
3391 case KMessageBox::Continue: // OK 3391 case KMessageBox::Continue: // OK
3392 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 3392 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
3393 schedule(Scheduler::Cancel,anEvent); 3393 schedule(Scheduler::Cancel,anEvent);
3394 checkExternalId( anEvent); 3394 checkExternalId( anEvent);
3395 mCalendar->deleteEvent(anEvent); 3395 mCalendar->deleteEvent(anEvent);
3396 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 3396 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
3397 break; 3397 break;
3398 } // switch 3398 } // switch
3399 } else { 3399 } else {
3400 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 3400 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
3401 schedule(Scheduler::Cancel,anEvent); 3401 schedule(Scheduler::Cancel,anEvent);
3402 checkExternalId( anEvent); 3402 checkExternalId( anEvent);
3403 mCalendar->deleteEvent(anEvent); 3403 mCalendar->deleteEvent(anEvent);
3404 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 3404 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
3405 } 3405 }
3406 } // if-else 3406 } // if-else
3407 emit updateSearchDialog(); 3407 emit updateSearchDialog();
3408} 3408}
3409 3409
3410bool CalendarView::deleteEvent(const QString &uid) 3410bool CalendarView::deleteEvent(const QString &uid)
3411{ 3411{
3412 Event *ev = mCalendar->event(uid); 3412 Event *ev = mCalendar->event(uid);
3413 if (ev) { 3413 if (ev) {
3414 deleteEvent(ev); 3414 deleteEvent(ev);
3415 return true; 3415 return true;
3416 } else { 3416 } else {
3417 return false; 3417 return false;
3418 } 3418 }
3419} 3419}
3420 3420
3421/*****************************************************************************/ 3421/*****************************************************************************/
3422 3422
3423void CalendarView::action_mail() 3423void CalendarView::action_mail()
3424{ 3424{
3425#ifndef KORG_NOMAIL 3425#ifndef KORG_NOMAIL
3426 KOMailClient mailClient; 3426 KOMailClient mailClient;
3427 3427
3428 Incidence *incidence = currentSelection(); 3428 Incidence *incidence = currentSelection();
3429 3429
3430 if (!incidence) { 3430 if (!incidence) {
3431 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected.")); 3431 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected."));
3432 return; 3432 return;
3433 } 3433 }
3434 if(incidence->attendeeCount() == 0 ) { 3434 if(incidence->attendeeCount() == 0 ) {
3435 KMessageBox::sorry(this, 3435 KMessageBox::sorry(this,
3436 i18n("Can't generate mail:\nNo attendees defined.\n")); 3436 i18n("Can't generate mail:\nNo attendees defined.\n"));
3437 return; 3437 return;
3438 } 3438 }
3439 3439
3440 CalendarLocal cal_tmp; 3440 CalendarLocal cal_tmp;
3441 Event *event = 0; 3441 Event *event = 0;
3442 Event *ev = 0; 3442 Event *ev = 0;
3443 if ( incidence && incidence->typeID() == eventID ) { 3443 if ( incidence && incidence->typeID() == eventID ) {
3444 event = static_cast<Event *>(incidence); 3444 event = static_cast<Event *>(incidence);
3445 ev = new Event(*event); 3445 ev = new Event(*event);
3446 cal_tmp.addEvent(ev); 3446 cal_tmp.addEvent(ev);
3447 } 3447 }
3448 ICalFormat mForm(); 3448 ICalFormat mForm();
3449 QString attachment = mForm.toString( &cal_tmp ); 3449 QString attachment = mForm.toString( &cal_tmp );
3450 if (ev) delete(ev); 3450 if (ev) delete(ev);
3451 3451
3452 mailClient.mailAttendees(currentSelection(), attachment); 3452 mailClient.mailAttendees(currentSelection(), attachment);
3453 3453
3454#endif 3454#endif
3455 3455
3456#if 0 3456#if 0
3457 Event *anEvent = 0; 3457 Event *anEvent = 0;
3458 if (mViewManager->currentView()->isEventView()) { 3458 if (mViewManager->currentView()->isEventView()) {
3459 anEvent = dynamic_cast<Event *>((mViewManager->currentView()->selectedIncidences()).first()); 3459 anEvent = dynamic_cast<Event *>((mViewManager->currentView()->selectedIncidences()).first());
3460 } 3460 }
3461 3461
3462 if (!anEvent) { 3462 if (!anEvent) {
3463 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected.")); 3463 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected."));
3464 return; 3464 return;
3465 } 3465 }
3466 if(anEvent->attendeeCount() == 0 ) { 3466 if(anEvent->attendeeCount() == 0 ) {
3467 KMessageBox::sorry(this, 3467 KMessageBox::sorry(this,
3468 i18n("Can't generate mail:\nNo attendees defined.\n")); 3468 i18n("Can't generate mail:\nNo attendees defined.\n"));
3469 return; 3469 return;
3470 } 3470 }
3471 3471
3472 mailobject.emailEvent(anEvent); 3472 mailobject.emailEvent(anEvent);
3473#endif 3473#endif
3474} 3474}
3475 3475
3476 3476
3477void CalendarView::schedule_publish(Incidence *incidence) 3477void CalendarView::schedule_publish(Incidence *incidence)
3478{ 3478{
3479 Event *event = 0; 3479 Event *event = 0;
3480 Todo *todo = 0; 3480 Todo *todo = 0;
3481 3481
3482 if (incidence == 0) { 3482 if (incidence == 0) {
3483 incidence = mViewManager->currentView()->selectedIncidences().first(); 3483 incidence = mViewManager->currentView()->selectedIncidences().first();
3484 if (incidence == 0) { 3484 if (incidence == 0) {
3485 incidence = mTodoList->selectedIncidences().first(); 3485 incidence = mTodoList->selectedIncidences().first();
3486 } 3486 }
3487 } 3487 }
3488 if ( incidence && incidence->typeID() == eventID ) { 3488 if ( incidence && incidence->typeID() == eventID ) {
3489 event = static_cast<Event *>(incidence); 3489 event = static_cast<Event *>(incidence);
3490 } else { 3490 } else {
3491 if ( incidence && incidence->typeID() == todoID ) { 3491 if ( incidence && incidence->typeID() == todoID ) {
3492 todo = static_cast<Todo *>(incidence); 3492 todo = static_cast<Todo *>(incidence);
3493 } 3493 }
3494 } 3494 }
3495 3495
3496 if (!event && !todo) { 3496 if (!event && !todo) {
3497 KMessageBox::sorry(this,i18n("No event selected.")); 3497 KMessageBox::sorry(this,i18n("No event selected."));
3498 return; 3498 return;
3499 } 3499 }
3500 3500
3501 PublishDialog *publishdlg = new PublishDialog(); 3501 PublishDialog *publishdlg = new PublishDialog();
3502 if (incidence->attendeeCount()>0) { 3502 if (incidence->attendeeCount()>0) {
3503 QPtrList<Attendee> attendees = incidence->attendees(); 3503 QPtrList<Attendee> attendees = incidence->attendees();
3504 attendees.first(); 3504 attendees.first();
3505 while ( attendees.current()!=0 ) { 3505 while ( attendees.current()!=0 ) {
3506 publishdlg->addAttendee(attendees.current()); 3506 publishdlg->addAttendee(attendees.current());
3507 attendees.next(); 3507 attendees.next();
3508 } 3508 }
3509 } 3509 }
3510 bool send = true; 3510 bool send = true;
3511 if ( KOPrefs::instance()->mMailClient == KOPrefs::MailClientSendmail ) { 3511 if ( KOPrefs::instance()->mMailClient == KOPrefs::MailClientSendmail ) {
3512 if ( publishdlg->exec() != QDialog::Accepted ) 3512 if ( publishdlg->exec() != QDialog::Accepted )
3513 send = false; 3513 send = false;
3514 } 3514 }
3515 if ( send ) { 3515 if ( send ) {
3516 OutgoingDialog *dlg = mDialogManager->outgoingDialog(); 3516 OutgoingDialog *dlg = mDialogManager->outgoingDialog();
3517 if ( event ) { 3517 if ( event ) {
3518 Event *ev = new Event(*event); 3518 Event *ev = new Event(*event);
3519 ev->registerObserver(0); 3519 ev->registerObserver(0);
3520 ev->clearAttendees(); 3520 ev->clearAttendees();
3521 if (!dlg->addMessage(ev,Scheduler::Publish,publishdlg->addresses())) { 3521 if (!dlg->addMessage(ev,Scheduler::Publish,publishdlg->addresses())) {
3522 delete(ev); 3522 delete(ev);
3523 } 3523 }
3524 } else { 3524 } else {
3525 if ( todo ) { 3525 if ( todo ) {
3526 Todo *ev = new Todo(*todo); 3526 Todo *ev = new Todo(*todo);
3527 ev->registerObserver(0); 3527 ev->registerObserver(0);
3528 ev->clearAttendees(); 3528 ev->clearAttendees();
3529 if (!dlg->addMessage(ev,Scheduler::Publish,publishdlg->addresses())) { 3529 if (!dlg->addMessage(ev,Scheduler::Publish,publishdlg->addresses())) {
3530 delete(ev); 3530 delete(ev);
3531 } 3531 }
3532 } 3532 }
3533 } 3533 }
3534 } 3534 }
3535 delete publishdlg; 3535 delete publishdlg;
3536} 3536}
3537 3537
3538void CalendarView::schedule_request(Incidence *incidence) 3538void CalendarView::schedule_request(Incidence *incidence)
3539{ 3539{
3540 schedule(Scheduler::Request,incidence); 3540 schedule(Scheduler::Request,incidence);
3541} 3541}
3542 3542
3543void CalendarView::schedule_refresh(Incidence *incidence) 3543void CalendarView::schedule_refresh(Incidence *incidence)
3544{ 3544{
3545 schedule(Scheduler::Refresh,incidence); 3545 schedule(Scheduler::Refresh,incidence);
3546} 3546}
3547 3547
3548void CalendarView::schedule_cancel(Incidence *incidence) 3548void CalendarView::schedule_cancel(Incidence *incidence)
3549{ 3549{
3550 schedule(Scheduler::Cancel,incidence); 3550 schedule(Scheduler::Cancel,incidence);
3551} 3551}
3552 3552
3553void CalendarView::schedule_add(Incidence *incidence) 3553void CalendarView::schedule_add(Incidence *incidence)
3554{ 3554{
3555 schedule(Scheduler::Add,incidence); 3555 schedule(Scheduler::Add,incidence);
3556} 3556}
3557 3557
3558void CalendarView::schedule_reply(Incidence *incidence) 3558void CalendarView::schedule_reply(Incidence *incidence)
3559{ 3559{
3560 schedule(Scheduler::Reply,incidence); 3560 schedule(Scheduler::Reply,incidence);
3561} 3561}
3562 3562
3563void CalendarView::schedule_counter(Incidence *incidence) 3563void CalendarView::schedule_counter(Incidence *incidence)
3564{ 3564{
3565 schedule(Scheduler::Counter,incidence); 3565 schedule(Scheduler::Counter,incidence);
3566} 3566}
3567 3567
3568void CalendarView::schedule_declinecounter(Incidence *incidence) 3568void CalendarView::schedule_declinecounter(Incidence *incidence)
3569{ 3569{
3570 schedule(Scheduler::Declinecounter,incidence); 3570 schedule(Scheduler::Declinecounter,incidence);
3571} 3571}
3572 3572
3573void CalendarView::schedule_publish_freebusy(int daysToPublish) 3573void CalendarView::schedule_publish_freebusy(int daysToPublish)
3574{ 3574{
3575 QDateTime start = QDateTime::currentDateTime(); 3575 QDateTime start = QDateTime::currentDateTime();
3576 QDateTime end = start.addDays(daysToPublish); 3576 QDateTime end = start.addDays(daysToPublish);
3577 3577
3578 FreeBusy *freebusy = new FreeBusy(mCalendar, start, end); 3578 FreeBusy *freebusy = new FreeBusy(mCalendar, start, end);
3579 freebusy->setOrganizer(KOPrefs::instance()->email()); 3579 freebusy->setOrganizer(KOPrefs::instance()->email());
3580 3580
3581 3581
3582 PublishDialog *publishdlg = new PublishDialog(); 3582 PublishDialog *publishdlg = new PublishDialog();
3583 if ( publishdlg->exec() == QDialog::Accepted ) { 3583 if ( publishdlg->exec() == QDialog::Accepted ) {
3584 OutgoingDialog *dlg = mDialogManager->outgoingDialog(); 3584 OutgoingDialog *dlg = mDialogManager->outgoingDialog();
3585 if (!dlg->addMessage(freebusy,Scheduler::Publish,publishdlg->addresses())) { 3585 if (!dlg->addMessage(freebusy,Scheduler::Publish,publishdlg->addresses())) {
3586 delete(freebusy); 3586 delete(freebusy);
3587 } 3587 }
3588 } 3588 }
3589 delete publishdlg; 3589 delete publishdlg;
3590} 3590}
3591 3591
3592void CalendarView::schedule(Scheduler::Method method, Incidence *incidence) 3592void CalendarView::schedule(Scheduler::Method method, Incidence *incidence)
3593{ 3593{
3594 Event *event = 0; 3594 Event *event = 0;
3595 Todo *todo = 0; 3595 Todo *todo = 0;
3596 3596
3597 if (incidence == 0) { 3597 if (incidence == 0) {
3598 incidence = mViewManager->currentView()->selectedIncidences().first(); 3598 incidence = mViewManager->currentView()->selectedIncidences().first();
3599 if (incidence == 0) { 3599 if (incidence == 0) {
3600 incidence = mTodoList->selectedIncidences().first(); 3600 incidence = mTodoList->selectedIncidences().first();
3601 } 3601 }
3602 } 3602 }
3603 if ( incidence && incidence->typeID() == eventID ) { 3603 if ( incidence && incidence->typeID() == eventID ) {
3604 event = static_cast<Event *>(incidence); 3604 event = static_cast<Event *>(incidence);
3605 } 3605 }
3606 if ( incidence && incidence->typeID() == todoID ) { 3606 if ( incidence && incidence->typeID() == todoID ) {
3607 todo = static_cast<Todo *>(incidence); 3607 todo = static_cast<Todo *>(incidence);
3608 } 3608 }
3609 3609
3610 if (!event && !todo) { 3610 if (!event && !todo) {
3611 KMessageBox::sorry(this,i18n("No event selected.")); 3611 KMessageBox::sorry(this,i18n("No event selected."));
3612 return; 3612 return;
3613 } 3613 }
3614 3614
3615 if( incidence->attendeeCount() == 0 && method != Scheduler::Publish ) { 3615 if( incidence->attendeeCount() == 0 && method != Scheduler::Publish ) {
3616 KMessageBox::sorry(this,i18n("The event has no attendees.")); 3616 KMessageBox::sorry(this,i18n("The event has no attendees."));
3617 return; 3617 return;
3618 } 3618 }
3619 3619
3620 Event *ev = 0; 3620 Event *ev = 0;
3621 if (event) ev = new Event(*event); 3621 if (event) ev = new Event(*event);
3622 Todo *to = 0; 3622 Todo *to = 0;
3623 if (todo) to = new Todo(*todo); 3623 if (todo) to = new Todo(*todo);
3624 3624
3625 if (method == Scheduler::Reply || method == Scheduler::Refresh) { 3625 if (method == Scheduler::Reply || method == Scheduler::Refresh) {
3626 Attendee *me = incidence->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email()); 3626 Attendee *me = incidence->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email());
3627 if (!me) { 3627 if (!me) {
3628 KMessageBox::sorry(this,i18n("Could not find your attendee entry.\nPlease check the emails.")); 3628 KMessageBox::sorry(this,i18n("Could not find your attendee entry.\nPlease check the emails."));
3629 return; 3629 return;
3630 } 3630 }
3631 if (me->status()==Attendee::NeedsAction && me->RSVP() && method==Scheduler::Reply) { 3631 if (me->status()==Attendee::NeedsAction && me->RSVP() && method==Scheduler::Reply) {
3632 StatusDialog *statdlg = new StatusDialog(this); 3632 StatusDialog *statdlg = new StatusDialog(this);
3633 if (!statdlg->exec()==QDialog::Accepted) return; 3633 if (!statdlg->exec()==QDialog::Accepted) return;
3634 me->setStatus( statdlg->status() ); 3634 me->setStatus( statdlg->status() );
3635 delete(statdlg); 3635 delete(statdlg);
3636 } 3636 }
3637 Attendee *menew = new Attendee(*me); 3637 Attendee *menew = new Attendee(*me);
3638 if (ev) { 3638 if (ev) {
3639 ev->clearAttendees(); 3639 ev->clearAttendees();
3640 ev->addAttendee(menew,false); 3640 ev->addAttendee(menew,false);
3641 } else { 3641 } else {
3642 if (to) { 3642 if (to) {
3643 todo->clearAttendees(); 3643 todo->clearAttendees();
3644 todo->addAttendee(menew,false); 3644 todo->addAttendee(menew,false);
3645 } 3645 }
3646 } 3646 }
3647 } 3647 }
3648 3648
3649 OutgoingDialog *dlg = mDialogManager->outgoingDialog(); 3649 OutgoingDialog *dlg = mDialogManager->outgoingDialog();
3650 if (ev) { 3650 if (ev) {
3651 if ( !dlg->addMessage(ev,method) ) delete(ev); 3651 if ( !dlg->addMessage(ev,method) ) delete(ev);
3652 } else { 3652 } else {
3653 if (to) { 3653 if (to) {
3654 if ( !dlg->addMessage(to,method) ) delete(to); 3654 if ( !dlg->addMessage(to,method) ) delete(to);
3655 } 3655 }
3656 } 3656 }
3657} 3657}
3658 3658
3659void CalendarView::openAddressbook() 3659void CalendarView::openAddressbook()
3660{ 3660{
3661 KRun::runCommand("kaddressbook"); 3661 KRun::runCommand("kaddressbook");
3662} 3662}
3663 3663
3664void CalendarView::setModified(bool modified) 3664void CalendarView::setModified(bool modified)
3665{ 3665{
3666 if ( modified ) 3666 if ( modified )
3667 emit signalmodified(); 3667 emit signalmodified();
3668 if (mModified != modified) { 3668 if (mModified != modified) {
3669 mModified = modified; 3669 mModified = modified;
3670 emit modifiedChanged(mModified); 3670 emit modifiedChanged(mModified);
3671 } 3671 }
3672} 3672}
3673 3673
3674bool CalendarView::isReadOnly() 3674bool CalendarView::isReadOnly()
3675{ 3675{
3676 return mReadOnly; 3676 return mReadOnly;
3677} 3677}
3678 3678
3679void CalendarView::setReadOnly(bool readOnly) 3679void CalendarView::setReadOnly(bool readOnly)
3680{ 3680{
3681 if (mReadOnly != readOnly) { 3681 if (mReadOnly != readOnly) {
3682 mReadOnly = readOnly; 3682 mReadOnly = readOnly;
3683 emit readOnlyChanged(mReadOnly); 3683 emit readOnlyChanged(mReadOnly);
3684 } 3684 }
3685} 3685}
3686 3686
3687bool CalendarView::isModified() 3687bool CalendarView::isModified()
3688{ 3688{
3689 return mModified; 3689 return mModified;
3690} 3690}
3691void CalendarView::slotprintSelInc() 3691void CalendarView::slotprintSelInc()
3692{ 3692{
3693 if ( currentSelection() == 0 ) { 3693 if ( currentSelection() == 0 ) {
3694 KMessageBox::sorry(this,i18n("There is nothing selected!")); 3694 KMessageBox::sorry(this,i18n("There is nothing selected!"));
3695 return; 3695 return;
3696 } 3696 }
3697 showIncidence(); 3697 showIncidence();
3698 getEventViewerDialog()->print(); 3698 getEventViewerDialog()->print();
3699 3699
3700} 3700}
3701void CalendarView::printSetup() 3701void CalendarView::printSetup()
3702{ 3702{
3703#ifndef KORG_NOPRINTER 3703#ifndef KORG_NOPRINTER
3704 createPrinter(); 3704 createPrinter();
3705 3705
3706 mCalPrinter->setupPrinter(); 3706 mCalPrinter->setupPrinter();
3707#endif 3707#endif
3708} 3708}
3709 3709
3710void CalendarView::print() 3710void CalendarView::print()
3711{ 3711{
3712#ifndef KORG_NOPRINTER 3712#ifndef KORG_NOPRINTER
3713 createPrinter(); 3713 createPrinter();
3714 3714
3715 DateList tmpDateList = mNavigator->selectedDates(); 3715 DateList tmpDateList = mNavigator->selectedDates();
3716 mCalPrinter->print(CalPrinter::Month, 3716 mCalPrinter->print(CalPrinter::Month,
3717 tmpDateList.first(), tmpDateList.last()); 3717 tmpDateList.first(), tmpDateList.last());
3718#endif 3718#endif
3719} 3719}
3720 3720
3721void CalendarView::printPreview() 3721void CalendarView::printPreview()
3722{ 3722{
3723#ifndef KORG_NOPRINTER 3723#ifndef KORG_NOPRINTER
3724 kdDebug() << "CalendarView::printPreview()" << endl; 3724 kdDebug() << "CalendarView::printPreview()" << endl;
3725 3725
3726 createPrinter(); 3726 createPrinter();
3727 3727
3728 DateList tmpDateList = mNavigator->selectedDates(); 3728 DateList tmpDateList = mNavigator->selectedDates();
3729 3729
3730 mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(), 3730 mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(),
3731 tmpDateList.last()); 3731 tmpDateList.last());
3732#endif 3732#endif
3733} 3733}
3734 3734
3735void CalendarView::exportICalendar() 3735void CalendarView::exportICalendar()
3736{ 3736{
3737 QString filename = KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this); 3737 QString filename = KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this);
3738 3738
3739 // Force correct extension 3739 // Force correct extension
3740 if (filename.right(4) != ".ics") filename += ".ics"; 3740 if (filename.right(4) != ".ics") filename += ".ics";
3741 3741
3742 FileStorage storage( mCalendar, filename, new ICalFormat() ); 3742 FileStorage storage( mCalendar, filename, new ICalFormat() );
3743 storage.save(); 3743 storage.save();
3744} 3744}
3745 3745
3746bool CalendarView::exportVCalendar( QString filename ) 3746bool CalendarView::exportVCalendar( QString filename )
3747{ 3747{
3748 if (mCalendar->journals().count() > 0) { 3748 if (mCalendar->journals().count() > 0) {
3749 int result = KMessageBox::warningContinueCancel(this, 3749 int result = KMessageBox::warningContinueCancel(this,
3750 i18n("The journal entries can not be\nexported to a vCalendar file."), 3750 i18n("The journal entries can not be\nexported to a vCalendar file."),
3751 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), 3751 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"),
3752 true); 3752 true);
3753 if (result != KMessageBox::Continue) return false; 3753 if (result != KMessageBox::Continue) return false;
3754 } 3754 }
3755 3755
3756 //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this); 3756 //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this);
3757 3757
3758 // Force correct extension 3758 // Force correct extension
3759 if (filename.right(4) != ".vcs") filename += ".vcs"; 3759 if (filename.right(4) != ".vcs") filename += ".vcs";
3760 3760
3761 FileStorage storage( mCalendar, filename, new VCalFormat ); 3761 FileStorage storage( mCalendar, filename, new VCalFormat );
3762 return storage.save(); 3762 return storage.save();
3763 3763
3764} 3764}
3765 3765
3766void CalendarView::eventUpdated(Incidence *) 3766void CalendarView::eventUpdated(Incidence *)
3767{ 3767{
3768 setModified(); 3768 setModified();
3769 // Don't call updateView here. The code, which has caused the update of the 3769 // Don't call updateView here. The code, which has caused the update of the
3770 // event is responsible for updating the view. 3770 // event is responsible for updating the view.
3771 // updateView(); 3771 // updateView();
3772} 3772}
3773 3773
3774void CalendarView::adaptNavigationUnits() 3774void CalendarView::adaptNavigationUnits()
3775{ 3775{
3776 if (mViewManager->currentView()->isEventView()) { 3776 if (mViewManager->currentView()->isEventView()) {
3777 int days = mViewManager->currentView()->currentDateCount(); 3777 int days = mViewManager->currentView()->currentDateCount();
3778 if (days == 1) { 3778 if (days == 1) {
3779 emit changeNavStringPrev(i18n("&Previous Day")); 3779 emit changeNavStringPrev(i18n("&Previous Day"));
3780 emit changeNavStringNext(i18n("&Next Day")); 3780 emit changeNavStringNext(i18n("&Next Day"));
3781 } else { 3781 } else {
3782 emit changeNavStringPrev(i18n("&Previous Week")); 3782 emit changeNavStringPrev(i18n("&Previous Week"));
3783 emit changeNavStringNext(i18n("&Next Week")); 3783 emit changeNavStringNext(i18n("&Next Week"));
3784 } 3784 }
3785 } 3785 }
3786} 3786}
3787 3787
3788void CalendarView::processMainViewSelection( Incidence *incidence ) 3788void CalendarView::processMainViewSelection( Incidence *incidence )
3789{ 3789{
3790 if ( incidence ) mTodoList->clearSelection(); 3790 if ( incidence ) mTodoList->clearSelection();
3791 processIncidenceSelection( incidence ); 3791 processIncidenceSelection( incidence );
3792} 3792}
3793 3793
3794void CalendarView::processTodoListSelection( Incidence *incidence ) 3794void CalendarView::processTodoListSelection( Incidence *incidence )
3795{ 3795{
3796 if ( incidence && mViewManager->currentView() ) { 3796 if ( incidence && mViewManager->currentView() ) {
3797 mViewManager->currentView()->clearSelection(); 3797 mViewManager->currentView()->clearSelection();
3798 } 3798 }
3799 processIncidenceSelection( incidence ); 3799 processIncidenceSelection( incidence );
3800} 3800}
3801 3801
3802void CalendarView::processIncidenceSelection( Incidence *incidence ) 3802void CalendarView::processIncidenceSelection( Incidence *incidence )
3803{ 3803{
3804 if ( incidence == mSelectedIncidence ) return; 3804 if ( incidence == mSelectedIncidence ) return;
3805 3805
3806 mSelectedIncidence = incidence; 3806 mSelectedIncidence = incidence;
3807 3807
3808 emit incidenceSelected( mSelectedIncidence ); 3808 emit incidenceSelected( mSelectedIncidence );
3809 3809
3810 if ( incidence && incidence->typeID() == eventID ) { 3810 if ( incidence && incidence->typeID() == eventID ) {
3811 Event *event = static_cast<Event *>( incidence ); 3811 Event *event = static_cast<Event *>( incidence );
3812 if ( event->organizer() == KOPrefs::instance()->email() ) { 3812 if ( event->organizer() == KOPrefs::instance()->email() ) {
3813 emit organizerEventsSelected( true ); 3813 emit organizerEventsSelected( true );
3814 } else { 3814 } else {
3815 emit organizerEventsSelected(false); 3815 emit organizerEventsSelected(false);
3816 } 3816 }
3817 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, 3817 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails,
3818 KOPrefs::instance()->email() ) ) { 3818 KOPrefs::instance()->email() ) ) {
3819 emit groupEventsSelected( true ); 3819 emit groupEventsSelected( true );
3820 } else { 3820 } else {
3821 emit groupEventsSelected(false); 3821 emit groupEventsSelected(false);
3822 } 3822 }
3823 return; 3823 return;
3824 } else { 3824 } else {
3825 if ( incidence && incidence->typeID() == todoID ) { 3825 if ( incidence && incidence->typeID() == todoID ) {
3826 emit todoSelected( true ); 3826 emit todoSelected( true );
3827 Todo *event = static_cast<Todo *>( incidence ); 3827 Todo *event = static_cast<Todo *>( incidence );
3828 if ( event->organizer() == KOPrefs::instance()->email() ) { 3828 if ( event->organizer() == KOPrefs::instance()->email() ) {
3829 emit organizerEventsSelected( true ); 3829 emit organizerEventsSelected( true );
3830 } else { 3830 } else {
3831 emit organizerEventsSelected(false); 3831 emit organizerEventsSelected(false);
3832 } 3832 }
3833 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, 3833 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails,
3834 KOPrefs::instance()->email() ) ) { 3834 KOPrefs::instance()->email() ) ) {
3835 emit groupEventsSelected( true ); 3835 emit groupEventsSelected( true );
3836 } else { 3836 } else {
3837 emit groupEventsSelected(false); 3837 emit groupEventsSelected(false);
3838 } 3838 }
3839 return; 3839 return;
3840 } else { 3840 } else {
3841 emit todoSelected( false ); 3841 emit todoSelected( false );
3842 emit organizerEventsSelected(false); 3842 emit organizerEventsSelected(false);
3843 emit groupEventsSelected(false); 3843 emit groupEventsSelected(false);
3844 } 3844 }
3845 return; 3845 return;
3846 } 3846 }
3847 3847
3848 /* if ( incidence && incidence->typeID() == todoID ) { 3848 /* if ( incidence && incidence->typeID() == todoID ) {
3849 emit todoSelected( true ); 3849 emit todoSelected( true );
3850 } else { 3850 } else {
3851 emit todoSelected( false ); 3851 emit todoSelected( false );
3852 }*/ 3852 }*/
3853} 3853}
3854 3854
3855 3855
3856void CalendarView::checkClipboard() 3856void CalendarView::checkClipboard()
3857{ 3857{
3858#ifndef KORG_NODND 3858#ifndef KORG_NODND
3859 if (ICalDrag::canDecode(QApplication::clipboard()->data())) { 3859 if (ICalDrag::canDecode(QApplication::clipboard()->data())) {
3860 emit pasteEnabled(true); 3860 emit pasteEnabled(true);
3861 } else { 3861 } else {
3862 emit pasteEnabled(false); 3862 emit pasteEnabled(false);
3863 } 3863 }
3864#endif 3864#endif
3865} 3865}
3866 3866
3867void CalendarView::showDates(const DateList &selectedDates) 3867void CalendarView::showDates(const DateList &selectedDates)
3868{ 3868{
3869 // kdDebug() << "CalendarView::selectDates()" << endl; 3869 // kdDebug() << "CalendarView::selectDates()" << endl;
3870 3870
3871 3871
3872 if ( !mBlockShowDates ) { 3872 if ( !mBlockShowDates ) {
3873 if ( mViewManager->currentView() ) { 3873 if ( mViewManager->currentView() ) {
3874 updateView( selectedDates.first(), selectedDates.last() ); 3874 updateView( selectedDates.first(), selectedDates.last() );
3875 } else { 3875 } else {
3876 mViewManager->showAgendaView(); 3876 mViewManager->showAgendaView();
3877 } 3877 }
3878 } 3878 }
3879 3879
3880 QDate date = selectedDates.first(); 3880 QDate date = selectedDates.first();
3881 if ( ! date.isValid() ) { 3881 if ( ! date.isValid() ) {
3882 topLevelWidget()->setCaption(""); 3882 topLevelWidget()->setCaption("");
3883 return; 3883 return;
3884 } 3884 }
3885 3885
3886 QString selDates; 3886 QString selDates;
3887 selDates = KGlobal::locale()->formatDate( date, true); 3887 selDates = KGlobal::locale()->formatDate( date, true);
3888 if (selectedDates.first() < selectedDates.last() ) 3888 if (selectedDates.first() < selectedDates.last() )
3889 selDates += " - " + KGlobal::locale()->formatDate( selectedDates.last(),true); 3889 selDates += " - " + KGlobal::locale()->formatDate( selectedDates.last(),true);
3890 else { 3890 else {
3891 QString addString; 3891 QString addString;
3892 if ( date == QDateTime::currentDateTime().date() ) 3892 if ( date == QDateTime::currentDateTime().date() )
3893 addString = i18n("Today"); 3893 addString = i18n("Today");
3894 else if ( date == QDateTime::currentDateTime().date().addDays(1) ) 3894 else if ( date == QDateTime::currentDateTime().date().addDays(1) )
3895 addString = i18n("Tomorrow"); 3895 addString = i18n("Tomorrow");
3896 else if ( date == QDateTime::currentDateTime().date().addDays(-1) ) 3896 else if ( date == QDateTime::currentDateTime().date().addDays(-1) )
3897 addString = i18n("Yesterday"); 3897 addString = i18n("Yesterday");
3898 else if ( date == QDateTime::currentDateTime().date().addDays(-2) ) 3898 else if ( date == QDateTime::currentDateTime().date().addDays(-2) )
3899 addString = i18n("Day before yesterday"); 3899 addString = i18n("Day before yesterday");
3900 else if ( date == QDateTime::currentDateTime().date().addDays(2) ) 3900 else if ( date == QDateTime::currentDateTime().date().addDays(2) )
3901 addString = i18n("Day after tomorrow"); 3901 addString = i18n("Day after tomorrow");
3902 if ( !addString.isEmpty() ) { 3902 if ( !addString.isEmpty() ) {
3903 topLevelWidget()->setCaption( addString+", " + selDates ); 3903 topLevelWidget()->setCaption( addString+", " + selDates );
3904 return; 3904 return;
3905 } 3905 }
3906 } 3906 }
3907 topLevelWidget()->setCaption( i18n("Dates: ") + selDates ); 3907 topLevelWidget()->setCaption( i18n("Dates: ") + selDates );
3908 3908
3909} 3909}
3910 3910
3911QPtrList<CalFilter> CalendarView::filters() 3911QPtrList<CalFilter> CalendarView::filters()
3912{ 3912{
3913 return mFilters; 3913 return mFilters;
3914 3914
3915} 3915}
3916void CalendarView::editFilters() 3916void CalendarView::editFilters()
3917{ 3917{
3918 // kdDebug() << "CalendarView::editFilters()" << endl; 3918 // kdDebug() << "CalendarView::editFilters()" << endl;
3919 3919
3920 CalFilter *filter = mFilters.first(); 3920 CalFilter *filter = mFilters.first();
3921 while(filter) { 3921 while(filter) {
3922 kdDebug() << " Filter: " << filter->name() << endl; 3922 kdDebug() << " Filter: " << filter->name() << endl;
3923 filter = mFilters.next(); 3923 filter = mFilters.next();
3924 } 3924 }
3925 3925
3926 mDialogManager->showFilterEditDialog(&mFilters); 3926 mDialogManager->showFilterEditDialog(&mFilters);
3927} 3927}
3928void CalendarView::toggleFilter() 3928void CalendarView::toggleFilter()
3929{ 3929{
3930 showFilter(! mFilterView->isVisible()); 3930 showFilter(! mCalEditView->isVisible());
3931} 3931}
3932 3932
3933KOFilterView *CalendarView::filterView() 3933KOFilterView *CalendarView::filterView()
3934{ 3934{
3935 return mFilterView; 3935 return mFilterView;
3936} 3936}
3937void CalendarView::selectFilter( int fil ) 3937void CalendarView::selectFilter( int fil )
3938{ 3938{
3939 mFilterView->setSelectedFilter( fil ); 3939 mFilterView->setSelectedFilter( fil );
3940} 3940}
3941void CalendarView::showFilter(bool visible) 3941void CalendarView::showFilter(bool visible)
3942{ 3942{
3943#if 1 3943#if 1
3944 if (visible) { 3944 if (visible) {
3945 mCalEditView->readConfig(); 3945 mCalEditView->readConfig();
3946 mCalEditView->show(); 3946 mCalEditView->show();
3947 QValueList<int> sizes;
3948 sizes = mLeftFrame->sizes();
3949 if ( sizes.count() == 4 && sizes[3] < 20 ) {
3950 sizes.clear();
3951 sizes << 100;
3952 sizes << 0;
3953 sizes << 0;
3954 sizes << 100;
3955 mLeftFrame->setSizes(sizes);
3956 }
3957#if 0
3958 sizes = mLeftFrame->sizes();
3959 int ccc = 0;
3960 while ( ccc < sizes.count()) {
3961 qDebug("size %d %d ", ccc, sizes[ccc]);
3962 ++ccc;
3963 }
3964#endif
3965
3966 }
3967 else {
3968 mCalEditView->hide();
3947 } 3969 }
3948 else mCalEditView->hide();
3949#else 3970#else
3950 if (visible) mFilterView->show(); 3971 if (visible) mFilterView->show();
3951 else mFilterView->hide(); 3972 else mFilterView->hide();
3952#endif 3973#endif
3953} 3974}
3954void CalendarView::toggleFilerEnabled( ) 3975void CalendarView::toggleFilerEnabled( )
3955{ 3976{
3956 mFilterView->setFiltersEnabled ( !mFilterView->filtersEnabled() ); 3977 mFilterView->setFiltersEnabled ( !mFilterView->filtersEnabled() );
3957 if ( !mFilterView->filtersEnabled() ) 3978 if ( !mFilterView->filtersEnabled() )
3958 topLevelWidget()->setCaption( i18n("Filter disabled ") ); 3979 topLevelWidget()->setCaption( i18n("Filter disabled ") );
3959 3980
3960} 3981}
3961void CalendarView::updateFilter() 3982void CalendarView::updateFilter()
3962{ 3983{
3963 CalFilter *filter = mFilterView->selectedFilter(); 3984 CalFilter *filter = mFilterView->selectedFilter();
3964 if (filter) { 3985 if (filter) {
3965 QString mess; 3986 QString mess;
3966 if (mFilterView->filtersEnabled()) { 3987 if (mFilterView->filtersEnabled()) {
3967 mess = i18n("Filter selected: ")+filter->name(); 3988 mess = i18n("Filter selected: ")+filter->name();
3968 filter->setEnabled(true); 3989 filter->setEnabled(true);
3969 } 3990 }
3970 else filter->setEnabled(false); 3991 else filter->setEnabled(false);
3971 mCalendar->setFilter(filter); 3992 mCalendar->setFilter(filter);
3972 updateView(); 3993 updateView();
3973 if ( !mess.isEmpty() ) 3994 if ( !mess.isEmpty() )
3974 topLevelWidget()->setCaption( mess ); 3995 topLevelWidget()->setCaption( mess );
3975 3996
3976 } 3997 }
3977} 3998}
3978 3999
3979void CalendarView::filterEdited() 4000void CalendarView::filterEdited()
3980{ 4001{
3981 mFilterView->updateFilters(); 4002 mFilterView->updateFilters();
3982 updateFilter(); 4003 updateFilter();
3983 writeSettings(); 4004 writeSettings();
3984} 4005}
3985 4006
3986 4007
3987void CalendarView::takeOverEvent() 4008void CalendarView::takeOverEvent()
3988{ 4009{
3989 Incidence *incidence = currentSelection(); 4010 Incidence *incidence = currentSelection();
3990 4011
3991 if (!incidence) return; 4012 if (!incidence) return;
3992 4013
3993 incidence->setOrganizer(KOPrefs::instance()->email()); 4014 incidence->setOrganizer(KOPrefs::instance()->email());
3994 incidence->recreate(); 4015 incidence->recreate();
3995 incidence->setReadOnly(false); 4016 incidence->setReadOnly(false);
3996 4017
3997 updateView(); 4018 updateView();
3998} 4019}
3999 4020
4000void CalendarView::takeOverCalendar() 4021void CalendarView::takeOverCalendar()
4001{ 4022{
4002 // TODO: Create Calendar::allIncidences() function and use it here 4023 // TODO: Create Calendar::allIncidences() function and use it here
4003 4024
4004 clearAllViews(); 4025 clearAllViews();
4005 QPtrList<Event> events = mCalendar->events(); 4026 QPtrList<Event> events = mCalendar->events();
4006 for(uint i=0; i<events.count(); ++i) { 4027 for(uint i=0; i<events.count(); ++i) {
4007 events.at(i)->setOrganizer(KOPrefs::instance()->email()); 4028 events.at(i)->setOrganizer(KOPrefs::instance()->email());
4008 events.at(i)->recreate(); 4029 events.at(i)->recreate();
4009 events.at(i)->setReadOnly(false); 4030 events.at(i)->setReadOnly(false);
4010 } 4031 }
4011 4032
4012 QPtrList<Todo> todos = mCalendar->todos(); 4033 QPtrList<Todo> todos = mCalendar->todos();
4013 for(uint i=0; i<todos.count(); ++i) { 4034 for(uint i=0; i<todos.count(); ++i) {
4014 todos.at(i)->setOrganizer(KOPrefs::instance()->email()); 4035 todos.at(i)->setOrganizer(KOPrefs::instance()->email());
4015 todos.at(i)->recreate(); 4036 todos.at(i)->recreate();
4016 todos.at(i)->setReadOnly(false); 4037 todos.at(i)->setReadOnly(false);
4017 } 4038 }
4018 4039
4019 QPtrList<Journal> journals = mCalendar->journals(); 4040 QPtrList<Journal> journals = mCalendar->journals();
4020 for(uint i=0; i<journals.count(); ++i) { 4041 for(uint i=0; i<journals.count(); ++i) {
4021 journals.at(i)->setOrganizer(KOPrefs::instance()->email()); 4042 journals.at(i)->setOrganizer(KOPrefs::instance()->email());
4022 journals.at(i)->recreate(); 4043 journals.at(i)->recreate();
4023 journals.at(i)->setReadOnly(false); 4044 journals.at(i)->setReadOnly(false);
4024 } 4045 }
4025 4046
4026 updateView(); 4047 updateView();
4027} 4048}
4028 4049
4029void CalendarView::showIntro() 4050void CalendarView::showIntro()
4030{ 4051{
4031 kdDebug() << "To be implemented." << endl; 4052 kdDebug() << "To be implemented." << endl;
4032} 4053}
4033 4054
4034QWidgetStack *CalendarView::viewStack() 4055QWidgetStack *CalendarView::viewStack()
4035{ 4056{
4036 return mRightFrame; 4057 return mRightFrame;
4037} 4058}
4038 4059
4039QWidget *CalendarView::leftFrame() 4060QWidget *CalendarView::leftFrame()
4040{ 4061{
4041 return ( QWidget *)mLeftFrame; 4062 return ( QWidget *)mLeftFrame;
4042} 4063}
4043 4064
4044DateNavigator *CalendarView::dateNavigator() 4065DateNavigator *CalendarView::dateNavigator()
4045{ 4066{
4046 return mNavigator; 4067 return mNavigator;
4047} 4068}
4048 4069
4049KDateNavigator* CalendarView::dateNavigatorWidget() 4070KDateNavigator* CalendarView::dateNavigatorWidget()
4050{ 4071{
4051 return mDateNavigator->navigatorView(); 4072 return mDateNavigator->navigatorView();
4052} 4073}
4053void CalendarView::toggleDateNavigatorWidget() 4074void CalendarView::toggleDateNavigatorWidget()
4054{ 4075{
4055 KOPrefs::instance()->mShowDateNavigator = !KOPrefs::instance()->mShowDateNavigator ; 4076 KOPrefs::instance()->mShowDateNavigator = !KOPrefs::instance()->mShowDateNavigator ;
4056 4077
4057 if (!KOPrefs::instance()->mShowDateNavigator ) 4078 if (!KOPrefs::instance()->mShowDateNavigator )
4058 mDateNavigator->hide(); 4079 mDateNavigator->hide();
4059 else 4080 else
4060 mDateNavigator->show(); 4081 mDateNavigator->show();
4061} 4082}
4062void CalendarView::addView(KOrg::BaseView *view) 4083void CalendarView::addView(KOrg::BaseView *view)
4063{ 4084{
4064 mViewManager->addView(view); 4085 mViewManager->addView(view);
4065} 4086}
4066 4087
4067void CalendarView::showView(KOrg::BaseView *view) 4088void CalendarView::showView(KOrg::BaseView *view)
4068{ 4089{
4069 mViewManager->showView(view, mLeftFrame->isVisible()); 4090 mViewManager->showView(view, mLeftFrame->isVisible());
4070} 4091}
4071 4092
4072Incidence *CalendarView::currentSelection() 4093Incidence *CalendarView::currentSelection()
4073{ 4094{
4074 return mViewManager->currentSelection(); 4095 return mViewManager->currentSelection();
4075} 4096}
4076void CalendarView::toggleAllDaySize() 4097void CalendarView::toggleAllDaySize()
4077{ 4098{
4078 /* 4099 /*
4079 if ( KOPrefs::instance()->mAllDaySize > 47 ) 4100 if ( KOPrefs::instance()->mAllDaySize > 47 )
4080 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize /2; 4101 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize /2;
4081 else 4102 else
4082 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize *2; 4103 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize *2;
4083 */ 4104 */
4084 viewManager()->agendaView()->toggleAllDay(); 4105 viewManager()->agendaView()->toggleAllDay();
4085} 4106}
4086void CalendarView::toggleExpand() 4107void CalendarView::toggleExpand()
4087{ 4108{
4088 // if ( mLeftFrame->isHidden() ) { 4109 // if ( mLeftFrame->isHidden() ) {
4089 // mLeftFrame->show(); 4110 // mLeftFrame->show();
4090 // emit calendarViewExpanded( false ); 4111 // emit calendarViewExpanded( false );
4091 // } else { 4112 // } else {
4092 // mLeftFrame->hide(); 4113 // mLeftFrame->hide();
4093 // emit calendarViewExpanded( true ); 4114 // emit calendarViewExpanded( true );
4094 // } 4115 // }
4095 //qDebug(" CalendarView::toggleExpand()"); 4116 //qDebug(" CalendarView::toggleExpand()");
4096 globalFlagBlockAgenda = 1; 4117 globalFlagBlockAgenda = 1;
4097 emit calendarViewExpanded( !mLeftFrame->isHidden() ); 4118 emit calendarViewExpanded( !mLeftFrame->isHidden() );
4098 globalFlagBlockAgenda = 5; 4119 globalFlagBlockAgenda = 5;
4099 mViewManager->raiseCurrentView( !mLeftFrame->isHidden() ); 4120 mViewManager->raiseCurrentView( !mLeftFrame->isHidden() );
4100 //mViewManager->showView( 0, true ); 4121 //mViewManager->showView( 0, true );
4101} 4122}
4102 4123
4103void CalendarView::calendarModified( bool modified, Calendar * ) 4124void CalendarView::calendarModified( bool modified, Calendar * )
4104{ 4125{
4105 setModified( modified ); 4126 setModified( modified );
4106} 4127}
4107 4128
4108Todo *CalendarView::selectedTodo() 4129Todo *CalendarView::selectedTodo()
4109{ 4130{
4110 Incidence *incidence = currentSelection(); 4131 Incidence *incidence = currentSelection();
4111 if ( incidence && incidence->typeID() == todoID ) { 4132 if ( incidence && incidence->typeID() == todoID ) {
4112 return static_cast<Todo *>( incidence ); 4133 return static_cast<Todo *>( incidence );
4113 } 4134 }
4114 4135
4115 incidence = mTodoList->selectedIncidences().first(); 4136 incidence = mTodoList->selectedIncidences().first();
4116 if ( incidence && incidence->typeID() == todoID ) { 4137 if ( incidence && incidence->typeID() == todoID ) {
4117 return static_cast<Todo *>( incidence ); 4138 return static_cast<Todo *>( incidence );
4118 } 4139 }
4119 4140
4120 return 0; 4141 return 0;
4121} 4142}
4122 4143
4123void CalendarView::dialogClosing(Incidence *in) 4144void CalendarView::dialogClosing(Incidence *in)
4124{ 4145{
4125 // mDialogList.remove(in); 4146 // mDialogList.remove(in);
4126} 4147}
4127 4148
4128void CalendarView::showIncidence() 4149void CalendarView::showIncidence()
4129{ 4150{
4130 mViewerCallerIsSearchDialog = false; 4151 mViewerCallerIsSearchDialog = false;
4131 Incidence *incidence = currentSelection(); 4152 Incidence *incidence = currentSelection();
4132 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 4153 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
4133 if ( incidence ) { 4154 if ( incidence ) {
4134 ShowIncidenceVisitor v; 4155 ShowIncidenceVisitor v;
4135 v.act( incidence, this ); 4156 v.act( incidence, this );
4136 } 4157 }
4137} 4158}
4138void CalendarView::editIncidenceDescription() 4159void CalendarView::editIncidenceDescription()
4139{ 4160{
4140 mFlagEditDescription = true; 4161 mFlagEditDescription = true;
4141 editIncidence(); 4162 editIncidence();
4142 mFlagEditDescription = false; 4163 mFlagEditDescription = false;
4143} 4164}
4144void CalendarView::editIncidence() 4165void CalendarView::editIncidence()
4145{ 4166{
4146 // qDebug("editIncidence() "); 4167 // qDebug("editIncidence() ");
4147 Incidence *incidence = currentSelection(); 4168 Incidence *incidence = currentSelection();
4148 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 4169 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
4149 if ( incidence ) { 4170 if ( incidence ) {
4150 EditIncidenceVisitor v; 4171 EditIncidenceVisitor v;
4151 v.act( incidence, this ); 4172 v.act( incidence, this );
4152 } 4173 }
4153} 4174}
4154 4175
4155void CalendarView::deleteIncidence() 4176void CalendarView::deleteIncidence()
4156{ 4177{
4157 Incidence *incidence = currentSelection(); 4178 Incidence *incidence = currentSelection();
4158 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 4179 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
4159 if ( incidence ) { 4180 if ( incidence ) {
4160 deleteIncidence(incidence); 4181 deleteIncidence(incidence);
4161 } 4182 }
4162} 4183}
4163void CalendarView::showIncidence(QString uid) 4184void CalendarView::showIncidence(QString uid)
4164{ 4185{
4165 Incidence *inc = mCalendar->incidence( uid ); 4186 Incidence *inc = mCalendar->incidence( uid );
4166 if ( inc ) 4187 if ( inc )
4167 showIncidence( inc ); 4188 showIncidence( inc );
4168} 4189}
4169void CalendarView::showIncidence(Incidence *incidence) 4190void CalendarView::showIncidence(Incidence *incidence)
4170{ 4191{
4171 mViewerCallerIsSearchDialog = false; 4192 mViewerCallerIsSearchDialog = false;
4172 //qDebug("%x %x ",sender (), mDialogManager->getSearchDialog() ); 4193 //qDebug("%x %x ",sender (), mDialogManager->getSearchDialog() );
4173 if ( sender() && mDialogManager->getSearchDialog() ) { 4194 if ( sender() && mDialogManager->getSearchDialog() ) {
4174 if ( sender () == mDialogManager->getSearchDialog()->listview() ) { 4195 if ( sender () == mDialogManager->getSearchDialog()->listview() ) {
4175 mViewerCallerIsSearchDialog = true; 4196 mViewerCallerIsSearchDialog = true;
4176 } 4197 }
4177 } 4198 }
4178 if ( incidence ) { 4199 if ( incidence ) {
4179 ShowIncidenceVisitor v; 4200 ShowIncidenceVisitor v;
4180 v.act( incidence, this ); 4201 v.act( incidence, this );
4181 } 4202 }
4182} 4203}
4183 4204
4184void CalendarView::editIncidence(Incidence *incidence) 4205void CalendarView::editIncidence(Incidence *incidence)
4185{ 4206{
4186 if ( incidence ) { 4207 if ( incidence ) {
4187 4208
4188 EditIncidenceVisitor v; 4209 EditIncidenceVisitor v;
4189 v.act( incidence, this ); 4210 v.act( incidence, this );
4190 4211
4191 } 4212 }
4192} 4213}
4193 4214
4194void CalendarView::deleteIncidence(Incidence *incidence) 4215void CalendarView::deleteIncidence(Incidence *incidence)
4195{ 4216{
4196 //qDebug(" CalendarView::deleteIncidence "); 4217 //qDebug(" CalendarView::deleteIncidence ");
4197 if ( incidence ) { 4218 if ( incidence ) {
4198 DeleteIncidenceVisitor v; 4219 DeleteIncidenceVisitor v;
4199 v.act( incidence, this ); 4220 v.act( incidence, this );
4200 } 4221 }
4201} 4222}
4202 4223
4203 4224
4204void CalendarView::lookForOutgoingMessages() 4225void CalendarView::lookForOutgoingMessages()
4205{ 4226{
4206 OutgoingDialog *ogd = mDialogManager->outgoingDialog(); 4227 OutgoingDialog *ogd = mDialogManager->outgoingDialog();
4207 ogd->loadMessages(); 4228 ogd->loadMessages();
4208} 4229}
4209 4230
4210void CalendarView::lookForIncomingMessages() 4231void CalendarView::lookForIncomingMessages()
4211{ 4232{
4212 IncomingDialog *icd = mDialogManager->incomingDialog(); 4233 IncomingDialog *icd = mDialogManager->incomingDialog();
4213 icd->retrieve(); 4234 icd->retrieve();
4214} 4235}
4215 4236
4216bool CalendarView::removeCompletedSubTodos( Todo* t ) 4237bool CalendarView::removeCompletedSubTodos( Todo* t )
4217{ 4238{
4218 bool deleteTodo = true; 4239 bool deleteTodo = true;
4219 QPtrList<Incidence> subTodos; 4240 QPtrList<Incidence> subTodos;
4220 Incidence *aTodo; 4241 Incidence *aTodo;
4221 subTodos = t->relations(); 4242 subTodos = t->relations();
4222 for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) { 4243 for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) {
4223 if (! removeCompletedSubTodos( (Todo*) aTodo )) 4244 if (! removeCompletedSubTodos( (Todo*) aTodo ))
4224 deleteTodo = false; 4245 deleteTodo = false;
4225 } 4246 }
4226 if ( deleteTodo ) { 4247 if ( deleteTodo ) {
4227 if ( t->isCompleted() && !t->doesRecur()) { 4248 if ( t->isCompleted() && !t->doesRecur()) {
4228 checkExternalId( t ); 4249 checkExternalId( t );
4229 mCalendar->deleteTodo( t ); 4250 mCalendar->deleteTodo( t );
4230 changeTodoDisplay( t,KOGlobals::EVENTDELETED ); 4251 changeTodoDisplay( t,KOGlobals::EVENTDELETED );
4231 } 4252 }
4232 else 4253 else
4233 deleteTodo = false; 4254 deleteTodo = false;
4234 } 4255 }
4235 return deleteTodo; 4256 return deleteTodo;
4236 4257
4237} 4258}
4238void CalendarView::purgeCompleted() 4259void CalendarView::purgeCompleted()
4239{ 4260{
4240 int result = KMessageBox::warningContinueCancel(this, 4261 int result = KMessageBox::warningContinueCancel(this,
4241 i18n("Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)"),i18n("Purge Todos"),i18n("Purge")); 4262 i18n("Delete all completed todos?\n(Completed recurring todos\nwill not be deleted!)"),i18n("Purge Todos"),i18n("Purge"));
4242 4263
4243 if (result == KMessageBox::Continue) { 4264 if (result == KMessageBox::Continue) {
4244 4265
4245 QPtrList<Todo> todoCal; 4266 QPtrList<Todo> todoCal;
4246 QPtrList<Todo> rootTodos; 4267 QPtrList<Todo> rootTodos;
4247 //QPtrList<Incidence> rel; 4268 //QPtrList<Incidence> rel;
4248 Todo *aTodo;//, *rTodo; 4269 Todo *aTodo;//, *rTodo;
4249 Incidence *rIncidence; 4270 Incidence *rIncidence;
4250 bool childDelete = false; 4271 bool childDelete = false;
4251 bool deletedOne = true; 4272 bool deletedOne = true;
4252 todoCal = calendar()->todos(); 4273 todoCal = calendar()->todos();
4253 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) { 4274 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) {
4254 if ( !aTodo->relatedTo() ) 4275 if ( !aTodo->relatedTo() )
4255 rootTodos.append( aTodo ); 4276 rootTodos.append( aTodo );
4256 } 4277 }
4257 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) { 4278 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) {
4258 removeCompletedSubTodos( aTodo ); 4279 removeCompletedSubTodos( aTodo );
4259 } 4280 }
4260 4281
4261 updateView(); 4282 updateView();
4262 } 4283 }
4263} 4284}
4264 4285
4265void CalendarView::slotCalendarChanged() 4286void CalendarView::slotCalendarChanged()
4266{ 4287{
4267 ; 4288 ;
4268} 4289}
4269 4290
4270void CalendarView::keyPressEvent ( QKeyEvent *e) 4291void CalendarView::keyPressEvent ( QKeyEvent *e)
4271{ 4292{
4272 //qDebug(" alendarView::keyPressEvent "); 4293 //qDebug(" alendarView::keyPressEvent ");
4273 e->ignore(); 4294 e->ignore();
4274} 4295}
4275 4296
4276 4297
4277bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) 4298bool CalendarView::sync(KSyncManager* manager, QString filename, int mode)
4278{ 4299{
4279 // mSyncManager = manager; 4300 // mSyncManager = manager;
4280 if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) { 4301 if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) {
4281 qDebug("KO: SyncKDE request detected!"); 4302 qDebug("KO: SyncKDE request detected!");
4282 } 4303 }
4283 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 4304 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
4284 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 4305 mCurrentSyncName = mSyncManager->getCurrentSyncName();
4285 return syncCalendar( filename, mode ); 4306 return syncCalendar( filename, mode );
4286} 4307}
4287bool CalendarView::syncExternal(KSyncManager* manager, QString resource) 4308bool CalendarView::syncExternal(KSyncManager* manager, QString resource)
4288{ 4309{
4289 //mSyncManager = manager; 4310 //mSyncManager = manager;
4290 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 4311 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
4291 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 4312 mCurrentSyncName = mSyncManager->getCurrentSyncName();
4292 if ( resource == "sharp" ) 4313 if ( resource == "sharp" )
4293 syncExternal( 0 ); 4314 syncExternal( 0 );
4294 if ( resource == "phone" ) 4315 if ( resource == "phone" )
4295 syncExternal( 1 ); 4316 syncExternal( 1 );
4296 // pending setmodified 4317 // pending setmodified
4297 return true; 4318 return true;
4298} 4319}
4299void CalendarView::setSyncManager(KSyncManager* manager) 4320void CalendarView::setSyncManager(KSyncManager* manager)
4300{ 4321{
4301 mSyncManager = manager; 4322 mSyncManager = manager;
4302} 4323}
4303 4324
4304void CalendarView::removeSyncInfo( QString syncProfile) 4325void CalendarView::removeSyncInfo( QString syncProfile)
4305{ 4326{
4306 qDebug("KO: removeSyncInfo for profile %s ", syncProfile.latin1()); 4327 qDebug("KO: removeSyncInfo for profile %s ", syncProfile.latin1());
4307 mCalendar->removeSyncInfo( syncProfile ); 4328 mCalendar->removeSyncInfo( syncProfile );
4308 4329
4309} 4330}
4310 4331
4311void CalendarView::undo_delete() 4332void CalendarView::undo_delete()
4312{ 4333{
4313 //qDebug("undo_delete() "); 4334 //qDebug("undo_delete() ");
4314 Incidence* undo = mCalendar->undoIncidence(); 4335 Incidence* undo = mCalendar->undoIncidence();
4315 if ( !undo ) { 4336 if ( !undo ) {
4316 KMessageBox::sorry(this,i18n("There is nothing to undo!"), 4337 KMessageBox::sorry(this,i18n("There is nothing to undo!"),
4317 i18n("KO/Pi")); 4338 i18n("KO/Pi"));
4318 return; 4339 return;
4319 } 4340 }
4320 if ( KMessageBox::Continue ==KMessageBox::warningContinueCancel(this,undo->summary().left(25) + 4341 if ( KMessageBox::Continue ==KMessageBox::warningContinueCancel(this,undo->summary().left(25) +
4321 i18n("\nAre you sure you want\nto restore this?"), 4342 i18n("\nAre you sure you want\nto restore this?"),
4322 i18n("KO/Pi Confirmation"),i18n("Restore"))) { 4343 i18n("KO/Pi Confirmation"),i18n("Restore"))) {
4323 mCalendar->undoDeleteIncidence(); 4344 mCalendar->undoDeleteIncidence();
4324 updateView(); 4345 updateView();
4325 } 4346 }
4326} 4347}
4327 4348
4328void CalendarView::slotViewerClosed() 4349void CalendarView::slotViewerClosed()
4329{ 4350{
4330 QTimer::singleShot( 50, this, SLOT ( resetFocus() ) ); 4351 QTimer::singleShot( 50, this, SLOT ( resetFocus() ) );
4331} 4352}
4332 4353
4333void CalendarView::resetFocus() 4354void CalendarView::resetFocus()
4334{ 4355{
4335 if ( mViewerCallerIsSearchDialog ) { 4356 if ( mViewerCallerIsSearchDialog ) {
4336 if ( mDialogManager->getSearchDialog()->isVisible() ){ 4357 if ( mDialogManager->getSearchDialog()->isVisible() ){
4337 mDialogManager->getSearchDialog()->raise(); 4358 mDialogManager->getSearchDialog()->raise();
4338 mDialogManager->getSearchDialog()->setActiveWindow(); 4359 mDialogManager->getSearchDialog()->setActiveWindow();
4339 mDialogManager->getSearchDialog()->listview()->resetFocus(); 4360 mDialogManager->getSearchDialog()->listview()->resetFocus();
4340 } else 4361 } else
4341 mViewerCallerIsSearchDialog = false; 4362 mViewerCallerIsSearchDialog = false;
4342 } 4363 }
4343 if ( !mViewerCallerIsSearchDialog ) { 4364 if ( !mViewerCallerIsSearchDialog ) {
4344 //mViewManager->currentView()->setFocus(); 4365 //mViewManager->currentView()->setFocus();
4345 //qDebug("sssssssssssssssset focus "); 4366 //qDebug("sssssssssssssssset focus ");
4346 topLevelWidget()->raise(); 4367 topLevelWidget()->raise();
4347 setActiveWindow(); 4368 setActiveWindow();
4348 //setFocus(); 4369 //setFocus();
4349 } 4370 }
4350 mViewerCallerIsSearchDialog = false; 4371 mViewerCallerIsSearchDialog = false;
4351} 4372}
4352 4373
4353void CalendarView::showNextAlarms() 4374void CalendarView::showNextAlarms()
4354{ 4375{
4355 QString message; 4376 QString message;
4356 QDateTime nextAl = mCalendar->nextAlarmEventDateTime(); 4377 QDateTime nextAl = mCalendar->nextAlarmEventDateTime();
4357 if ( nextAl.isValid() && mNextAlarmDateTime > QDateTime::currentDateTime() ) { 4378 if ( nextAl.isValid() && mNextAlarmDateTime > QDateTime::currentDateTime() ) {
4358 QString sum = mCalendar->nextSummary(); 4379 QString sum = mCalendar->nextSummary();
4359 QDateTime nextA = mNextAlarmDateTime; 4380 QDateTime nextA = mNextAlarmDateTime;
4360 QDateTime cur = QDateTime::currentDateTime(); 4381 QDateTime cur = QDateTime::currentDateTime();
4361 int secs = cur.secsTo( nextA ); 4382 int secs = cur.secsTo( nextA );
4362 int min = secs /60; 4383 int min = secs /60;
4363 int hours = min /60; 4384 int hours = min /60;
4364 min = min % 60; 4385 min = min % 60;
4365 int days = hours /24; 4386 int days = hours /24;
4366 hours = hours % 24; 4387 hours = hours % 24;
4367 4388
4368 //message = i18n("The next alarm is in:\n"); 4389 //message = i18n("The next alarm is in:\n");
4369 if ( days > 1 ) 4390 if ( days > 1 )
4370 message += i18n("%1 days\n").arg( days ); 4391 message += i18n("%1 days\n").arg( days );
4371 else if ( days == 1 ) 4392 else if ( days == 1 )
4372 message += i18n("1 day\n"); 4393 message += i18n("1 day\n");
4373 if ( hours > 1 ) 4394 if ( hours > 1 )
4374 message += i18n("%1 hours\n").arg( hours ); 4395 message += i18n("%1 hours\n").arg( hours );
4375 else if ( hours == 1 ) 4396 else if ( hours == 1 )
4376 message += i18n("1 hour\n"); 4397 message += i18n("1 hour\n");
4377 if ( min > 1 ) 4398 if ( min > 1 )
4378 message += i18n("%1 minutes\n").arg( min ); 4399 message += i18n("%1 minutes\n").arg( min );
4379 else if ( min == 1 ) 4400 else if ( min == 1 )
4380 message += i18n("1 minute\n"); 4401 message += i18n("1 minute\n");
4381 if ( message.isEmpty() ) 4402 if ( message.isEmpty() )
4382 message = i18n("The next alarm is in\nless than one minute!"); 4403 message = i18n("The next alarm is in\nless than one minute!");
4383 else 4404 else
4384 message = i18n("The next alarm is in:\n") + message; 4405 message = i18n("The next alarm is in:\n") + message;
4385 message += i18n("\n(%1)\n\n%2\n(%3)\n").arg( KGlobal::locale()->formatDateTime(nextA , false)).arg(sum ).arg( KGlobal::locale()->formatDateTime(nextAl , false)) ; 4406 message += i18n("\n(%1)\n\n%2\n(%3)\n").arg( KGlobal::locale()->formatDateTime(nextA , false)).arg(sum ).arg( KGlobal::locale()->formatDateTime(nextAl , false)) ;
4386 } else { 4407 } else {
4387 message = i18n("There is no next alarm."); 4408 message = i18n("There is no next alarm.");
4388 4409
4389 } 4410 }
4390#ifdef DESKTOP_VERSION 4411#ifdef DESKTOP_VERSION
4391 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { 4412 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) {
4392 message += i18n("\nThe internal alarm notification is disabled!\n"); 4413 message += i18n("\nThe internal alarm notification is disabled!\n");
4393 message += i18n("Enable it in the settings menu, TAB alarm."); 4414 message += i18n("Enable it in the settings menu, TAB alarm.");
4394 } 4415 }
4395 4416
4396#endif 4417#endif
4397 KMessageBox::information( this, message); 4418 KMessageBox::information( this, message);
4398} 4419}
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index bc6aae4..9fe285c 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -1,591 +1,591 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <time.h> 24#include <time.h>
25#ifndef _WIN32_ 25#ifndef _WIN32_
26#include <unistd.h> 26#include <unistd.h>
27#endif 27#endif
28#include <qdir.h> 28#include <qdir.h>
29#include <qtextstream.h> 29#include <qtextstream.h>
30#include <qtextcodec.h> 30#include <qtextcodec.h>
31#include <qstring.h> 31#include <qstring.h>
32#include <qregexp.h> 32#include <qregexp.h>
33#include <qfont.h> 33#include <qfont.h>
34#include <qcolor.h> 34#include <qcolor.h>
35#include <qstringlist.h> 35#include <qstringlist.h>
36#include <stdlib.h> 36#include <stdlib.h>
37 37
38#include <kglobal.h> 38#include <kglobal.h>
39#include <kglobalsettings.h> 39#include <kglobalsettings.h>
40#include <kconfig.h> 40#include <kconfig.h>
41#include <klocale.h> 41#include <klocale.h>
42#include <kdebug.h> 42#include <kdebug.h>
43#include <kemailsettings.h> 43#include <kemailsettings.h>
44#include <kstaticdeleter.h> 44#include <kstaticdeleter.h>
45#include <libkdepim/kpimglobalprefs.h> 45#include <libkdepim/kpimglobalprefs.h>
46 46
47#include "koprefs.h" 47#include "koprefs.h"
48#include "mainwindow.h" 48#include "mainwindow.h"
49 49
50KOPrefs *KOPrefs::mInstance = 0; 50KOPrefs *KOPrefs::mInstance = 0;
51static KStaticDeleter<KOPrefs> insd; 51static KStaticDeleter<KOPrefs> insd;
52 52
53KOPrefs::KOPrefs() : 53KOPrefs::KOPrefs() :
54 KPimPrefs("korganizerrc") 54 KPimPrefs("korganizerrc")
55{ 55{
56 mCategoryColors.setAutoDelete(true); 56 mCategoryColors.setAutoDelete(true);
57 fillMailDefaults(); 57 fillMailDefaults();
58 mDefaultCategoryColor = QColor(175,210,255);//196,196,196); 58 mDefaultCategoryColor = QColor(175,210,255);//196,196,196);
59 QColor defaultHolidayColor = QColor(255,0,0); 59 QColor defaultHolidayColor = QColor(255,0,0);
60 QColor defaultHighlightColor = QColor(129,112,255);//64,64,255); 60 QColor defaultHighlightColor = QColor(129,112,255);//64,64,255);
61 QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128); 61 QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128);
62 QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160); 62 QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160);
63 QColor defaultTodoDueTodayColor = QColor(255,220,100); 63 QColor defaultTodoDueTodayColor = QColor(255,220,100);
64 QColor defaultTodoOverdueColor = QColor(255,153,125); 64 QColor defaultTodoOverdueColor = QColor(255,153,125);
65 QColor defaultTodoRunColor = QColor(99,194,30); 65 QColor defaultTodoRunColor = QColor(99,194,30);
66 KPrefs::setCurrentGroup("General"); 66 KPrefs::setCurrentGroup("General");
67 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); 67 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
68 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true); 68 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true);
69 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true); 69 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true);
70 addItemBool("ShowIconSearch",&mShowIconSearch,true); 70 addItemBool("ShowIconSearch",&mShowIconSearch,true);
71 addItemBool("ShowIconList",&mShowIconList,true); 71 addItemBool("ShowIconList",&mShowIconList,true);
72 addItemBool("ShowIconDay1",&mShowIconDay1,true); 72 addItemBool("ShowIconDay1",&mShowIconDay1,true);
73 addItemBool("ShowIconDay5",&mShowIconDay5,true); 73 addItemBool("ShowIconDay5",&mShowIconDay5,true);
74 addItemBool("ShowIconDay6",&mShowIconDay6,true); 74 addItemBool("ShowIconDay6",&mShowIconDay6,true);
75 addItemBool("ShowIconDay7",&mShowIconDay7,true); 75 addItemBool("ShowIconDay7",&mShowIconDay7,true);
76 addItemBool("ShowIconMonth",&mShowIconMonth,true); 76 addItemBool("ShowIconMonth",&mShowIconMonth,true);
77 addItemBool("ShowIconTodoview",&mShowIconTodoview,true); 77 addItemBool("ShowIconTodoview",&mShowIconTodoview,true);
78 addItemBool("ShowIconBackFast",&mShowIconBackFast,true); 78 addItemBool("ShowIconBackFast",&mShowIconBackFast,true);
79 addItemBool("ShowIconBack",&mShowIconBack,true); 79 addItemBool("ShowIconBack",&mShowIconBack,true);
80 addItemBool("ShowIconToday",&mShowIconToday,true); 80 addItemBool("ShowIconToday",&mShowIconToday,true);
81 addItemBool("ShowIconForward",&mShowIconForward,true); 81 addItemBool("ShowIconForward",&mShowIconForward,true);
82 addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true); 82 addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true);
83 addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,true); 83 addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,true);
84 addItemBool("ShowIconWeekNum",&mShowIconWeekNum,true); 84 addItemBool("ShowIconWeekNum",&mShowIconWeekNum,true);
85 addItemBool("ShowIconNextDays",&mShowIconNextDays,true); 85 addItemBool("ShowIconNextDays",&mShowIconNextDays,true);
86 addItemBool("ShowIconNext",&mShowIconNext,true); 86 addItemBool("ShowIconNext",&mShowIconNext,true);
87 addItemBool("ShowIconJournal",&mShowIconJournal,true); 87 addItemBool("ShowIconJournal",&mShowIconJournal,true);
88 addItemBool("ShowIconStretch",&mShowIconStretch,true); 88 addItemBool("ShowIconStretch",&mShowIconStretch,true);
89 addItemBool("ShowIconFilter",&mShowIconFilter,false); 89 addItemBool("ShowIconFilter",&mShowIconFilter,false);
90 addItemBool("ShowIconOnetoolbar",&mShowIconOnetoolbar,true); 90 addItemBool("ShowIconOnetoolbar",&mShowIconOnetoolbar,true);
91 91
92 bool addIcons = false; 92 bool addIcons = false;
93#ifdef DESKTOP_VERSION 93#ifdef DESKTOP_VERSION
94 addIcons = true; 94 addIcons = true;
95#endif 95#endif
96 addItemBool("ShowIconNavigator",&mShowIconNavigator,addIcons); 96 addItemBool("ShowIconNavigator",&mShowIconNavigator,addIcons);
97 addItemBool("ShowIconAllday",&mShowIconAllday,addIcons); 97 addItemBool("ShowIconAllday",&mShowIconAllday,addIcons);
98 addItemBool("ShowIconFilterview",&mShowIconFilterview,addIcons); 98 addItemBool("ShowIconFilterview",&mShowIconFilterview,addIcons);
99 addItemBool("ShowIconToggleFull",&mShowIconToggleFull,addIcons); 99 addItemBool("ShowIconToggleFull",&mShowIconToggleFull,addIcons);
100 100
101 addItemInt("LastLoadedLanguage",&mOldLanguage,0); 101 addItemInt("LastLoadedLanguage",&mOldLanguage,0);
102 102
103 addItemBool("AskForQuit",&mAskForQuit,false); 103 addItemBool("AskForQuit",&mAskForQuit,false);
104 104
105#ifndef DESKTOP_VERSION 105#ifndef DESKTOP_VERSION
106 addItemBool("ShowFullMenu",&mShowFullMenu,false); 106 addItemBool("ShowFullMenu",&mShowFullMenu,false);
107#else 107#else
108 addItemBool("ShowFullMenu",&mShowFullMenu,true); 108 addItemBool("ShowFullMenu",&mShowFullMenu,true);
109#endif 109#endif
110 addItemBool("ToolBarHor",&mToolBarHor, true ); 110 addItemBool("ToolBarHor",&mToolBarHor, true );
111 addItemBool("ToolBarUp",&mToolBarUp, false ); 111 addItemBool("ToolBarUp",&mToolBarUp, false );
112 addItemBool("ToolBarHorV",&mToolBarHorV, true ); 112 addItemBool("ToolBarHorV",&mToolBarHorV, true );
113 addItemBool("ToolBarUpV",&mToolBarUpV, false ); 113 addItemBool("ToolBarUpV",&mToolBarUpV, false );
114 addItemBool("ToolBarHorN",&mToolBarHorN, true ); 114 addItemBool("ToolBarHorN",&mToolBarHorN, true );
115 addItemBool("ToolBarUpN",&mToolBarUpN, false ); 115 addItemBool("ToolBarUpN",&mToolBarUpN, false );
116 addItemBool("ToolBarHorF",&mToolBarHorF, true ); 116 addItemBool("ToolBarHorF",&mToolBarHorF, true );
117 addItemBool("ToolBarUpF",&mToolBarUpF, false ); 117 addItemBool("ToolBarUpF",&mToolBarUpF, false );
118 addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false ); 118 addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false );
119 addItemInt("Whats Next Days",&mWhatsNextDays,3); 119 addItemInt("Whats Next Days",&mWhatsNextDays,3);
120 addItemInt("Whats Next Prios",&mWhatsNextPrios,1); 120 addItemInt("Whats Next Prios",&mWhatsNextPrios,1);
121 121
122 addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true); 122 addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true);
123 addItemBool("ShowCompletedTodoInAgenda",&mShowCompletedTodoInAgenda,true); 123 addItemBool("ShowCompletedTodoInAgenda",&mShowCompletedTodoInAgenda,true);
124 addItemBool("ShowTimeInAgenda",&mShowTimeInAgenda,true); 124 addItemBool("ShowTimeInAgenda",&mShowTimeInAgenda,true);
125 addItemBool("HideNonStartedTodos",&mHideNonStartedTodos,false); 125 addItemBool("HideNonStartedTodos",&mHideNonStartedTodos,false);
126 addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true); 126 addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true);
127 addItemInt("AllDay Size",&mAllDaySize,28); 127 addItemInt("AllDay Size",&mAllDaySize,28);
128 QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav"; 128 QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav";
129 addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm ); 129 addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm );
130 130
131 addItemStringList("LocationDefaults",&mLocationDefaults ); 131 addItemStringList("LocationDefaults",&mLocationDefaults );
132 addItemStringList("EventSummary User",&mEventSummaryUser); 132 addItemStringList("EventSummary User",&mEventSummaryUser);
133 addItemStringList("TodoSummary User",&mTodoSummaryUser); 133 addItemStringList("TodoSummary User",&mTodoSummaryUser);
134 134
135 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); 135 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
136 addItemBool("Enable Project View",&mEnableProjectView,false); 136 addItemBool("Enable Project View",&mEnableProjectView,false);
137 addItemBool("Auto Save",&mAutoSave,false); 137 addItemBool("Auto Save",&mAutoSave,false);
138 addItemInt("Auto Save Interval",&mAutoSaveInterval,3); 138 addItemInt("Auto Save Interval",&mAutoSaveInterval,3);
139 addItemBool("Confirm Deletes",&mConfirm,true); 139 addItemBool("Confirm Deletes",&mConfirm,true);
140 addItemString("Archive File",&mArchiveFile); 140 addItemString("Archive File",&mArchiveFile);
141 addItemString("Html Export File",&mHtmlExportFile, 141 addItemString("Html Export File",&mHtmlExportFile,
142 QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html")); 142 QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html"));
143 addItemBool("Html With Save",&mHtmlWithSave,false); 143 addItemBool("Html With Save",&mHtmlWithSave,false);
144 144
145 KPrefs::setCurrentGroup("Personal Settings"); 145 KPrefs::setCurrentGroup("Personal Settings");
146 146
147 addItemInt("Mail Client",&mMailClient,MailClientKMail); 147 addItemInt("Mail Client",&mMailClient,MailClientKMail);
148 addItemBool("Use Control Center Email",&mEmailControlCenter,false); 148 addItemBool("Use Control Center Email",&mEmailControlCenter,false);
149 addItemBool("Bcc",&mBcc,false); 149 addItemBool("Bcc",&mBcc,false);
150 150
151 KPrefs::setCurrentGroup("Time & Date"); 151 KPrefs::setCurrentGroup("Time & Date");
152 152
153 153
154 addItemInt("Default Start Time",&mStartTime,10); 154 addItemInt("Default Start Time",&mStartTime,10);
155 addItemInt("Default Duration",&mDefaultDuration,2); 155 addItemInt("Default Duration",&mDefaultDuration,2);
156 addItemInt("Default Alarm Time",&mAlarmTime,3); 156 addItemInt("Default Alarm Time",&mAlarmTime,3);
157 KPrefs::setCurrentGroup("AlarmSettings"); 157 KPrefs::setCurrentGroup("AlarmSettings");
158 addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20); 158 addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20);
159 addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7); 159 addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7);
160 addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5); 160 addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5);
161 addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3); 161 addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3);
162 162
163 163
164 KPrefs::setCurrentGroup("Calendar"); 164 KPrefs::setCurrentGroup("Calendar");
165 165
166 addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar); 166 addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar);
167 167
168 KPrefs::setCurrentGroup("Fonts"); 168 KPrefs::setCurrentGroup("Fonts");
169 // qDebug(" KPrefs::setCurrentGroup(Fonts); "); 169 // qDebug(" KPrefs::setCurrentGroup(Fonts); ");
170 QFont fon = KGlobalSettings::generalFont(); 170 QFont fon = KGlobalSettings::generalFont();
171 addItemFont("TimeBar Font",&mTimeBarFont,fon ); 171 addItemFont("TimeBar Font",&mTimeBarFont,fon );
172 addItemFont("MonthView Font",&mMonthViewFont,fon); 172 addItemFont("MonthView Font",&mMonthViewFont,fon);
173 addItemFont("AgendaView Font",&mAgendaViewFont,fon); 173 addItemFont("AgendaView Font",&mAgendaViewFont,fon);
174 addItemFont("MarcusBains Font",&mMarcusBainsFont,fon); 174 addItemFont("MarcusBains Font",&mMarcusBainsFont,fon);
175 addItemFont("TimeLabels Font",&mTimeLabelsFont,fon); 175 addItemFont("TimeLabels Font",&mTimeLabelsFont,fon);
176 addItemFont("TodoView Font",&mTodoViewFont,fon); 176 addItemFont("TodoView Font",&mTodoViewFont,fon);
177 addItemFont("ListView Font",&mListViewFont,fon); 177 addItemFont("ListView Font",&mListViewFont,fon);
178 addItemFont("DateNavigator Font",&mDateNavigatorFont,fon); 178 addItemFont("DateNavigator Font",&mDateNavigatorFont,fon);
179 addItemFont("EditBox Font",&mEditBoxFont,fon); 179 addItemFont("EditBox Font",&mEditBoxFont,fon);
180 addItemFont("JournalView Font",&mJornalViewFont,fon); 180 addItemFont("JournalView Font",&mJornalViewFont,fon);
181 addItemFont("WhatsNextView Font",&mWhatsNextFont,fon); 181 addItemFont("WhatsNextView Font",&mWhatsNextFont,fon);
182 addItemFont("EventView Font",&mEventViewFont,fon); 182 addItemFont("EventView Font",&mEventViewFont,fon);
183 183
184 KPrefs::setCurrentGroup("RemoteSyncing"); 184 KPrefs::setCurrentGroup("RemoteSyncing");
185 addItemString("ActiveSyncPort",&mActiveSyncPort,"9197" ); 185 addItemString("ActiveSyncPort",&mActiveSyncPort,"9197" );
186 addItemString("ActiveSyncIP",&mActiveSyncIP,"192.168.0.40" ); 186 addItemString("ActiveSyncIP",&mActiveSyncIP,"192.168.0.40" );
187 addItemBool("ShowSyncEvents",&mShowSyncEvents,false); 187 addItemBool("ShowSyncEvents",&mShowSyncEvents,false);
188 addItemInt("LastSyncTime",&mLastSyncTime,0); 188 addItemInt("LastSyncTime",&mLastSyncTime,0);
189 189
190#ifdef _WIN32_ 190#ifdef _WIN32_
191 QString hdp= locateLocal("data","korganizer")+"\\\\"; 191 QString hdp= locateLocal("data","korganizer")+"\\\\";
192#else 192#else
193 QString hdp= locateLocal("data","korganizer")+"/"; 193 QString hdp= locateLocal("data","korganizer")+"/";
194#endif 194#endif
195 195
196 KPrefs::setCurrentGroup("LoadSaveFileNames"); 196 KPrefs::setCurrentGroup("LoadSaveFileNames");
197 197
198 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); 198 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" );
199 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); 199 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" );
200 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); 200 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" );
201 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); 201 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" );
202 202
203 203
204 KPrefs::setCurrentGroup("Locale"); 204 KPrefs::setCurrentGroup("Locale");
205 addItemBool("ShortDateInViewer",&mShortDateInViewer,false); 205 addItemBool("ShortDateInViewer",&mShortDateInViewer,false);
206 206
207 207
208 KPrefs::setCurrentGroup("Colors"); 208 KPrefs::setCurrentGroup("Colors");
209 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor); 209 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor);
210 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor); 210 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor);
211 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor); 211 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor);
212 addItemColor("Todo done Color",&mTodoDoneColor,QColor(111,255,115) ); 212 addItemColor("Todo done Color",&mTodoDoneColor,QColor(111,255,115) );
213 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor); 213 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor);
214 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor); 214 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor);
215 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor); 215 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor);
216 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor); 216 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor);
217 addItemColor("Todo running Color",&mTodoRunColor,defaultTodoRunColor); 217 addItemColor("Todo running Color",&mTodoRunColor,defaultTodoRunColor);
218 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 )); 218 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 ));
219 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 )); 219 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 ));
220 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 )); 220 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 ));
221 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true); 221 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true);
222 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true); 222 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true);
223 addItemBool("MonthViewWeek",&mMonthViewWeek,false); 223 addItemBool("MonthViewWeek",&mMonthViewWeek,false);
224 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false); 224 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false);
225 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 )); 225 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 ));
226 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 )); 226 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 ));
227 addItemBool("UseAppColors",&mUseAppColors,false); 227 addItemBool("UseAppColors",&mUseAppColors,false);
228 228
229 229
230 230
231 KPrefs::setCurrentGroup("Views"); 231 KPrefs::setCurrentGroup("Views");
232 addItemBool("Block Popup Menu",&mBlockPopupMenu,true); 232 addItemBool("Block Popup Menu",&mBlockPopupMenu,true);
233 addItemBool("Show Date Navigator",&mShowDateNavigator,true); 233 addItemBool("Show Date Navigator",&mShowDateNavigator,true);
234 addItemInt("Hour Size",&mHourSize,8); 234 addItemInt("Hour Size",&mHourSize,8);
235 addItemBool("Show Daily Recurrences",&mDailyRecur,true); 235 addItemBool("Show Daily Recurrences",&mDailyRecur,true);
236 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true); 236 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true);
237 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true); 237 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true);
238 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true); 238 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true);
239 addItemBool("ShowShortMonthName",&mMonthShowShort,false); 239 addItemBool("ShowShortMonthName",&mMonthShowShort,false);
240 addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true); 240 addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true);
241 addItemBool("ShowTimesInMonthCell",&mMonthShowTimes,true); 241 addItemBool("ShowTimesInMonthCell",&mMonthShowTimes,true);
242#ifdef DESKTOP_VERION 242#ifdef DESKTOP_VERION
243 addItemBool("Enable ToolTips",&mEnableToolTips,true); 243 addItemBool("Enable ToolTips",&mEnableToolTips,true);
244#else 244#else
245 addItemBool("Enable ToolTips",&mEnableToolTips,false); 245 addItemBool("Enable ToolTips",&mEnableToolTips,false);
246#endif 246#endif
247 addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false); 247 addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false);
248 addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false); 248 addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false);
249 addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true); 249 addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true);
250 addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true); 250 addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true);
251 addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,true); 251 addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,true);
252 addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false); 252 addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false);
253 addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false); 253 addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false);
254 addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true); 254 addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true);
255 addItemBool("HighlightCurrentDay",&mHighlightCurrentDay,true); 255 addItemBool("HighlightCurrentDay",&mHighlightCurrentDay,true);
256 addItemBool("WNViewShowsParents",&mWNViewShowsParents,true);; 256 addItemBool("WNViewShowsParents",&mWNViewShowsParents,true);;
257 addItemBool("WNViewShowsPast",&mWNViewShowsPast,true); 257 addItemBool("WNViewShowsPast",&mWNViewShowsPast,true);
258 addItemBool("WNViewShowLocation",&mWNViewShowLocation,false); 258 addItemBool("WNViewShowLocation",&mWNViewShowLocation,false);
259 addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false); 259 addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false);
260 addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true); 260 addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true);
261 addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false); 261 addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false);
262 addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false); 262 addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false);
263 addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,true); 263 addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,true);
264 addItemBool("MonthViewUsesBigFont",&mMonthViewUsesBigFont,true); 264 addItemBool("MonthViewUsesBigFont",&mMonthViewUsesBigFont,true);
265 addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false); 265 addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false);
266 addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false); 266 addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false);
267#ifdef DESKTOP_VERSION 267#ifdef DESKTOP_VERSION
268 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true); 268 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true);
269#else 269#else
270 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false); 270 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false);
271#endif 271#endif
272 addItemInt("Day Begins",&mDayBegins,7); 272 addItemInt("Day Begins",&mDayBegins,7);
273 addItemInt("Working Hours Start",&mWorkingHoursStart,8); 273 addItemInt("Working Hours Start",&mWorkingHoursStart,8);
274 addItemInt("Working Hours End",&mWorkingHoursEnd,17); 274 addItemInt("Working Hours End",&mWorkingHoursEnd,17);
275 addItemBool("Exclude Holidays",&mExcludeHolidays,true); 275 addItemBool("Exclude Holidays",&mExcludeHolidays,true);
276 addItemBool("Exclude Saturdays",&mExcludeSaturdays,true); 276 addItemBool("Exclude Saturdays",&mExcludeSaturdays,true);
277 277
278 addItemBool("Month View Uses Category Color",&mMonthViewUsesCategoryColor,false); 278 addItemBool("Month View Uses Category Color",&mMonthViewUsesCategoryColor,false);
279 addItemBool("Full View Month",&mFullViewMonth,true); 279 addItemBool("Full View Month",&mFullViewMonth,true);
280 addItemBool("Full View Todo",&mFullViewTodo,true); 280 addItemBool("Full View Todo",&mFullViewTodo,true);
281 addItemBool("Quick Todo",&mEnableQuickTodo,false); 281 addItemBool("Quick Todo",&mEnableQuickTodo,false);
282 282
283 addItemInt("Next X Days",&mNextXDays,3); 283 addItemInt("Next X Days",&mNextXDays,3);
284 284
285 KPrefs::setCurrentGroup("Printer"); 285 KPrefs::setCurrentGroup("Printer");
286 286
287 KPrefs::setCurrentGroup("Layout"); 287 KPrefs::setCurrentGroup("Layout");
288 288
289 addItemBool("CompactDialogs",&mCompactDialogs,false); 289 addItemBool("CompactDialogs",&mCompactDialogs,false);
290 addItemBool("VerticalScreen",&mVerticalScreen,true); 290 addItemBool("VerticalScreen",&mVerticalScreen,true);
291 291
292 KPrefs::setCurrentGroup("KOrganizer Plugins"); 292 KPrefs::setCurrentGroup("KOrganizer Plugins");
293 293
294 addItemStringList("SelectedPlugins",&mSelectedPlugins,"holidays"); 294 addItemStringList("SelectedPlugins",&mSelectedPlugins,"holidays");
295 295
296 KPrefs::setCurrentGroup("Group Scheduling"); 296 KPrefs::setCurrentGroup("Group Scheduling");
297 297
298 addItemInt("IMIPScheduler",&mIMIPScheduler,IMIPKMail); 298 addItemInt("IMIPScheduler",&mIMIPScheduler,IMIPKMail);
299 addItemInt("IMIPSend",&mIMIPSend,IMIPdirectsend); 299 addItemInt("IMIPSend",&mIMIPSend,IMIPdirectsend);
300 addItemStringList("AdditionalMails",&mAdditionalMails,""); 300 addItemStringList("AdditionalMails",&mAdditionalMails,"");
301 addItemInt("IMIP auto refresh",&mIMIPAutoRefresh,neverAuto); 301 addItemInt("IMIP auto refresh",&mIMIPAutoRefresh,neverAuto);
302 addItemInt("IMIP auto insert request",&mIMIPAutoInsertRequest,neverAuto); 302 addItemInt("IMIP auto insert request",&mIMIPAutoInsertRequest,neverAuto);
303 addItemInt("IMIP auto insert reply",&mIMIPAutoInsertReply,neverAuto); 303 addItemInt("IMIP auto insert reply",&mIMIPAutoInsertReply,neverAuto);
304 addItemInt("IMIP auto FreeBusy",&mIMIPAutoFreeBusy,neverAuto); 304 addItemInt("IMIP auto FreeBusy",&mIMIPAutoFreeBusy,neverAuto);
305 addItemInt("IMIP auto save FreeBusy",&mIMIPAutoFreeBusyReply,neverAuto); 305 addItemInt("IMIP auto save FreeBusy",&mIMIPAutoFreeBusyReply,neverAuto);
306 306
307 KPrefs::setCurrentGroup( "Editors" ); 307 KPrefs::setCurrentGroup( "Editors" );
308 308
309 addItemStringList( "EventTemplates", &mEventTemplates ); 309 addItemStringList( "EventTemplates", &mEventTemplates );
310 addItemStringList( "TodoTemplates", &mTodoTemplates ); 310 addItemStringList( "TodoTemplates", &mTodoTemplates );
311 311
312 addItemInt("DestinationPolicy",&mDestination,standardDestination); 312 addItemInt("DestinationPolicy",&mDestination,standardDestination);
313 313
314 KPrefs::setCurrentGroup( "ViewOptions" ); 314 KPrefs::setCurrentGroup( "ViewOptions" );
315 addItemBool("EVshowDetails",&mEVshowDetails,true); 315 addItemBool("EVshowDetails",&mEVshowDetails,true);
316 addItemBool("EVshowCreated",&mEVshowCreated,true); 316 addItemBool("EVshowCreated",&mEVshowCreated,true);
317 addItemBool("EVshowChanged",&mEVshowChanged,true); 317 addItemBool("EVshowChanged",&mEVshowChanged,true);
318 addItemBool("WTshowDetails",&mWTshowDetails,false); 318 addItemBool("WTshowDetails",&mWTshowDetails,false);
319 addItemBool("WTshowCreated",&mWTshowCreated,false); 319 addItemBool("WTshowCreated",&mWTshowCreated,false);
320 addItemBool("WTshowChanged",&mWTshowChanged,false); 320 addItemBool("WTshowChanged",&mWTshowChanged,false);
321 mCalendars.setAutoDelete( true ); 321 mCalendars.setAutoDelete( true );
322} 322}
323 323
324 324
325KOPrefs::~KOPrefs() 325KOPrefs::~KOPrefs()
326{ 326{
327 if (mInstance == this) 327 if (mInstance == this)
328 mInstance = insd.setObject(0); 328 mInstance = insd.setObject(0);
329 mCalendars.setAutoDelete( true ); 329 mCalendars.setAutoDelete( true );
330 mCalendars.clear(); 330 mCalendars.clear();
331 //qDebug("KOPrefs::~KOPrefs() "); 331 //qDebug("KOPrefs::~KOPrefs() ");
332} 332}
333 333
334 334
335KOPrefs *KOPrefs::instance() 335KOPrefs *KOPrefs::instance()
336{ 336{
337 if (!mInstance) { 337 if (!mInstance) {
338 mInstance = insd.setObject(new KOPrefs()); 338 mInstance = insd.setObject(new KOPrefs());
339 mInstance->readConfig(); 339 mInstance->readConfig();
340 } 340 }
341 341
342 return mInstance; 342 return mInstance;
343} 343}
344 344
345void KOPrefs::usrSetDefaults() 345void KOPrefs::usrSetDefaults()
346{ 346{
347 347
348} 348}
349 349
350void KOPrefs::fillMailDefaults() 350void KOPrefs::fillMailDefaults()
351{ 351{
352 if (mName.isEmpty()) mName = i18n("Anonymous"); 352 if (mName.isEmpty()) mName = i18n("Anonymous");
353 if (mEmail.isEmpty()) mEmail = i18n("nobody@nowhere"); 353 if (mEmail.isEmpty()) mEmail = i18n("nobody@nowhere");
354} 354}
355 355
356void KOPrefs::setTimeZoneIdDefault() 356void KOPrefs::setTimeZoneIdDefault()
357{ 357{
358 ; 358 ;
359} 359}
360 360
361void KOPrefs::setAllDefaults() 361void KOPrefs::setAllDefaults()
362{ 362{
363 setCategoryDefaults(); 363 setCategoryDefaults();
364 mEventSummaryUser = getDefaultList() ; 364 mEventSummaryUser = getDefaultList() ;
365 mTodoSummaryUser = getDefaultList() ; 365 mTodoSummaryUser = getDefaultList() ;
366 mLocationDefaults = getLocationDefaultList(); 366 mLocationDefaults = getLocationDefaultList();
367} 367}
368 368
369void KOPrefs::setCategoryDefaults() 369void KOPrefs::setCategoryDefaults()
370{ 370{
371 mCustomCategories.clear(); 371 mCustomCategories.clear();
372 mCustomCategories = getDefaultList(); 372 mCustomCategories = getDefaultList();
373 373
374 QStringList::Iterator it; 374 QStringList::Iterator it;
375 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { 375 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) {
376 setCategoryColor(*it,mDefaultCategoryColor); 376 setCategoryColor(*it,mDefaultCategoryColor);
377 } 377 }
378} 378}
379QStringList KOPrefs::getLocationDefaultList() 379QStringList KOPrefs::getLocationDefaultList()
380{ 380{
381 QStringList retval ; 381 QStringList retval ;
382 retval << i18n("Home") << i18n("Office") << i18n("Library") << i18n("School") << i18n("Doctor") << i18n("Beach") 382 retval << i18n("Home") << i18n("Office") << i18n("Library") << i18n("School") << i18n("Doctor") << i18n("Beach")
383 << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room") 383 << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room")
384 << i18n("Cinema") << i18n("Lake") << i18n("Kindergarten") 384 << i18n("Cinema") << i18n("Lake") << i18n("Kindergarten")
385 << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ; 385 << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ;
386 // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") 386 // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("")
387 387
388 retval.sort(); 388 retval.sort();
389 return retval; 389 return retval;
390} 390}
391QStringList KOPrefs::getDefaultList() 391QStringList KOPrefs::getDefaultList()
392{ 392{
393 QStringList retval ; 393 QStringList retval ;
394 retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Business Travel") << i18n("Cinema") << i18n("Customer") 394 retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Business Travel") << i18n("Cinema") << i18n("Customer")
395 << i18n("Break")<< i18n("Breakfast")<< i18n("Competition")<< i18n("Dinner") 395 << i18n("Break")<< i18n("Breakfast")<< i18n("Competition")<< i18n("Dinner")
396 << i18n("Education")<< i18n("Family") << i18n("Favorites") << i18n("Festival")<< i18n("Fishing")<< i18n("Flight") << i18n("Gifts") 396 << i18n("Education")<< i18n("Family") << i18n("Favorites") << i18n("Festival")<< i18n("Fishing")<< i18n("Flight") << i18n("Gifts")
397 << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") << i18n("Hiking") << i18n("Hunting") << i18n("Key Customer") << i18n("Kids") 397 << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") << i18n("Hiking") << i18n("Hunting") << i18n("Key Customer") << i18n("Kids")
398 << i18n("Lunch") << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner")<< i18n("Party") << i18n("Personal") << i18n("Personal Travel") 398 << i18n("Lunch") << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner")<< i18n("Party") << i18n("Personal") << i18n("Personal Travel")
399 << i18n("PHB") << i18n("Phone Calls") << i18n("Projects") << i18n("Recurring") << i18n("School") << i18n("Shopping") 399 << i18n("PHB") << i18n("Phone Calls") << i18n("Projects") << i18n("Recurring") << i18n("School") << i18n("Shopping")
400 << i18n("Speach") << i18n("Special Occasion") << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV")<< i18n("University") 400 << i18n("Speach") << i18n("Special Occasion") << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV")<< i18n("University")
401 << i18n("Vacation") << i18n("VIP") << i18n("SyncEvent") ; 401 << i18n("Vacation") << i18n("VIP") << i18n("SyncEvent") ;
402 retval.sort(); 402 retval.sort();
403 //qDebug("cat %s ", retval.join("-").latin1()); 403 //qDebug("cat %s ", retval.join("-").latin1());
404 return retval; 404 return retval;
405} 405}
406 406
407void KOPrefs::usrReadConfig() 407void KOPrefs::usrReadConfig()
408{ 408{
409 config()->setGroup("General"); 409 config()->setGroup("General");
410 410
411 //qDebug("KOPrefs::usrReadConfig() "); 411 //qDebug("KOPrefs::usrReadConfig() ");
412 mCustomCategories = config()->readListEntry("Custom Categories"); 412 mCustomCategories = config()->readListEntry("Custom Categories");
413 mOldLoadedLanguage = mOldLanguage ; 413 mOldLoadedLanguage = mOldLanguage ;
414 mOldLanguage = KPimGlobalPrefs::instance()->mPreferredLanguage; 414 mOldLanguage = KPimGlobalPrefs::instance()->mPreferredLanguage;
415 if (mLocationDefaults.isEmpty()) { 415 if (mLocationDefaults.isEmpty()) {
416 mLocationDefaults = getLocationDefaultList(); 416 mLocationDefaults = getLocationDefaultList();
417 } 417 }
418 418
419 if (mEventSummaryUser.isEmpty()) { 419 if (mEventSummaryUser.isEmpty()) {
420 mEventSummaryUser = getDefaultList() ; 420 mEventSummaryUser = getDefaultList() ;
421 } 421 }
422 if (mTodoSummaryUser.isEmpty()) { 422 if (mTodoSummaryUser.isEmpty()) {
423 mTodoSummaryUser = getDefaultList() ; 423 mTodoSummaryUser = getDefaultList() ;
424 } 424 }
425 425
426 if (mCustomCategories.isEmpty()) setCategoryDefaults(); 426 if (mCustomCategories.isEmpty()) setCategoryDefaults();
427 427
428 config()->setGroup("Personal Settings"); 428 config()->setGroup("Personal Settings");
429 mName = config()->readEntry("user_name",""); 429 mName = config()->readEntry("user_name","");
430 mEmail = config()->readEntry("user_email",""); 430 mEmail = config()->readEntry("user_email","");
431 fillMailDefaults(); 431 fillMailDefaults();
432 432
433 config()->setGroup("Category Colors"); 433 config()->setGroup("Category Colors");
434 QStringList::Iterator it; 434 QStringList::Iterator it;
435 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { 435 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) {
436 setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); 436 setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor));
437 437
438 } 438 }
439 config()->setGroup("CCal"); 439 config()->setGroup("CCal");
440 int numCals = config()->readNumEntry("NumberCalendars",0 ); 440 int numCals = config()->readNumEntry("NumberCalendars",0 );
441 mNextAvailableCalendar = 1; 441 mNextAvailableCalendar = 1;
442 if ( numCals == 0 ) { 442 if ( numCals == 0 ) {
443 KopiCalendarFile *kkf = getNewCalendar(); 443 KopiCalendarFile *kkf = getNewCalendar();
444 kkf->isStandard = true; 444 kkf->isStandard = true;
445 kkf->mName = i18n("Standard"); 445 kkf->mName = i18n("Standard");
446 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); 446 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" );
447 } 447 }
448 while ( mNextAvailableCalendar <= numCals ) { 448 while ( mNextAvailableCalendar <= numCals ) {
449 qDebug("Read cal #%d ", mNextAvailableCalendar ); 449 //qDebug("Read cal #%d ", mNextAvailableCalendar );
450 QString prefix = "Cal_" +QString::number( mNextAvailableCalendar ); 450 QString prefix = "Cal_" +QString::number( mNextAvailableCalendar );
451 KopiCalendarFile *kkf = getNewCalendar(); 451 KopiCalendarFile *kkf = getNewCalendar();
452 kkf->isStandard = config()->readBoolEntry( prefix+"_isStandard", false ); 452 kkf->isStandard = config()->readBoolEntry( prefix+"_isStandard", false );
453 kkf->isEnabled = config()->readBoolEntry( prefix+"_isEnabled", true); 453 kkf->isEnabled = config()->readBoolEntry( prefix+"_isEnabled", true);
454 kkf->isAlarmEnabled = config()->readBoolEntry( prefix+"_isAlarmEnabled", true); 454 kkf->isAlarmEnabled = config()->readBoolEntry( prefix+"_isAlarmEnabled", true);
455 kkf->isReadOnly = config()->readBoolEntry( prefix+"_isReadOnly", false); 455 kkf->isReadOnly = config()->readBoolEntry( prefix+"_isReadOnly", false);
456 kkf->mName = config()->readEntry( prefix+"_Name", "Calendar"); 456 kkf->mName = config()->readEntry( prefix+"_Name", "Calendar");
457 kkf->mFileName = config()->readEntry( prefix+"_FileName", kkf->mFileName); 457 kkf->mFileName = config()->readEntry( prefix+"_FileName", kkf->mFileName);
458 kkf->mDefaultColor = config()->readColorEntry( prefix+"_Color",&mEventColor); 458 kkf->mDefaultColor = config()->readColorEntry( prefix+"_Color",&mEventColor);
459 if ( kkf->mCalNumber == 1 ) { 459 if ( kkf->mCalNumber == 1 ) {
460 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); 460 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" );
461 } 461 }
462 } 462 }
463 463
464 KPimPrefs::usrReadConfig(); 464 KPimPrefs::usrReadConfig();
465} 465}
466 466
467KopiCalendarFile * KOPrefs::getCalendar( int num ) 467KopiCalendarFile * KOPrefs::getCalendar( int num )
468{ 468{
469 return mDefCalColors[num-1]; 469 return mDefCalColors[num-1];
470} 470}
471 471
472KopiCalendarFile * KOPrefs::getNewCalendar() 472KopiCalendarFile * KOPrefs::getNewCalendar()
473{ 473{
474 KopiCalendarFile * kkf = new KopiCalendarFile(); 474 KopiCalendarFile * kkf = new KopiCalendarFile();
475 kkf->mCalNumber = mNextAvailableCalendar; 475 kkf->mCalNumber = mNextAvailableCalendar;
476 mDefCalColors.resize( mNextAvailableCalendar ); 476 mDefCalColors.resize( mNextAvailableCalendar );
477 mDefCalColors[mNextAvailableCalendar-1] = kkf; 477 mDefCalColors[mNextAvailableCalendar-1] = kkf;
478 ++mNextAvailableCalendar; 478 ++mNextAvailableCalendar;
479 kkf->mDefaultColor = mEventColor; 479 kkf->mDefaultColor = mEventColor;
480 kkf->mName = i18n("New Calendar"); 480 kkf->mName = i18n("New Calendar");
481 mCalendars.append( kkf ); 481 mCalendars.append( kkf );
482 return kkf; 482 return kkf;
483} 483}
484void KOPrefs::deleteCalendar( int num ) 484void KOPrefs::deleteCalendar( int num )
485{ 485{
486 KopiCalendarFile * kkf = mCalendars.first(); 486 KopiCalendarFile * kkf = mCalendars.first();
487 while ( kkf ) { 487 while ( kkf ) {
488 if ( kkf->mCalNumber == num ) { 488 if ( kkf->mCalNumber == num ) {
489 qDebug("KOPrefs::deleteCalendar %d ", num ); 489 qDebug("KOPrefs::deleteCalendar %d ", num );
490 mCalendars.remove( kkf ); 490 mCalendars.remove( kkf );
491 delete kkf; 491 delete kkf;
492 return; 492 return;
493 } 493 }
494 kkf = mCalendars.next(); 494 kkf = mCalendars.next();
495 } 495 }
496} 496}
497QColor KOPrefs::defaultColor( int calNum ) const 497QColor KOPrefs::defaultColor( int calNum ) const
498{ 498{
499 return (mDefCalColors[calNum-1])->mDefaultColor; 499 return (mDefCalColors[calNum-1])->mDefaultColor;
500} 500}
501void KOPrefs::usrWriteConfig() 501void KOPrefs::usrWriteConfig()
502{ 502{
503 config()->setGroup("General"); 503 config()->setGroup("General");
504 config()->writeEntry("Custom Categories",mCustomCategories); 504 config()->writeEntry("Custom Categories",mCustomCategories);
505 505
506 config()->setGroup("Personal Settings"); 506 config()->setGroup("Personal Settings");
507 config()->writeEntry("user_name",mName); 507 config()->writeEntry("user_name",mName);
508 config()->writeEntry("user_email",mEmail); 508 config()->writeEntry("user_email",mEmail);
509 509
510 config()->setGroup("Category Colors"); 510 config()->setGroup("Category Colors");
511 QDictIterator<QColor> it(mCategoryColors); 511 QDictIterator<QColor> it(mCategoryColors);
512 while (it.current()) { 512 while (it.current()) {
513 config()->writeEntry(it.currentKey(),*(it.current())); 513 config()->writeEntry(it.currentKey(),*(it.current()));
514 ++it; 514 ++it;
515 } 515 }
516 config()->setGroup("CCal"); 516 config()->setGroup("CCal");
517 config()->writeEntry("NumberCalendars",mCalendars.count()); 517 config()->writeEntry("NumberCalendars",mCalendars.count());
518 int numCal = 1; 518 int numCal = 1;
519 int writeCal = 0; 519 int writeCal = 0;
520 while ( numCal < mNextAvailableCalendar ) { 520 while ( numCal < mNextAvailableCalendar ) {
521 KopiCalendarFile * kkf = mCalendars.first(); 521 KopiCalendarFile * kkf = mCalendars.first();
522 while ( kkf ) { 522 while ( kkf ) {
523 qDebug("cal num %d %d ", kkf->mCalNumber, numCal); 523 //qDebug("cal num %d %d ", kkf->mCalNumber, numCal);
524 if ( kkf->mCalNumber == numCal ) { 524 if ( kkf->mCalNumber == numCal ) {
525 ++writeCal; 525 ++writeCal;
526 qDebug("Write calendar %d %d ", numCal , writeCal); 526 //qDebug("Write calendar %d %d ", numCal , writeCal);
527 QString prefix = "Cal_" + QString::number( writeCal ); 527 QString prefix = "Cal_" + QString::number( writeCal );
528 config()->writeEntry( prefix+"_isStandard", kkf->isStandard ); 528 config()->writeEntry( prefix+"_isStandard", kkf->isStandard );
529 config()->writeEntry( prefix+"_isEnabled", kkf->isEnabled ); 529 config()->writeEntry( prefix+"_isEnabled", kkf->isEnabled );
530 config()->writeEntry( prefix+"_isAlarmEnabled", kkf->isAlarmEnabled ); 530 config()->writeEntry( prefix+"_isAlarmEnabled", kkf->isAlarmEnabled );
531 config()->writeEntry( prefix+"_isReadOnly", kkf->isReadOnly ); 531 config()->writeEntry( prefix+"_isReadOnly", kkf->isReadOnly );
532 config()->writeEntry( prefix+"_Name", kkf->mName); 532 config()->writeEntry( prefix+"_Name", kkf->mName);
533 config()->writeEntry( prefix+"_FileName", kkf->mFileName); 533 config()->writeEntry( prefix+"_FileName", kkf->mFileName);
534 config()->writeEntry( prefix+"_Color",kkf->mDefaultColor); 534 config()->writeEntry( prefix+"_Color",kkf->mDefaultColor);
535 } 535 }
536 kkf = mCalendars.next(); 536 kkf = mCalendars.next();
537 } 537 }
538 ++numCal; 538 ++numCal;
539 } 539 }
540 KPimPrefs::usrWriteConfig(); 540 KPimPrefs::usrWriteConfig();
541} 541}
542 542
543void KOPrefs::setCategoryColor(QString cat,const QColor & color) 543void KOPrefs::setCategoryColor(QString cat,const QColor & color)
544{ 544{
545 mCategoryColors.replace(cat,new QColor(color)); 545 mCategoryColors.replace(cat,new QColor(color));
546} 546}
547 547
548QColor *KOPrefs::categoryColor(QString cat) 548QColor *KOPrefs::categoryColor(QString cat)
549{ 549{
550 QColor *color = 0; 550 QColor *color = 0;
551 551
552 if (!cat.isEmpty()) color = mCategoryColors[cat]; 552 if (!cat.isEmpty()) color = mCategoryColors[cat];
553 553
554 if (color) return color; 554 if (color) return color;
555 else return &mDefaultCategoryColor; 555 else return &mDefaultCategoryColor;
556} 556}
557 557
558void KOPrefs::setFullName(const QString &name) 558void KOPrefs::setFullName(const QString &name)
559{ 559{
560 mName = name; 560 mName = name;
561} 561}
562 562
563void KOPrefs::setEmail(const QString &email) 563void KOPrefs::setEmail(const QString &email)
564{ 564{
565 //qDebug(" KOPrefs::setEmai*********** %s",email.latin1() ); 565 //qDebug(" KOPrefs::setEmai*********** %s",email.latin1() );
566 mEmail = email; 566 mEmail = email;
567} 567}
568 568
569QString KOPrefs::fullName() 569QString KOPrefs::fullName()
570{ 570{
571 if (mEmailControlCenter) { 571 if (mEmailControlCenter) {
572 KEMailSettings settings; 572 KEMailSettings settings;
573 return settings.getSetting(KEMailSettings::RealName); 573 return settings.getSetting(KEMailSettings::RealName);
574 } else { 574 } else {
575 return mName; 575 return mName;
576 } 576 }
577} 577}
578 578
579QString KOPrefs::email() 579QString KOPrefs::email()
580{ 580{
581 if (mEmailControlCenter) { 581 if (mEmailControlCenter) {
582 KEMailSettings settings; 582 KEMailSettings settings;
583 return settings.getSetting(KEMailSettings::EmailAddress); 583 return settings.getSetting(KEMailSettings::EmailAddress);
584 } else { 584 } else {
585 return mEmail; 585 return mEmail;
586 } 586 }
587} 587}
588KConfig* KOPrefs::getConfig() 588KConfig* KOPrefs::getConfig()
589{ 589{
590 return config(); 590 return config();
591} 591}
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 0cb0bce..95e1607 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,2517 +1,2518 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkdepim/phoneaccess.h> 42#include <libkdepim/phoneaccess.h>
43#include <libkcal/kincidenceformatter.h> 43#include <libkcal/kincidenceformatter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "calendarview.h" 46#include "calendarview.h"
47#include "koviewmanager.h" 47#include "koviewmanager.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49#include "koagendaview.h" 49#include "koagendaview.h"
50#include "koagenda.h" 50#include "koagenda.h"
51#include "kodialogmanager.h" 51#include "kodialogmanager.h"
52#include "kdialogbase.h" 52#include "kdialogbase.h"
53#include "kapplication.h" 53#include "kapplication.h"
54#include "kofilterview.h" 54#include "kofilterview.h"
55#include "kstandarddirs.h" 55#include "kstandarddirs.h"
56#include "koprefs.h" 56#include "koprefs.h"
57#include "kfiledialog.h" 57#include "kfiledialog.h"
58#include "koglobals.h" 58#include "koglobals.h"
59#include "kglobal.h" 59#include "kglobal.h"
60#include "ktoolbar.h" 60#include "ktoolbar.h"
61#include "klocale.h" 61#include "klocale.h"
62#include "kconfig.h" 62#include "kconfig.h"
63#include "externalapphandler.h" 63#include "externalapphandler.h"
64#include <kglobalsettings.h> 64#include <kglobalsettings.h>
65 65
66using namespace KCal; 66using namespace KCal;
67#ifndef _WIN32_ 67#ifndef _WIN32_
68#include <unistd.h> 68#include <unistd.h>
69#else 69#else
70#ifdef _OL_IMPORT_ 70#ifdef _OL_IMPORT_
71#include "koimportoldialog.h" 71#include "koimportoldialog.h"
72#endif 72#endif
73#endif 73#endif
74#include "mainwindow.h" 74#include "mainwindow.h"
75 75
76 76
77class KOex2phonePrefs : public QDialog 77class KOex2phonePrefs : public QDialog
78{ 78{
79 public: 79 public:
80 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 80 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
81 QDialog( parent, name, true ) 81 QDialog( parent, name, true )
82 { 82 {
83 setCaption( i18n("Export to phone options") ); 83 setCaption( i18n("Export to phone options") );
84 QVBoxLayout* lay = new QVBoxLayout( this ); 84 QVBoxLayout* lay = new QVBoxLayout( this );
85 lay->setSpacing( 3 ); 85 lay->setSpacing( 3 );
86 lay->setMargin( 3 ); 86 lay->setMargin( 3 );
87 QLabel *lab; 87 QLabel *lab;
88 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 88 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
89 lab->setAlignment (AlignHCenter ); 89 lab->setAlignment (AlignHCenter );
90 QHBox* temphb; 90 QHBox* temphb;
91 temphb = new QHBox( this ); 91 temphb = new QHBox( this );
92 new QLabel( i18n("I/O device: "), temphb ); 92 new QLabel( i18n("I/O device: "), temphb );
93 mPhoneDevice = new QLineEdit( temphb); 93 mPhoneDevice = new QLineEdit( temphb);
94 lay->addWidget( temphb ); 94 lay->addWidget( temphb );
95 temphb = new QHBox( this ); 95 temphb = new QHBox( this );
96 new QLabel( i18n("Connection: "), temphb ); 96 new QLabel( i18n("Connection: "), temphb );
97 mPhoneConnection = new QLineEdit( temphb); 97 mPhoneConnection = new QLineEdit( temphb);
98 lay->addWidget( temphb ); 98 lay->addWidget( temphb );
99 temphb = new QHBox( this ); 99 temphb = new QHBox( this );
100 new QLabel( i18n("Model(opt.): "), temphb ); 100 new QLabel( i18n("Model(opt.): "), temphb );
101 mPhoneModel = new QLineEdit( temphb); 101 mPhoneModel = new QLineEdit( temphb);
102 lay->addWidget( temphb ); 102 lay->addWidget( temphb );
103 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 103 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
104 mWriteBackFuture->setChecked( true ); 104 mWriteBackFuture->setChecked( true );
105 lay->addWidget( mWriteBackFuture ); 105 lay->addWidget( mWriteBackFuture );
106 temphb = new QHBox( this ); 106 temphb = new QHBox( this );
107 new QLabel( i18n("Max. weeks in future: ") , temphb ); 107 new QLabel( i18n("Max. weeks in future: ") , temphb );
108 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 108 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
109 mWriteBackFutureWeeks->setValue( 8 ); 109 mWriteBackFutureWeeks->setValue( 8 );
110 lay->addWidget( temphb ); 110 lay->addWidget( temphb );
111 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 111 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
112 lab->setAlignment (AlignHCenter ); 112 lab->setAlignment (AlignHCenter );
113 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 113 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
114 lay->addWidget( ok ); 114 lay->addWidget( ok );
115 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 115 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
116 lay->addWidget( cancel ); 116 lay->addWidget( cancel );
117 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 117 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
118 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 118 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
119 resize( 220, 240 ); 119 resize( 220, 240 );
120 qApp->processEvents(); 120 qApp->processEvents();
121 int dw = QApplication::desktop()->width(); 121 int dw = QApplication::desktop()->width();
122 int dh = QApplication::desktop()->height(); 122 int dh = QApplication::desktop()->height();
123 move( (dw-width())/2, (dh - height() )/2 ); 123 move( (dw-width())/2, (dh - height() )/2 );
124 } 124 }
125 125
126public: 126public:
127 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 127 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
128 QCheckBox* mWriteBackFuture; 128 QCheckBox* mWriteBackFuture;
129 QSpinBox* mWriteBackFutureWeeks; 129 QSpinBox* mWriteBackFutureWeeks;
130}; 130};
131 131
132int globalFlagBlockStartup; 132int globalFlagBlockStartup;
133MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 133MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
134 QMainWindow( parent, name ) 134 QMainWindow( parent, name )
135{ 135{
136 136
137 mClosed = false; 137 mClosed = false;
138 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 138 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
139 QString confFile = locateLocal("config","korganizerrc"); 139 QString confFile = locateLocal("config","korganizerrc");
140 QFileInfo finf ( confFile ); 140 QFileInfo finf ( confFile );
141 bool showWarning = !finf.exists(); 141 bool showWarning = !finf.exists();
142 setIcon(SmallIcon( "ko24" ) ); 142 setIcon(SmallIcon( "ko24" ) );
143 mBlockAtStartup = true; 143 mBlockAtStartup = true;
144 mFlagKeyPressed = false; 144 mFlagKeyPressed = false;
145 setCaption("KO/Pi"); 145 setCaption("KO/Pi");
146 KOPrefs *p = KOPrefs::instance(); 146 KOPrefs *p = KOPrefs::instance();
147 KPimGlobalPrefs::instance()->setGlobalConfig(); 147 KPimGlobalPrefs::instance()->setGlobalConfig();
148 p->mCurrentDisplayedView = 0; 148 p->mCurrentDisplayedView = 0;
149 if ( p->mHourSize > 22 ) 149 if ( p->mHourSize > 22 )
150 p->mHourSize = 22; 150 p->mHourSize = 22;
151 QMainWindow::ToolBarDock tbd; 151 QMainWindow::ToolBarDock tbd;
152 if ( p->mToolBarHor ) { 152 if ( p->mToolBarHor ) {
153 if ( p->mToolBarUp ) 153 if ( p->mToolBarUp )
154 tbd = Bottom; 154 tbd = Bottom;
155 else 155 else
156 tbd = Top; 156 tbd = Top;
157 } 157 }
158 else { 158 else {
159 if ( p->mToolBarUp ) 159 if ( p->mToolBarUp )
160 tbd = Right; 160 tbd = Right;
161 else 161 else
162 tbd = Left; 162 tbd = Left;
163 } 163 }
164 if ( KOPrefs::instance()->mUseAppColors ) 164 if ( KOPrefs::instance()->mUseAppColors )
165 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 165 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
166 globalFlagBlockStartup = 1; 166 globalFlagBlockStartup = 1;
167 iconToolBar = new QPEToolBar( this ); 167 iconToolBar = new QPEToolBar( this );
168 addToolBar (iconToolBar , tbd ); 168 addToolBar (iconToolBar , tbd );
169 169
170#ifdef DESKTOP_VERSION 170#ifdef DESKTOP_VERSION
171 if ( KOPrefs::instance()->mShowIconFilter ) 171 if ( KOPrefs::instance()->mShowIconFilter )
172#else 172#else
173 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar ) 173 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar )
174#endif 174#endif
175 175
176{ 176{
177 if ( p->mToolBarHorF ) { 177 if ( p->mToolBarHorF ) {
178 if ( p->mToolBarUpF ) 178 if ( p->mToolBarUpF )
179 tbd = Bottom; 179 tbd = Bottom;
180 else 180 else
181 tbd = Top; 181 tbd = Top;
182 } 182 }
183 else { 183 else {
184 if ( p->mToolBarUpF ) 184 if ( p->mToolBarUpF )
185 tbd = Right; 185 tbd = Right;
186 else 186 else
187 tbd = Left; 187 tbd = Left;
188 } 188 }
189 filterToolBar = new QPEToolBar ( this ); 189 filterToolBar = new QPEToolBar ( this );
190 filterMenubar = new QMenuBar( 0 ); 190 filterMenubar = new QMenuBar( 0 );
191 QFontMetrics fm ( filterMenubar->font() ); 191 QFontMetrics fm ( filterMenubar->font() );
192 192
193 filterPopupMenu = new QPopupMenu( this ); 193 filterPopupMenu = new QPopupMenu( this );
194 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); 194 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 );
195 QString addTest = "A"; 195 QString addTest = "A";
196 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) ); 196 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) );
197#ifdef DESKTOP_VERSION 197#ifdef DESKTOP_VERSION
198 addTest = "AAABBBCCCx"; 198 addTest = "AAABBBCCCx";
199#else 199#else
200 addTest = "AAx"; 200 addTest = "AAx";
201#endif 201#endif
202 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) ); 202 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) );
203 addToolBar (filterToolBar , tbd ); 203 addToolBar (filterToolBar , tbd );
204 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); 204 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) );
205 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); 205 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) );
206 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) 206 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar )
207 filterToolBar->hide(); 207 filterToolBar->hide();
208 } else { 208 } else {
209 filterToolBar = 0; 209 filterToolBar = 0;
210 filterMenubar = 0; 210 filterMenubar = 0;
211 filterPopupMenu = 0; 211 filterPopupMenu = 0;
212 } 212 }
213 if ( p->mShowIconOnetoolbar ) { 213 if ( p->mShowIconOnetoolbar ) {
214 viewToolBar = iconToolBar ; 214 viewToolBar = iconToolBar ;
215 navigatorToolBar = iconToolBar ; 215 navigatorToolBar = iconToolBar ;
216 } else { 216 } else {
217#ifndef DESKTOP_VERSION 217#ifndef DESKTOP_VERSION
218 setToolBarsMovable( false ); 218 setToolBarsMovable( false );
219#endif 219#endif
220 if ( p->mToolBarHorV ) { 220 if ( p->mToolBarHorV ) {
221 if ( p->mToolBarUpV ) 221 if ( p->mToolBarUpV )
222 tbd = Bottom; 222 tbd = Bottom;
223 else 223 else
224 tbd = Top; 224 tbd = Top;
225 } 225 }
226 else { 226 else {
227 if ( p->mToolBarUpV ) 227 if ( p->mToolBarUpV )
228 tbd = Right; 228 tbd = Right;
229 else 229 else
230 tbd = Left; 230 tbd = Left;
231 } 231 }
232 viewToolBar = new QPEToolBar( this ); 232 viewToolBar = new QPEToolBar( this );
233 addToolBar (viewToolBar , tbd ); 233 addToolBar (viewToolBar , tbd );
234 if ( p->mToolBarHorN ) { 234 if ( p->mToolBarHorN ) {
235 if ( p->mToolBarUpN ) 235 if ( p->mToolBarUpN )
236 tbd = Bottom; 236 tbd = Bottom;
237 else 237 else
238 tbd = Top; 238 tbd = Top;
239 } 239 }
240 else { 240 else {
241 if ( p->mToolBarUpN ) 241 if ( p->mToolBarUpN )
242 tbd = Right; 242 tbd = Right;
243 else 243 else
244 tbd = Left; 244 tbd = Left;
245 } 245 }
246 navigatorToolBar = new QPEToolBar( this ); 246 navigatorToolBar = new QPEToolBar( this );
247 addToolBar (navigatorToolBar , tbd ); 247 addToolBar (navigatorToolBar , tbd );
248 } 248 }
249 249
250 250
251 251
252 mCalendarModifiedFlag = false; 252 mCalendarModifiedFlag = false;
253 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 253 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
254 splash->setAlignment ( AlignCenter ); 254 splash->setAlignment ( AlignCenter );
255 setCentralWidget( splash ); 255 setCentralWidget( splash );
256#ifndef DESKTOP_VERSION 256#ifndef DESKTOP_VERSION
257 showMaximized(); 257 showMaximized();
258#endif 258#endif
259 259
260 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 260 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
261 setDefaultPreferences(); 261 setDefaultPreferences();
262 mCalendar = new CalendarLocal(); 262 mCalendar = new CalendarLocal();
263 mView = new CalendarView( mCalendar, this,"mCalendar " ); 263 mView = new CalendarView( mCalendar, this,"mCalendar " );
264 mView->hide(); 264 mView->hide();
265 //mView->resize(splash->size() ); 265 //mView->resize(splash->size() );
266 initActions(); 266 initActions();
267 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 267 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
268 mSyncManager->setBlockSave(false); 268 mSyncManager->setBlockSave(false);
269 mView->setSyncManager(mSyncManager); 269 mView->setSyncManager(mSyncManager);
270#ifndef DESKTOP_VERSION 270#ifndef DESKTOP_VERSION
271 iconToolBar->show(); 271 iconToolBar->show();
272 qApp->processEvents(); 272 qApp->processEvents();
273#endif 273#endif
274 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 274 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
275 int vh = height() ; 275 int vh = height() ;
276 int vw = width(); 276 int vw = width();
277 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 277 //qDebug("Toolbar hei %d ",iconToolBar->height() );
278 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 278 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
279 vh -= iconToolBar->height(); 279 vh -= iconToolBar->height();
280 } else { 280 } else {
281 vw -= iconToolBar->height(); 281 vw -= iconToolBar->height();
282 } 282 }
283 //mView->setMaximumSize( splash->size() ); 283 //mView->setMaximumSize( splash->size() );
284 //mView->resize( splash->size() ); 284 //mView->resize( splash->size() );
285 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 285 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
286 mView->readSettings(); 286 mView->readSettings();
287 bool newFile = false; 287 bool newFile = false;
288 if( !QFile::exists( defaultFileName() ) ) { 288 if( !QFile::exists( defaultFileName() ) ) {
289 QFileInfo finfo ( defaultFileName() ); 289 QFileInfo finfo ( defaultFileName() );
290 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 290 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
291 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; 291 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n";
292 finfo.setFile( oldFile ); 292 finfo.setFile( oldFile );
293 if (finfo.exists() ) { 293 if (finfo.exists() ) {
294 KMessageBox::information( this, message); 294 KMessageBox::information( this, message);
295 mView->openCalendar( oldFile ); 295 mView->openCalendar( oldFile );
296 qApp->processEvents(); 296 qApp->processEvents();
297 } else { 297 } else {
298 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 298 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
299 finfo.setFile( oldFile ); 299 finfo.setFile( oldFile );
300 if (finfo.exists() ) { 300 if (finfo.exists() ) {
301 KMessageBox::information( this, message); 301 KMessageBox::information( this, message);
302 mView->openCalendar( oldFile ); 302 mView->openCalendar( oldFile );
303 qApp->processEvents(); 303 qApp->processEvents();
304 } 304 }
305 } 305 }
306 mView->saveCalendar( defaultFileName() ); 306 mView->saveCalendar( defaultFileName() );
307 newFile = true; 307 newFile = true;
308 } 308 }
309 309
310 QTime neededSaveTime = QDateTime::currentDateTime().time(); 310 QTime neededSaveTime = QDateTime::currentDateTime().time();
311 mView->openCalendar( defaultFileName() ); 311 mView->openCalendar( defaultFileName() );
312 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 312 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
313 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 313 qDebug("KO: Calendar loading time: %d ms",msNeeded );
314 314
315 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { 315 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) {
316 KOPrefs::instance()->setAllDefaults(); 316 KOPrefs::instance()->setAllDefaults();
317 int count = mView->addCategories(); 317 int count = mView->addCategories();
318 } 318 }
319 processIncidenceSelection( 0 ); 319 processIncidenceSelection( 0 );
320 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 320 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
321 SLOT( processIncidenceSelection( Incidence * ) ) ); 321 SLOT( processIncidenceSelection( Incidence * ) ) );
322 connect( mView, SIGNAL( modifiedChanged( bool ) ), 322 connect( mView, SIGNAL( modifiedChanged( bool ) ),
323 SLOT( slotModifiedChanged( bool ) ) ); 323 SLOT( slotModifiedChanged( bool ) ) );
324 324
325 325
326 connect( mView, SIGNAL( tempDisableBR(bool) ), 326 connect( mView, SIGNAL( tempDisableBR(bool) ),
327 SLOT( disableBR(bool) ) ); 327 SLOT( disableBR(bool) ) );
328 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 328 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
329 mView->setModified( false ); 329 mView->setModified( false );
330 mBlockAtStartup = false; 330 mBlockAtStartup = false;
331 mView->setModified( false ); 331 mView->setModified( false );
332 setCentralWidget( mView ); 332 setCentralWidget( mView );
333 globalFlagBlockStartup = 0; 333 globalFlagBlockStartup = 0;
334 mView->show(); 334 mView->show();
335 delete splash; 335 delete splash;
336 if ( newFile ) 336 if ( newFile )
337 mView->updateConfig(); 337 mView->updateConfig();
338 // qApp->processEvents(); 338 // qApp->processEvents();
339 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 339 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
340 //fillSyncMenu(); 340 //fillSyncMenu();
341 341
342 342
343 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 343 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
344 connect(mView , SIGNAL( save() ), this, SLOT( save() ) ); 344 connect(mView , SIGNAL( save() ), this, SLOT( save() ) );
345 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); 345 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) );
346 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 346 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
347 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 347 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
348 mSyncManager->setDefaultFileName( sentSyncFile()); 348 mSyncManager->setDefaultFileName( sentSyncFile());
349 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 349 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
350 mSyncManager->fillSyncMenu(); 350 mSyncManager->fillSyncMenu();
351 351
352 352
353 353
354 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 354 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
355 if ( showWarning ) { 355 if ( showWarning ) {
356 KMessageBox::information( this, 356 KMessageBox::information( this,
357 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 357 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
358 qApp->processEvents(); 358 qApp->processEvents();
359 mView->dialogManager()->showSyncOptions(); 359 mView->dialogManager()->showSyncOptions();
360 } 360 }
361 361
362 //US listen for result adressed from Ka/Pi 362 //US listen for result adressed from Ka/Pi
363#ifndef DESKTOP_VERSION 363#ifndef DESKTOP_VERSION
364 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 364 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
365#endif 365#endif
366#ifndef DESKTOP_VERSION 366#ifndef DESKTOP_VERSION
367 infrared = 0; 367 infrared = 0;
368#endif 368#endif
369 updateFilterToolbar(); 369 updateFilterToolbar();
370 updateWeek( mView->startDate() ); 370 updateWeek( mView->startDate() );
371 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ), 371 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
372 SLOT( updateWeekNum( const KCal::DateList & ) ) ); 372 SLOT( updateWeekNum( const KCal::DateList & ) ) );
373 mBRdisabled = false; 373 mBRdisabled = false;
374 //toggleBeamReceive(); 374 //toggleBeamReceive();
375 int tiint= 3000; 375 int tiint= 3000;
376#ifndef DESKTOP_VERSION 376#ifndef DESKTOP_VERSION
377 tiint = 5000; 377 tiint = 5000;
378#endif 378#endif
379 QTimer::singleShot( tiint, mView, SLOT ( checkAlarms() )); 379 QTimer::singleShot( tiint, mView, SLOT ( checkAlarms() ));
380} 380}
381MainWindow::~MainWindow() 381MainWindow::~MainWindow()
382{ 382{
383 //qDebug("MainWindow::~MainWindow() "); 383 //qDebug("MainWindow::~MainWindow() ");
384 //save toolbar location 384 //save toolbar location
385 delete mCalendar; 385 delete mCalendar;
386 delete mSyncManager; 386 delete mSyncManager;
387#ifndef DESKTOP_VERSION 387#ifndef DESKTOP_VERSION
388 if ( infrared ) 388 if ( infrared )
389 delete infrared; 389 delete infrared;
390#endif 390#endif
391 391
392 392
393} 393}
394 394
395void MainWindow::disableBR(bool b) 395void MainWindow::disableBR(bool b)
396{ 396{
397#ifndef DESKTOP_VERSION 397#ifndef DESKTOP_VERSION
398 if ( b ) { 398 if ( b ) {
399 if ( infrared ) { 399 if ( infrared ) {
400 toggleBeamReceive(); 400 toggleBeamReceive();
401 mBRdisabled = true; 401 mBRdisabled = true;
402 } 402 }
403 mBRdisabled = true; 403 mBRdisabled = true;
404 } else { 404 } else {
405 if ( mBRdisabled ) { 405 if ( mBRdisabled ) {
406 mBRdisabled = false; 406 mBRdisabled = false;
407 //makes no sense,because other cal ap is probably running 407 //makes no sense,because other cal ap is probably running
408 // toggleBeamReceive(); 408 // toggleBeamReceive();
409 } 409 }
410 } 410 }
411#endif 411#endif
412 412
413} 413}
414bool MainWindow::beamReceiveEnabled() 414bool MainWindow::beamReceiveEnabled()
415{ 415{
416#ifndef DESKTOP_VERSION 416#ifndef DESKTOP_VERSION
417 return ( infrared != 0 ); 417 return ( infrared != 0 );
418#endif 418#endif
419 return false; 419 return false;
420} 420}
421 421
422void MainWindow::toggleBeamReceive() 422void MainWindow::toggleBeamReceive()
423{ 423{
424 if ( mBRdisabled ) 424 if ( mBRdisabled )
425 return; 425 return;
426#ifndef DESKTOP_VERSION 426#ifndef DESKTOP_VERSION
427 if ( infrared ) { 427 if ( infrared ) {
428 qDebug("KO: Disable BeamReceive "); 428 qDebug("KO: Disable BeamReceive ");
429 delete infrared; 429 delete infrared;
430 infrared = 0; 430 infrared = 0;
431 brAction->setOn(false); 431 brAction->setOn(false);
432 return; 432 return;
433 } 433 }
434 qDebug("KO: Enable BeamReceive "); 434 qDebug("KO: Enable BeamReceive ");
435 brAction->setOn(true); 435 brAction->setOn(true);
436 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 436 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
437 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 437 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
438#endif 438#endif
439} 439}
440void MainWindow::showMaximized () 440void MainWindow::showMaximized ()
441{ 441{
442#ifndef DESKTOP_VERSION 442#ifndef DESKTOP_VERSION
443 if ( ! globalFlagBlockStartup ) 443 if ( ! globalFlagBlockStartup )
444 if ( mClosed ) 444 if ( mClosed )
445 mView->goToday(); 445 mView->goToday();
446#endif 446#endif
447 QWidget::showMaximized () ; 447 QWidget::showMaximized () ;
448 mClosed = false; 448 mClosed = false;
449} 449}
450void MainWindow::closeEvent( QCloseEvent* ce ) 450void MainWindow::closeEvent( QCloseEvent* ce )
451{ 451{
452 452
453 453
454 454
455 if ( ! KOPrefs::instance()->mAskForQuit ) { 455 if ( ! KOPrefs::instance()->mAskForQuit ) {
456 saveOnClose(); 456 saveOnClose();
457 mClosed = true; 457 mClosed = true;
458 ce->accept(); 458 ce->accept();
459 return; 459 return;
460 460
461 } 461 }
462 462
463 switch( QMessageBox::information( this, "KO/Pi", 463 switch( QMessageBox::information( this, "KO/Pi",
464 i18n("Do you really want\nto close KO/Pi?"), 464 i18n("Do you really want\nto close KO/Pi?"),
465 i18n("Close"), i18n("No"), 465 i18n("Close"), i18n("No"),
466 0, 0 ) ) { 466 0, 0 ) ) {
467 case 0: 467 case 0:
468 saveOnClose(); 468 saveOnClose();
469 mClosed = true; 469 mClosed = true;
470 ce->accept(); 470 ce->accept();
471 break; 471 break;
472 case 1: 472 case 1:
473 ce->ignore(); 473 ce->ignore();
474 break; 474 break;
475 case 2: 475 case 2:
476 476
477 default: 477 default:
478 break; 478 break;
479 } 479 }
480 480
481 481
482} 482}
483 483
484void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 484void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
485{ 485{
486 QDataStream stream( data, IO_ReadOnly ); 486 QDataStream stream( data, IO_ReadOnly );
487 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 487 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
488 //QString datamess; 488 //QString datamess;
489 //qDebug("message "); 489 //qDebug("message ");
490 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 490 qDebug("KO: QCOP message received: %s ", cmsg.data() );
491 491
492 if ( cmsg == "setDocument(QString)" ) { 492 if ( cmsg == "setDocument(QString)" ) {
493 QDataStream stream( data, IO_ReadOnly ); 493 QDataStream stream( data, IO_ReadOnly );
494 QString fileName; 494 QString fileName;
495 stream >> fileName; 495 stream >> fileName;
496 //qDebug("filename %s ", fileName.latin1()); 496 //qDebug("filename %s ", fileName.latin1());
497 showMaximized(); 497 showMaximized();
498 raise(); 498 raise();
499 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 499 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
500 mSyncManager->slotSyncMenu( 1002 ); 500 mSyncManager->slotSyncMenu( 1002 );
501 return; 501 return;
502 } 502 }
503 503
504 if ( cmsg == "-writeFile" ) { 504 if ( cmsg == "-writeFile" ) {
505 // I made from the "-writeFile" an "-writeAlarm" 505 // I made from the "-writeFile" an "-writeAlarm"
506 mView->viewManager()->showWhatsNextView(); 506 mView->viewManager()->showWhatsNextView();
507 mCalendar->checkAlarmForIncidence( 0, true); 507 mCalendar->checkAlarmForIncidence( 0, true);
508 showMaximized(); 508 showMaximized();
509 raise(); 509 raise();
510 return; 510 return;
511 511
512 } 512 }
513 if ( cmsg == "-writeFileSilent" ) { 513 if ( cmsg == "-writeFileSilent" ) {
514 // I made from the "-writeFile" an "-writeAlarm" 514 // I made from the "-writeFile" an "-writeAlarm"
515 // mView->viewManager()->showWhatsNextView(); 515 // mView->viewManager()->showWhatsNextView();
516 mCalendar->checkAlarmForIncidence( 0, true); 516 mCalendar->checkAlarmForIncidence( 0, true);
517 //showMaximized(); 517 //showMaximized();
518 //raise(); 518 //raise();
519 hide(); 519 hide();
520 return; 520 return;
521 } 521 }
522 if ( cmsg == "-newCountdown" ) { 522 if ( cmsg == "-newCountdown" ) {
523 qDebug("newCountdown "); 523 qDebug("newCountdown ");
524 524
525 } 525 }
526 QString msg ; 526 QString msg ;
527 QString allmsg = cmsg; 527 QString allmsg = cmsg;
528 while ( allmsg.length() > 0 ) { 528 while ( allmsg.length() > 0 ) {
529 int nextC = allmsg.find( "-", 1 ); 529 int nextC = allmsg.find( "-", 1 );
530 if ( nextC == -1 ) { 530 if ( nextC == -1 ) {
531 msg = allmsg; 531 msg = allmsg;
532 allmsg = ""; 532 allmsg = "";
533 } else{ 533 } else{
534 msg = allmsg.left( nextC ); 534 msg = allmsg.left( nextC );
535 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 535 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
536 } 536 }
537 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 537 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
538 if ( msg == "-newEvent" ) { 538 if ( msg == "-newEvent" ) {
539 mView->newEvent(); 539 mView->newEvent();
540 } 540 }
541 if ( msg == "-newTodo" ) { 541 if ( msg == "-newTodo" ) {
542 mView->newTodo(); 542 mView->newTodo();
543 543
544 } 544 }
545 if ( msg == "-showWN" ) { 545 if ( msg == "-showWN" ) {
546 mView->viewManager()->showWhatsNextView(); 546 mView->viewManager()->showWhatsNextView();
547 } 547 }
548 if ( msg == "-showTodo" ) { 548 if ( msg == "-showTodo" ) {
549 mView->viewManager()->showTodoView(); 549 mView->viewManager()->showTodoView();
550 } 550 }
551 if ( msg == "-showList" ) { 551 if ( msg == "-showList" ) {
552 mView->viewManager()->showListView(); 552 mView->viewManager()->showListView();
553 } 553 }
554 else if ( msg == "-showDay" ) { 554 else if ( msg == "-showDay" ) {
555 mView->viewManager()->showDayView(); 555 mView->viewManager()->showDayView();
556 } 556 }
557 else if ( msg == "-showWWeek" ) { 557 else if ( msg == "-showWWeek" ) {
558 mView->viewManager()->showWorkWeekView(); 558 mView->viewManager()->showWorkWeekView();
559 } 559 }
560 else if ( msg == "-ringSync" ) { 560 else if ( msg == "-ringSync" ) {
561 mSyncManager->multiSync( false ); 561 mSyncManager->multiSync( false );
562 } 562 }
563 else if ( msg == "-showWeek" ) { 563 else if ( msg == "-showWeek" ) {
564 mView->viewManager()->showWeekView(); 564 mView->viewManager()->showWeekView();
565 } 565 }
566 else if ( msg == "-showTodo" ) { 566 else if ( msg == "-showTodo" ) {
567 mView->viewManager()->showTodoView(); 567 mView->viewManager()->showTodoView();
568 } 568 }
569 else if ( msg == "-showJournal" ) { 569 else if ( msg == "-showJournal" ) {
570 mView->dateNavigator()->selectDates( 1 ); 570 mView->dateNavigator()->selectDates( 1 );
571 mView->dateNavigator()->selectToday(); 571 mView->dateNavigator()->selectToday();
572 mView->viewManager()->showJournalView(); 572 mView->viewManager()->showJournalView();
573 } 573 }
574 else if ( msg == "-showKO" ) { 574 else if ( msg == "-showKO" ) {
575 mView->viewManager()->showNextXView(); 575 mView->viewManager()->showNextXView();
576 } 576 }
577 else if ( msg == "-showWNext" ) { 577 else if ( msg == "-showWNext" ) {
578 mView->viewManager()->showWhatsNextView(); 578 mView->viewManager()->showWhatsNextView();
579 } 579 }
580 else if ( msg == "nextView()" ) { 580 else if ( msg == "nextView()" ) {
581 mView->viewManager()->showNextView(); 581 mView->viewManager()->showNextView();
582 } 582 }
583 else if ( msg == "-showNextXView" ) { 583 else if ( msg == "-showNextXView" ) {
584 mView->viewManager()->showNextXView(); 584 mView->viewManager()->showNextXView();
585 } 585 }
586 586
587 587
588 } 588 }
589 589
590 showMaximized(); 590 showMaximized();
591 raise(); 591 raise();
592} 592}
593 593
594QPixmap MainWindow::loadPixmap( QString name ) 594QPixmap MainWindow::loadPixmap( QString name )
595{ 595{
596 return SmallIcon( name ); 596 return SmallIcon( name );
597 597
598} 598}
599void MainWindow::setUsesBigPixmaps ( bool b ) 599void MainWindow::setUsesBigPixmaps ( bool b )
600{ 600{
601 qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b); 601 qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b);
602 if ( b ) 602 if ( b )
603 qDebug("KO: BigPixmaps are not supported "); 603 qDebug("KO: BigPixmaps are not supported ");
604} 604}
605void MainWindow::initActions() 605void MainWindow::initActions()
606{ 606{
607 //KOPrefs::instance()->mShowFullMenu 607 //KOPrefs::instance()->mShowFullMenu
608 iconToolBar->clear(); 608 iconToolBar->clear();
609 KOPrefs *p = KOPrefs::instance(); 609 KOPrefs *p = KOPrefs::instance();
610 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 610 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
611 611
612 QPopupMenu *viewMenu = new QPopupMenu( this ); 612 QPopupMenu *viewMenu = new QPopupMenu( this );
613 QPopupMenu *actionMenu = new QPopupMenu( this ); 613 QPopupMenu *actionMenu = new QPopupMenu( this );
614 QPopupMenu *importMenu = new QPopupMenu( this ); 614 QPopupMenu *importMenu = new QPopupMenu( this );
615 QPopupMenu *importMenu_X = new QPopupMenu( this ); 615 QPopupMenu *importMenu_X = new QPopupMenu( this );
616 QPopupMenu *exportMenu_X = new QPopupMenu( this ); 616 QPopupMenu *exportMenu_X = new QPopupMenu( this );
617 QPopupMenu *beamMenu_X = new QPopupMenu( this ); 617 QPopupMenu *beamMenu_X = new QPopupMenu( this );
618 selectFilterMenu = new QPopupMenu( this ); 618 selectFilterMenu = new QPopupMenu( this );
619 selectFilterMenu->setCheckable( true ); 619 selectFilterMenu->setCheckable( true );
620 syncMenu = new QPopupMenu( this ); 620 syncMenu = new QPopupMenu( this );
621 configureAgendaMenu = new QPopupMenu( this ); 621 configureAgendaMenu = new QPopupMenu( this );
622 configureToolBarMenu = new QPopupMenu( this ); 622 configureToolBarMenu = new QPopupMenu( this );
623 QPopupMenu *helpMenu = new QPopupMenu( this ); 623 QPopupMenu *helpMenu = new QPopupMenu( this );
624 QIconSet icon; 624 QIconSet icon;
625 int pixWid = 22, pixHei = 22; 625 int pixWid = 22, pixHei = 22;
626 QString pathString = ""; 626 QString pathString = "";
627 if ( !p->mToolBarMiniIcons ) { 627 if ( !p->mToolBarMiniIcons ) {
628 if ( QApplication::desktop()->width() < 480 /*|| QApplication::desktop()->height() < 320*/) { 628 if ( QApplication::desktop()->width() < 480 /*|| QApplication::desktop()->height() < 320*/) {
629 pathString += "icons16/"; 629 pathString += "icons16/";
630 pixWid = 18; pixHei = 16; 630 pixWid = 18; pixHei = 16;
631 } 631 }
632 } else { 632 } else {
633 pathString += "iconsmini/"; 633 pathString += "iconsmini/";
634 pixWid = 18; pixHei = 16; 634 pixWid = 18; pixHei = 16;
635 } 635 }
636 if ( KOPrefs::instance()->mShowFullMenu ) { 636 if ( KOPrefs::instance()->mShowFullMenu ) {
637 QMenuBar *menuBar1; 637 QMenuBar *menuBar1;
638 menuBar1 = menuBar(); 638 menuBar1 = menuBar();
639 menuBar1->insertItem( i18n("File"), importMenu ); 639 menuBar1->insertItem( i18n("File"), importMenu );
640 menuBar1->insertItem( i18n("View"), viewMenu ); 640 menuBar1->insertItem( i18n("View"), viewMenu );
641 menuBar1->insertItem( i18n("Actions"), actionMenu ); 641 menuBar1->insertItem( i18n("Actions"), actionMenu );
642#ifdef DESKTOP_VERSION 642#ifdef DESKTOP_VERSION
643 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 643 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
644 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 644 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
645#else 645#else
646 menuBar1->insertItem( i18n("Sync"), syncMenu ); 646 menuBar1->insertItem( i18n("Sync"), syncMenu );
647 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu ); 647 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu );
648#endif 648#endif
649 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 649 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
650 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 650 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
651 menuBar1->insertItem( i18n("Help"), helpMenu ); 651 menuBar1->insertItem( i18n("Help"), helpMenu );
652 } else { 652 } else {
653 QPEMenuBar *menuBar1; 653 QPEMenuBar *menuBar1;
654 menuBar1 = new QPEMenuBar( iconToolBar ); 654 menuBar1 = new QPEMenuBar( iconToolBar );
655 QPopupMenu *menuBar = new QPopupMenu( this ); 655 QPopupMenu *menuBar = new QPopupMenu( this );
656 icon = loadPixmap( pathString + "z_menu" ); 656 icon = loadPixmap( pathString + "z_menu" );
657 menuBar1->insertItem( icon.pixmap(), menuBar); 657 menuBar1->insertItem( icon.pixmap(), menuBar);
658 //menuBar1->insertItem( i18n("ME"), menuBar); 658 //menuBar1->insertItem( i18n("ME"), menuBar);
659 menuBar->insertItem( i18n("File"), importMenu ); 659 menuBar->insertItem( i18n("File"), importMenu );
660 menuBar->insertItem( i18n("View"), viewMenu ); 660 menuBar->insertItem( i18n("View"), viewMenu );
661 menuBar->insertItem( i18n("Actions"), actionMenu ); 661 menuBar->insertItem( i18n("Actions"), actionMenu );
662 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 662 menuBar->insertItem( i18n("Synchronize"), syncMenu );
663 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 663 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
664 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 664 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
665 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 665 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
666 menuBar->insertItem( i18n("Help"), helpMenu ); 666 menuBar->insertItem( i18n("Help"), helpMenu );
667 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 667 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
668 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 668 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
669 } 669 }
670 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 670 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
671 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) ); 671 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) );
672 672
673 673
674 mWeekBgColor = iconToolBar->backgroundColor(); 674 mWeekBgColor = iconToolBar->backgroundColor();
675 mWeekPixmap.resize( pixWid , pixHei ); 675 mWeekPixmap.resize( pixWid , pixHei );
676 mWeekPixmap.fill( mWeekBgColor ); 676 mWeekPixmap.fill( mWeekBgColor );
677 icon = mWeekPixmap; 677 icon = mWeekPixmap;
678 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this ); 678 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this );
679 if ( p-> mShowIconWeekNum ) 679 if ( p-> mShowIconWeekNum )
680 mWeekAction->addTo( iconToolBar ); 680 mWeekAction->addTo( iconToolBar );
681 mWeekFont = font(); 681 mWeekFont = font();
682 682
683 int fontPoint = mWeekFont.pointSize(); 683 int fontPoint = mWeekFont.pointSize();
684 QFontMetrics f( mWeekFont ); 684 QFontMetrics f( mWeekFont );
685 int fontWid = f.width( "30" ); 685 int fontWid = f.width( "30" );
686 while ( fontWid > pixWid ) { 686 while ( fontWid > pixWid ) {
687 --fontPoint; 687 --fontPoint;
688 mWeekFont.setPointSize( fontPoint ); 688 mWeekFont.setPointSize( fontPoint );
689 QFontMetrics f( mWeekFont ); 689 QFontMetrics f( mWeekFont );
690 fontWid = f.width( "30" ); 690 fontWid = f.width( "30" );
691 //qDebug("dec-- "); 691 //qDebug("dec-- ");
692 } 692 }
693 693
694 connect( mWeekAction, SIGNAL( activated() ), 694 connect( mWeekAction, SIGNAL( activated() ),
695 this, SLOT( weekAction() ) ); 695 this, SLOT( weekAction() ) );
696 696
697 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) ); 697 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) );
698 if ( p->mShowIconFilterview ) { 698 if ( p->mShowIconFilterview ) {
699 icon = loadPixmap( pathString + "filter" ); 699 icon = loadPixmap( pathString + "filter" );
700 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this ); 700 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this );
701 connect( actionFilterMenuTB, SIGNAL( activated() ), 701 connect( actionFilterMenuTB, SIGNAL( activated() ),
702 this, SLOT( fillFilterMenuTB() ) ); 702 this, SLOT( fillFilterMenuTB() ) );
703 actionFilterMenuTB->addTo( iconToolBar ); 703 actionFilterMenuTB->addTo( iconToolBar );
704 selectFilterMenuTB = new QPopupMenu( this ); 704 selectFilterMenuTB = new QPopupMenu( this );
705 selectFilterMenuTB->setCheckable( true ); 705 selectFilterMenuTB->setCheckable( true );
706 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 706 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
707 } 707 }
708 708
709 //#endif 709 //#endif
710 // ****************** 710 // ******************
711 QAction *action; 711 QAction *action;
712 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 712 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
713 configureToolBarMenu->setCheckable( true ); 713 configureToolBarMenu->setCheckable( true );
714 714
715 715
716 configureAgendaMenu->setCheckable( true ); 716 configureAgendaMenu->setCheckable( true );
717 int iii ; 717 int iii ;
718 for ( iii = 1;iii<= 10 ;++iii ){ 718 for ( iii = 1;iii<= 10 ;++iii ){
719 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 ); 719 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 );
720 } 720 }
721 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 721 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
722 722
723 connect( configureAgendaMenu, SIGNAL( aboutToShow()), 723 connect( configureAgendaMenu, SIGNAL( aboutToShow()),
724 this, SLOT( showConfigureAgenda( ) ) ); 724 this, SLOT( showConfigureAgenda( ) ) );
725 725
726 icon = loadPixmap( pathString + "configure" ); 726 icon = loadPixmap( pathString + "configure" );
727 action = new QAction( i18n("Configure"),icon, i18n("Configure KO/Pi..."), 0, this ); 727 action = new QAction( i18n("Configure"),icon, i18n("Configure KO/Pi..."), 0, this );
728 action->addTo( actionMenu ); 728 action->addTo( actionMenu );
729 connect( action, SIGNAL( activated() ), 729 connect( action, SIGNAL( activated() ),
730 mView, SLOT( edit_options() ) ); 730 mView, SLOT( edit_options() ) );
731 icon = loadPixmap( pathString + "configure" ); 731 icon = loadPixmap( pathString + "configure" );
732 action = new QAction( i18n("Configure"),icon, i18n("Global Settings..."), 0, this ); 732 action = new QAction( i18n("Configure"),icon, i18n("Global Settings..."), 0, this );
733 action->addTo( actionMenu ); 733 action->addTo( actionMenu );
734 connect( action, SIGNAL( activated() ), 734 connect( action, SIGNAL( activated() ),
735 mView, SLOT( edit_global_options() ) ); 735 mView, SLOT( edit_global_options() ) );
736 actionMenu->insertSeparator(); 736 actionMenu->insertSeparator();
737 737
738 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this ); 738 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this );
739 action->addTo( actionMenu ); 739 action->addTo( actionMenu );
740 connect( action, SIGNAL( activated() ), 740 connect( action, SIGNAL( activated() ),
741 mView, SLOT( undo_delete() ) ); 741 mView, SLOT( undo_delete() ) );
742 actionMenu->insertSeparator(); 742 actionMenu->insertSeparator();
743 743
744 icon = loadPixmap( pathString + "newevent" ); 744 icon = loadPixmap( pathString + "newevent" );
745 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 745 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
746 configureToolBarMenu->insertItem(i18n("Only one toolbar"), 6 ); 746 configureToolBarMenu->insertItem(i18n("Only one toolbar"), 6 );
747 configureToolBarMenu->insertSeparator(); 747 configureToolBarMenu->insertSeparator();
748 configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 ); 748 configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 );
749 configureToolBarMenu->insertSeparator(); 749 configureToolBarMenu->insertSeparator();
750 configureToolBarMenu->insertItem(i18n("Week Number"), 400); 750 configureToolBarMenu->insertItem(i18n("Week Number"), 400);
751 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 751 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
752 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 752 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
753 ne_action->addTo( actionMenu ); 753 ne_action->addTo( actionMenu );
754 connect( ne_action, SIGNAL( activated() ), 754 connect( ne_action, SIGNAL( activated() ),
755 mView, SLOT( newEvent() ) ); 755 mView, SLOT( newEvent() ) );
756 icon = loadPixmap( pathString + "newtodo" ); 756 icon = loadPixmap( pathString + "newtodo" );
757 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 757 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
758 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 758 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
759 nt_action->addTo( actionMenu ); 759 nt_action->addTo( actionMenu );
760 connect( nt_action, SIGNAL( activated() ), 760 connect( nt_action, SIGNAL( activated() ),
761 mView, SLOT( newTodo() ) ); 761 mView, SLOT( newTodo() ) );
762 762
763 icon = loadPixmap( pathString + "today" ); 763 icon = loadPixmap( pathString + "today" );
764 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 764 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
765 today_action->addTo( viewMenu ); 765 today_action->addTo( viewMenu );
766 connect( today_action, SIGNAL( activated() ), 766 connect( today_action, SIGNAL( activated() ),
767 mView, SLOT( goToday() ) ); 767 mView, SLOT( goToday() ) );
768 viewMenu->insertSeparator(); 768 viewMenu->insertSeparator();
769 769
770 // *********************** 770 // ***********************
771 if ( KOPrefs::instance()->mVerticalScreen ) { 771 if ( KOPrefs::instance()->mVerticalScreen ) {
772 icon = SmallIcon( "1updownarrow" ); 772 icon = SmallIcon( "1updownarrow" );
773 } else { 773 } else {
774 icon = SmallIcon("1leftrightarrow" ); 774 icon = SmallIcon("1leftrightarrow" );
775 } 775 }
776 configureToolBarMenu->insertItem(icon, i18n("Toggle Fullscreen"), 28 ); 776 configureToolBarMenu->insertItem(icon, i18n("Toggle Fullscreen"), 28 );
777 QAction* FSaction = new QAction( i18n("Toggle Fullscreen"), icon, i18n("Toggle Fullscreen"), 0, this ); 777 QAction* FSaction = new QAction( i18n("Toggle Fullscreen"), icon, i18n("Toggle Fullscreen"), 0, this );
778 FSaction->addTo( viewMenu ); 778 FSaction->addTo( viewMenu );
779 connect( FSaction, SIGNAL( activated() ), mView, SLOT( toggleExpand() )); 779 connect( FSaction, SIGNAL( activated() ), mView, SLOT( toggleExpand() ));
780 780
781 icon = loadPixmap( pathString + "navi" ); 781 icon = loadPixmap( pathString + "navi" );
782 configureToolBarMenu->insertItem(icon, i18n("Toggle DateNavigator"), 22 ); 782 configureToolBarMenu->insertItem(icon, i18n("Toggle DateNavigator"), 22 );
783 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 783 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
784 action->addTo( viewMenu ); 784 action->addTo( viewMenu );
785 connect( action, SIGNAL( activated() ), 785 connect( action, SIGNAL( activated() ),
786 mView, SLOT( toggleDateNavigatorWidget() ) ); 786 mView, SLOT( toggleDateNavigatorWidget() ) );
787 mToggleNav = action ; 787 mToggleNav = action ;
788 icon = loadPixmap( pathString + "filter" ); 788 icon = loadPixmap( pathString + "filter" );
789 configureToolBarMenu->insertItem(icon, i18n("Filter menu icon"), 26 ); 789 configureToolBarMenu->insertItem(icon, i18n("Filter menu icon"), 26 );
790 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this ); 790 icon = loadPixmap( pathString + "configure" );
791 action = new QAction( i18n("Toggle Resource View"), icon, i18n("Toggle Resource View"), 0, this );
791 action->addTo( viewMenu ); 792 action->addTo( viewMenu );
792 connect( action, SIGNAL( activated() ), 793 connect( action, SIGNAL( activated() ),
793 mView, SLOT( toggleFilter() ) ); 794 mView, SLOT( toggleFilter() ) );
794 mToggleFilter = action; 795 mToggleFilter = action;
795 icon = loadPixmap( pathString + "allday" ); 796 icon = loadPixmap( pathString + "allday" );
796 configureToolBarMenu->insertItem(icon, i18n("Toggle Allday"), 24 ); 797 configureToolBarMenu->insertItem(icon, i18n("Toggle Allday"), 24 );
797 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this ); 798 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this );
798 action->addTo( viewMenu ); 799 action->addTo( viewMenu );
799 connect( action, SIGNAL( activated() ), 800 connect( action, SIGNAL( activated() ),
800 mView, SLOT( toggleAllDaySize() ) ); 801 mView, SLOT( toggleAllDaySize() ) );
801 mToggleAllday = action; 802 mToggleAllday = action;
802 803
803 804
804 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 805 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
805 mToggleNav, SLOT( setEnabled ( bool ) ) ); 806 mToggleNav, SLOT( setEnabled ( bool ) ) );
806 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 807 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
807 mToggleFilter, SLOT( setEnabled ( bool ) ) ); 808 mToggleFilter, SLOT( setEnabled ( bool ) ) );
808 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ), 809 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
809 mToggleAllday, SLOT( setEnabled ( bool ) ) ); 810 mToggleAllday, SLOT( setEnabled ( bool ) ) );
810 // connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ), 811 // connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
811 // configureAgendaMenu, SLOT( setEnabled ( bool ) ) ); 812 // configureAgendaMenu, SLOT( setEnabled ( bool ) ) );
812 813
813 viewMenu->insertSeparator(); 814 viewMenu->insertSeparator();
814 icon = loadPixmap( pathString + "picker" ); 815 icon = loadPixmap( pathString + "picker" );
815 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this ); 816 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
816 action->addTo( viewMenu ); 817 action->addTo( viewMenu );
817 connect( action, SIGNAL( activated() ), 818 connect( action, SIGNAL( activated() ),
818 mView, SLOT( showDatePicker() ) ); 819 mView, SLOT( showDatePicker() ) );
819 action->addTo( iconToolBar ); 820 action->addTo( iconToolBar );
820 viewMenu->insertSeparator(); 821 viewMenu->insertSeparator();
821 822
822 if ( p-> mShowIconToggleFull ) 823 if ( p-> mShowIconToggleFull )
823 FSaction->addTo( iconToolBar ); 824 FSaction->addTo( iconToolBar );
824 if ( p->mShowIconNavigator ) mToggleNav ->addTo( iconToolBar ); 825 if ( p->mShowIconNavigator ) mToggleNav ->addTo( iconToolBar );
825 826
826 //******************** 827 //********************
827 if ( p->mShowIconAllday ) mToggleAllday->addTo( iconToolBar ); 828 if ( p->mShowIconAllday ) mToggleAllday->addTo( iconToolBar );
828 829
829 830
830 icon = loadPixmap( pathString + "whatsnext" ); 831 icon = loadPixmap( pathString + "whatsnext" );
831 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110 ); 832 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110 );
832 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 833 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
833 whatsnext_action->addTo( viewMenu ); 834 whatsnext_action->addTo( viewMenu );
834 connect( whatsnext_action, SIGNAL( activated() ), 835 connect( whatsnext_action, SIGNAL( activated() ),
835 mView->viewManager(), SLOT( showWhatsNextView() ) ); 836 mView->viewManager(), SLOT( showWhatsNextView() ) );
836 837
837 icon = loadPixmap( pathString + "xdays" ); 838 icon = loadPixmap( pathString + "xdays" );
838 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100 ); 839 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100 );
839 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 840 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
840 xdays_action->addTo( viewMenu ); 841 xdays_action->addTo( viewMenu );
841 connect( xdays_action, SIGNAL( activated() ), 842 connect( xdays_action, SIGNAL( activated() ),
842 mView->viewManager(), SLOT( showNextXView() ) ); 843 mView->viewManager(), SLOT( showNextXView() ) );
843 844
844 845
845 icon = loadPixmap( pathString + "journal" ); 846 icon = loadPixmap( pathString + "journal" );
846 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 847 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
847 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 848 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
848 viewjournal_action->addTo( viewMenu ); 849 viewjournal_action->addTo( viewMenu );
849 connect( viewjournal_action, SIGNAL( activated() ), 850 connect( viewjournal_action, SIGNAL( activated() ),
850 mView->viewManager(), SLOT( showJournalView() ) ); 851 mView->viewManager(), SLOT( showJournalView() ) );
851 852
852 853
853 icon = loadPixmap( pathString + "day" ); 854 icon = loadPixmap( pathString + "day" );
854 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 855 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
855 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); 856 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this );
856 day1_action->addTo( viewMenu ); 857 day1_action->addTo( viewMenu );
857 // action->addTo( toolBar ); 858 // action->addTo( toolBar );
858 connect( day1_action, SIGNAL( activated() ), 859 connect( day1_action, SIGNAL( activated() ),
859 mView->viewManager(), SLOT( showDayView() ) ); 860 mView->viewManager(), SLOT( showDayView() ) );
860 861
861 icon = loadPixmap( pathString + "workweek" ); 862 icon = loadPixmap( pathString + "workweek" );
862 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); 863 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 );
863 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); 864 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this );
864 day5_action->addTo( viewMenu ); 865 day5_action->addTo( viewMenu );
865 connect( day5_action, SIGNAL( activated() ), 866 connect( day5_action, SIGNAL( activated() ),
866 mView->viewManager(), SLOT( showWorkWeekView() ) ); 867 mView->viewManager(), SLOT( showWorkWeekView() ) );
867 868
868 icon = loadPixmap( pathString + "week" ); 869 icon = loadPixmap( pathString + "week" );
869 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); 870 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 );
870 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); 871 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this );
871 day7_action->addTo( viewMenu ); 872 day7_action->addTo( viewMenu );
872 connect( day7_action, SIGNAL( activated() ), 873 connect( day7_action, SIGNAL( activated() ),
873 mView->viewManager(), SLOT( showWeekView() ) ); 874 mView->viewManager(), SLOT( showWeekView() ) );
874 875
875 icon = loadPixmap( pathString + "workweek2" ); 876 icon = loadPixmap( pathString + "workweek2" );
876 configureToolBarMenu->insertItem(icon, i18n("List week view"), 75 ); 877 configureToolBarMenu->insertItem(icon, i18n("List week view"), 75 );
877 QAction* day6_action = new QAction( i18n("List week"), icon, i18n("List week"), 0, this ); 878 QAction* day6_action = new QAction( i18n("List week"), icon, i18n("List week"), 0, this );
878 day6_action->addTo( viewMenu ); 879 day6_action->addTo( viewMenu );
879 connect( day6_action, SIGNAL( activated() ), 880 connect( day6_action, SIGNAL( activated() ),
880 mView->viewManager(), SLOT( showMonthViewWeek() ) ); 881 mView->viewManager(), SLOT( showMonthViewWeek() ) );
881 882
882 icon = loadPixmap( pathString + "month" ); 883 icon = loadPixmap( pathString + "month" );
883 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); 884 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 );
884 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); 885 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this );
885 month_action->addTo( viewMenu ); 886 month_action->addTo( viewMenu );
886 connect( month_action, SIGNAL( activated() ), 887 connect( month_action, SIGNAL( activated() ),
887 mView->viewManager(), SLOT( showMonthView() ) ); 888 mView->viewManager(), SLOT( showMonthView() ) );
888 889
889 icon = loadPixmap( pathString + "list" ); 890 icon = loadPixmap( pathString + "list" );
890 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 891 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
891 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 892 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
892 showlist_action->addTo( viewMenu ); 893 showlist_action->addTo( viewMenu );
893 connect( showlist_action, SIGNAL( activated() ), 894 connect( showlist_action, SIGNAL( activated() ),
894 mView->viewManager(), SLOT( showListView() ) ); 895 mView->viewManager(), SLOT( showListView() ) );
895 896
896 icon = loadPixmap( pathString + "todo" ); 897 icon = loadPixmap( pathString + "todo" );
897 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); 898 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 );
898 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); 899 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this );
899 todoview_action->addTo( viewMenu ); 900 todoview_action->addTo( viewMenu );
900 connect( todoview_action, SIGNAL( activated() ), 901 connect( todoview_action, SIGNAL( activated() ),
901 mView->viewManager(), SLOT( showTodoView() ) ); 902 mView->viewManager(), SLOT( showTodoView() ) );
902 903
903 904
904 905
905#if 0 906#if 0
906 action = new QAction( "view_timespan", "Time Span", 0, this ); 907 action = new QAction( "view_timespan", "Time Span", 0, this );
907 action->addTo( viewMenu ); 908 action->addTo( viewMenu );
908 connect( action, SIGNAL( activated() ), 909 connect( action, SIGNAL( activated() ),
909 mView->viewManager(), SLOT( showTimeSpanView() ) ); 910 mView->viewManager(), SLOT( showTimeSpanView() ) );
910#endif 911#endif
911 912
912 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, 913 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0,
913 this ); 914 this );
914 mNewSubTodoAction->addTo( actionMenu ); 915 mNewSubTodoAction->addTo( actionMenu );
915 connect( mNewSubTodoAction, SIGNAL( activated() ), 916 connect( mNewSubTodoAction, SIGNAL( activated() ),
916 mView, SLOT( newSubTodo() ) ); 917 mView, SLOT( newSubTodo() ) );
917 918
918 actionMenu->insertSeparator(); 919 actionMenu->insertSeparator();
919 920
920 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); 921 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
921 mShowAction->addTo( actionMenu ); 922 mShowAction->addTo( actionMenu );
922 connect( mShowAction, SIGNAL( activated() ), 923 connect( mShowAction, SIGNAL( activated() ),
923 mView, SLOT( showIncidence() ) ); 924 mView, SLOT( showIncidence() ) );
924 925
925 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 926 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
926 mEditAction->addTo( actionMenu ); 927 mEditAction->addTo( actionMenu );
927 connect( mEditAction, SIGNAL( activated() ), 928 connect( mEditAction, SIGNAL( activated() ),
928 mView, SLOT( editIncidence() ) ); 929 mView, SLOT( editIncidence() ) );
929 930
930 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 931 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
931 mDeleteAction->addTo( actionMenu ); 932 mDeleteAction->addTo( actionMenu );
932 connect( mDeleteAction, SIGNAL( activated() ), 933 connect( mDeleteAction, SIGNAL( activated() ),
933 mView, SLOT( deleteIncidence() ) ); 934 mView, SLOT( deleteIncidence() ) );
934 935
935 936
936 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this ); 937 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
937 mCloneAction->addTo( actionMenu ); 938 mCloneAction->addTo( actionMenu );
938 connect( mCloneAction, SIGNAL( activated() ), 939 connect( mCloneAction, SIGNAL( activated() ),
939 mView, SLOT( cloneIncidence() ) ); 940 mView, SLOT( cloneIncidence() ) );
940 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this ); 941 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
941 mMoveAction->addTo( actionMenu ); 942 mMoveAction->addTo( actionMenu );
942 connect( mMoveAction, SIGNAL( activated() ), 943 connect( mMoveAction, SIGNAL( activated() ),
943 mView, SLOT( moveIncidence() ) ); 944 mView, SLOT( moveIncidence() ) );
944 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this ); 945 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
945 mBeamAction->addTo( actionMenu ); 946 mBeamAction->addTo( actionMenu );
946 connect( mBeamAction, SIGNAL( activated() ), 947 connect( mBeamAction, SIGNAL( activated() ),
947 mView, SLOT( beamIncidence() ) ); 948 mView, SLOT( beamIncidence() ) );
948 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this ); 949 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
949 mCancelAction->addTo( actionMenu ); 950 mCancelAction->addTo( actionMenu );
950 connect( mCancelAction, SIGNAL( activated() ), 951 connect( mCancelAction, SIGNAL( activated() ),
951 mView, SLOT( toggleCancelIncidence() ) ); 952 mView, SLOT( toggleCancelIncidence() ) );
952 953
953 actionMenu->insertSeparator(); 954 actionMenu->insertSeparator();
954 955
955 action = new QAction( "purge_completed", i18n("Purge Completed"), 0, 956 action = new QAction( "purge_completed", i18n("Purge Completed"), 0,
956 this ); 957 this );
957 action->addTo( actionMenu ); 958 action->addTo( actionMenu );
958 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); 959 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
959 960
960 icon = loadPixmap( pathString + "search" ); 961 icon = loadPixmap( pathString + "search" );
961 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 962 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
962 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5); 963 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5);
963 search_action->addTo( actionMenu ); 964 search_action->addTo( actionMenu );
964 connect( search_action, SIGNAL( activated() ), 965 connect( search_action, SIGNAL( activated() ),
965 mView->dialogManager(), SLOT( showSearchDialog() ) ); 966 mView->dialogManager(), SLOT( showSearchDialog() ) );
966 967
967 968
968 969
969 if ( KOPrefs::instance()->mShowFullMenu ) { 970 if ( KOPrefs::instance()->mShowFullMenu ) {
970 actionMenu->insertSeparator(); 971 actionMenu->insertSeparator();
971 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); 972 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
972 973
973 } 974 }
974 // actionMenu->insertSeparator(); 975 // actionMenu->insertSeparator();
975 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, 976 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0,
976 this ); 977 this );
977 action->addTo( importMenu_X ); 978 action->addTo( importMenu_X );
978 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); 979 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) );
979 action = new QAction( "import_quick", i18n("Import last file"), 0, 980 action = new QAction( "import_quick", i18n("Import last file"), 0,
980 this ); 981 this );
981 action->addTo( importMenu_X ); 982 action->addTo( importMenu_X );
982 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); 983 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) );
983 importMenu_X->insertSeparator(); 984 importMenu_X->insertSeparator();
984 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, 985 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0,
985 this ); 986 this );
986 action->addTo( importMenu_X ); 987 action->addTo( importMenu_X );
987 connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); 988 connect( action, SIGNAL( activated() ), SLOT( importBday() ) );
988 //#ifndef DESKTOP_VERSION 989 //#ifndef DESKTOP_VERSION
989 importMenu_X->insertSeparator(); 990 importMenu_X->insertSeparator();
990 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, 991 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0,
991 this ); 992 this );
992 action->addTo( importMenu_X ); 993 action->addTo( importMenu_X );
993 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); 994 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) );
994 //#else 995 //#else
995#ifdef _OL_IMPORT_ 996#ifdef _OL_IMPORT_
996 importMenu_X->insertSeparator(); 997 importMenu_X->insertSeparator();
997 action = new QAction( "import_ol", i18n("Import from OL"), 0, 998 action = new QAction( "import_ol", i18n("Import from OL"), 0,
998 this ); 999 this );
999 action->addTo( importMenu_X ); 1000 action->addTo( importMenu_X );
1000 connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); 1001 connect( action, SIGNAL( activated() ), SLOT( importOL() ) );
1001#endif 1002#endif
1002 //#endif 1003 //#endif
1003 1004
1004 //importMenu->insertSeparator(); 1005 //importMenu->insertSeparator();
1005 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, 1006 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0,
1006 this ); 1007 this );
1007 action->addTo( importMenu ); 1008 action->addTo( importMenu );
1008 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); 1009 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) );
1009 1010
1010 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, 1011 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0,
1011 this ); 1012 this );
1012 action->addTo( importMenu ); 1013 action->addTo( importMenu );
1013 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); 1014 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) );
1014 importMenu->insertSeparator(); 1015 importMenu->insertSeparator();
1015 importMenu->insertItem( i18n("Import"), importMenu_X ); 1016 importMenu->insertItem( i18n("Import"), importMenu_X );
1016 //importMenu->insertSeparator(); 1017 //importMenu->insertSeparator();
1017 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, 1018 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0,
1018 this ); 1019 this );
1019 action->addTo( exportMenu_X ); 1020 action->addTo( exportMenu_X );
1020 connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); 1021 connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) );
1021 1022
1022 1023
1023 //LR 1024 //LR
1024 QPopupMenu *ex2phone = new QPopupMenu( this ); 1025 QPopupMenu *ex2phone = new QPopupMenu( this );
1025 ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1026 ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1026 ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1027 ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1027 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); 1028 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) );
1028 exportMenu_X->insertItem( i18n("Export to phone"), ex2phone ); 1029 exportMenu_X->insertItem( i18n("Export to phone"), ex2phone );
1029 1030
1030 importMenu->insertItem( i18n("Export"), exportMenu_X ); 1031 importMenu->insertItem( i18n("Export"), exportMenu_X );
1031#ifndef DESKTOP_VERSION 1032#ifndef DESKTOP_VERSION
1032 //importMenu->insertSeparator(); 1033 //importMenu->insertSeparator();
1033 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0, 1034 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0,
1034 this ); 1035 this );
1035 brAction->addTo( beamMenu_X ); 1036 brAction->addTo( beamMenu_X );
1036 brAction->setToggleAction (true ) ; 1037 brAction->setToggleAction (true ) ;
1037 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); 1038 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) );
1038 1039
1039 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, 1040 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0,
1040 this ); 1041 this );
1041 action->addTo( beamMenu_X ); 1042 action->addTo( beamMenu_X );
1042 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); 1043 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) );
1043 1044
1044 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, 1045 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0,
1045 this ); 1046 this );
1046 action->addTo( beamMenu_X ); 1047 action->addTo( beamMenu_X );
1047 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); 1048 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) );
1048 importMenu->insertItem( i18n("Beam"), beamMenu_X ); 1049 importMenu->insertItem( i18n("Beam"), beamMenu_X );
1049#else 1050#else
1050 //importMenu->insertSeparator(); 1051 //importMenu->insertSeparator();
1051 icon = loadPixmap( pathString + "print" ); 1052 icon = loadPixmap( pathString + "print" );
1052 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); 1053 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this );
1053 action->addTo( beamMenu_X ); 1054 action->addTo( beamMenu_X );
1054 connect( action, SIGNAL( activated() ), 1055 connect( action, SIGNAL( activated() ),
1055 this, SLOT( printCal() ) ); 1056 this, SLOT( printCal() ) );
1056 1057
1057 icon = loadPixmap( pathString + "print" ); 1058 icon = loadPixmap( pathString + "print" );
1058 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); 1059 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this );
1059 action->addTo( beamMenu_X ); 1060 action->addTo( beamMenu_X );
1060 connect( action, SIGNAL( activated() ), 1061 connect( action, SIGNAL( activated() ),
1061 this, SLOT( printSel() ) ); 1062 this, SLOT( printSel() ) );
1062 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this ); 1063 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this );
1063 action->addTo( beamMenu_X ); 1064 action->addTo( beamMenu_X );
1064 connect( action, SIGNAL( activated() ), 1065 connect( action, SIGNAL( activated() ),
1065 mView->viewManager(), SLOT( slotprintWNV() ) ); 1066 mView->viewManager(), SLOT( slotprintWNV() ) );
1066 1067
1067 1068
1068 icon = loadPixmap( pathString + "print" ); 1069 icon = loadPixmap( pathString + "print" );
1069 action = new QAction( i18n("Print List View..."),icon,i18n("Print List View..."), 0, this ); 1070 action = new QAction( i18n("Print List View..."),icon,i18n("Print List View..."), 0, this );
1070 action->addTo( beamMenu_X ); 1071 action->addTo( beamMenu_X );
1071 connect( action, SIGNAL( activated() ), 1072 connect( action, SIGNAL( activated() ),
1072 this, SLOT( printListView() ) ); 1073 this, SLOT( printListView() ) );
1073 1074
1074 action = new QAction( i18n("Print selected event / todo..."),icon,i18n("Print selected event / todo..."), 0, this ); 1075 action = new QAction( i18n("Print selected event / todo..."),icon,i18n("Print selected event / todo..."), 0, this );
1075 action->addTo( beamMenu_X ); 1076 action->addTo( beamMenu_X );
1076 connect( action, SIGNAL( activated() ), 1077 connect( action, SIGNAL( activated() ),
1077 mView, SLOT( slotprintSelInc() ) ); 1078 mView, SLOT( slotprintSelInc() ) );
1078 1079
1079 importMenu->insertItem( i18n("Print"), beamMenu_X ); 1080 importMenu->insertItem( i18n("Print"), beamMenu_X );
1080#endif 1081#endif
1081 importMenu->insertSeparator(); 1082 importMenu->insertSeparator();
1082 action = new QAction( "manage cat", i18n("Manage new categories..."), 0, 1083 action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
1083 this ); 1084 this );
1084 action->addTo( importMenu ); 1085 action->addTo( importMenu );
1085 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); 1086 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
1086 importMenu->insertSeparator(); 1087 importMenu->insertSeparator();
1087 action = new QAction( "beam all", i18n("Save"), 0, 1088 action = new QAction( "beam all", i18n("Save"), 0,
1088 this ); 1089 this );
1089 action->addTo( importMenu ); 1090 action->addTo( importMenu );
1090 connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); 1091 connect( action, SIGNAL( activated() ), this, SLOT( save() ) );
1091 action = new QAction( "beam all", i18n("Exit (+save)"), 0, 1092 action = new QAction( "beam all", i18n("Exit (+save)"), 0,
1092 this ); 1093 this );
1093 action->addTo( importMenu ); 1094 action->addTo( importMenu );
1094 connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); 1095 connect( action, SIGNAL( activated() ), this, SLOT( close() ) );
1095 1096
1096 //menuBar->insertItem( "Configure",configureMenu ); 1097 //menuBar->insertItem( "Configure",configureMenu );
1097 //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); 1098 //configureMenu->insertItem( "Toolbar",configureToolBarMenu );
1098 icon = loadPixmap( "korganizer/korganizer" ); 1099 icon = loadPixmap( "korganizer/korganizer" );
1099 1100
1100 action = new QAction( "Whats New", i18n("What's new?"), 0,this ); 1101 action = new QAction( "Whats New", i18n("What's new?"), 0,this );
1101 action->addTo( helpMenu ); 1102 action->addTo( helpMenu );
1102 connect( action, SIGNAL( activated() ), 1103 connect( action, SIGNAL( activated() ),
1103 SLOT( whatsNew() ) ); 1104 SLOT( whatsNew() ) );
1104 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); 1105 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this );
1105 action->addTo( helpMenu ); 1106 action->addTo( helpMenu );
1106 connect( action, SIGNAL( activated() ), 1107 connect( action, SIGNAL( activated() ),
1107 SLOT( features() ) ); 1108 SLOT( features() ) );
1108 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); 1109 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this );
1109 action->addTo( helpMenu ); 1110 action->addTo( helpMenu );
1110 connect( action, SIGNAL( activated() ), 1111 connect( action, SIGNAL( activated() ),
1111 SLOT( keyBindings() ) ); 1112 SLOT( keyBindings() ) );
1112 action = new QAction( "Storage Howto", i18n("Storage HowTo..."), 0,this ); 1113 action = new QAction( "Storage Howto", i18n("Storage HowTo..."), 0,this );
1113 action->addTo( helpMenu ); 1114 action->addTo( helpMenu );
1114 connect( action, SIGNAL( activated() ), 1115 connect( action, SIGNAL( activated() ),
1115 SLOT( storagehowto() ) ); 1116 SLOT( storagehowto() ) );
1116 action = new QAction( "Timetracking Howto", i18n("Timetracking HowTo..."), 0,this ); 1117 action = new QAction( "Timetracking Howto", i18n("Timetracking HowTo..."), 0,this );
1117 action->addTo( helpMenu ); 1118 action->addTo( helpMenu );
1118 connect( action, SIGNAL( activated() ), 1119 connect( action, SIGNAL( activated() ),
1119 SLOT( timetrackinghowto() ) ); 1120 SLOT( timetrackinghowto() ) );
1120 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); 1121 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this );
1121 action->addTo( helpMenu ); 1122 action->addTo( helpMenu );
1122 connect( action, SIGNAL( activated() ), 1123 connect( action, SIGNAL( activated() ),
1123 SLOT( synchowto() ) ); 1124 SLOT( synchowto() ) );
1124 action = new QAction( "KDE Sync Howto", i18n("KDE Sync HowTo..."), 0,this ); 1125 action = new QAction( "KDE Sync Howto", i18n("KDE Sync HowTo..."), 0,this );
1125 action->addTo( helpMenu ); 1126 action->addTo( helpMenu );
1126 connect( action, SIGNAL( activated() ), 1127 connect( action, SIGNAL( activated() ),
1127 SLOT( kdesynchowto() ) ); 1128 SLOT( kdesynchowto() ) );
1128 action = new QAction( "Multi Sync Howto", i18n("Multi Sync HowTo..."), 0,this ); 1129 action = new QAction( "Multi Sync Howto", i18n("Multi Sync HowTo..."), 0,this );
1129 action->addTo( helpMenu ); 1130 action->addTo( helpMenu );
1130 connect( action, SIGNAL( activated() ), 1131 connect( action, SIGNAL( activated() ),
1131 SLOT( multisynchowto() ) ); 1132 SLOT( multisynchowto() ) );
1132 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); 1133 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this );
1133 action->addTo( helpMenu ); 1134 action->addTo( helpMenu );
1134 connect( action, SIGNAL( activated() ), 1135 connect( action, SIGNAL( activated() ),
1135 SLOT( aboutAutoSaving() ) ); 1136 SLOT( aboutAutoSaving() ) );
1136 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); 1137 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this );
1137 action->addTo( helpMenu ); 1138 action->addTo( helpMenu );
1138 connect( action, SIGNAL( activated() ), 1139 connect( action, SIGNAL( activated() ),
1139 SLOT( aboutKnownBugs() ) ); 1140 SLOT( aboutKnownBugs() ) );
1140 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); 1141 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this );
1141 action->addTo( helpMenu ); 1142 action->addTo( helpMenu );
1142 connect( action, SIGNAL( activated() ), 1143 connect( action, SIGNAL( activated() ),
1143 SLOT( usertrans() ) ); 1144 SLOT( usertrans() ) );
1144 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); 1145 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this );
1145 action->addTo( helpMenu ); 1146 action->addTo( helpMenu );
1146 connect( action, SIGNAL( activated() ), 1147 connect( action, SIGNAL( activated() ),
1147 SLOT( faq() ) ); 1148 SLOT( faq() ) );
1148 action = new QAction( "licence", i18n("Licence..."), 0, this ); 1149 action = new QAction( "licence", i18n("Licence..."), 0, this );
1149 action->addTo( helpMenu ); 1150 action->addTo( helpMenu );
1150 connect( action, SIGNAL( activated() ), 1151 connect( action, SIGNAL( activated() ),
1151 SLOT( licence() ) ); 1152 SLOT( licence() ) );
1152 action = new QAction( "about", i18n("About..."), 0, this ); 1153 action = new QAction( "about", i18n("About..."), 0, this );
1153 action->addTo( helpMenu ); 1154 action->addTo( helpMenu );
1154 connect( action, SIGNAL( activated() ), 1155 connect( action, SIGNAL( activated() ),
1155 SLOT( about() ) ); 1156 SLOT( about() ) );
1156 //menuBar->insertSeparator(); 1157 //menuBar->insertSeparator();
1157 1158
1158 // ****************************************************** 1159 // ******************************************************
1159 // menubar icons 1160 // menubar icons
1160 1161
1161 1162
1162 1163
1163 //menuBar->insertItem( iconToolBar ); 1164 //menuBar->insertItem( iconToolBar );
1164 //xdays_action 1165 //xdays_action
1165 if (p-> mShowIconNewEvent) 1166 if (p-> mShowIconNewEvent)
1166 ne_action->addTo( iconToolBar ); 1167 ne_action->addTo( iconToolBar );
1167 if (p->mShowIconNewTodo ) 1168 if (p->mShowIconNewTodo )
1168 nt_action->addTo( iconToolBar ); 1169 nt_action->addTo( iconToolBar );
1169 if (p-> mShowIconSearch) 1170 if (p-> mShowIconSearch)
1170 search_action->addTo( iconToolBar ); 1171 search_action->addTo( iconToolBar );
1171 if (p-> mShowIconWhatsThis) 1172 if (p-> mShowIconWhatsThis)
1172 QWhatsThis::whatsThisButton ( iconToolBar ); 1173 QWhatsThis::whatsThisButton ( iconToolBar );
1173 if (p-> mShowIconNext) 1174 if (p-> mShowIconNext)
1174 whatsnext_action->addTo( viewToolBar ); 1175 whatsnext_action->addTo( viewToolBar );
1175 if (p-> mShowIconNextDays) 1176 if (p-> mShowIconNextDays)
1176 xdays_action->addTo( viewToolBar ); 1177 xdays_action->addTo( viewToolBar );
1177 if (p-> mShowIconJournal) 1178 if (p-> mShowIconJournal)
1178 viewjournal_action->addTo( viewToolBar ); 1179 viewjournal_action->addTo( viewToolBar );
1179 if (p-> mShowIconDay1) 1180 if (p-> mShowIconDay1)
1180 day1_action->addTo( viewToolBar ); 1181 day1_action->addTo( viewToolBar );
1181 if (p-> mShowIconDay5) 1182 if (p-> mShowIconDay5)
1182 day5_action->addTo( viewToolBar ); 1183 day5_action->addTo( viewToolBar );
1183 if (p-> mShowIconDay7) 1184 if (p-> mShowIconDay7)
1184 day7_action->addTo( viewToolBar ); 1185 day7_action->addTo( viewToolBar );
1185 if (p-> mShowIconDay6) 1186 if (p-> mShowIconDay6)
1186 day6_action->addTo( viewToolBar ); 1187 day6_action->addTo( viewToolBar );
1187 if (p-> mShowIconMonth) 1188 if (p-> mShowIconMonth)
1188 month_action->addTo( viewToolBar ); 1189 month_action->addTo( viewToolBar );
1189 if (p-> mShowIconList) 1190 if (p-> mShowIconList)
1190 showlist_action->addTo( viewToolBar ); 1191 showlist_action->addTo( viewToolBar );
1191 if (p-> mShowIconTodoview) 1192 if (p-> mShowIconTodoview)
1192 todoview_action->addTo( viewToolBar ); 1193 todoview_action->addTo( viewToolBar );
1193 1194
1194 icon = loadPixmap( pathString + "2leftarrowB" ); 1195 icon = loadPixmap( pathString + "2leftarrowB" );
1195 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200); 1196 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200);
1196 if (p-> mShowIconBackFast) { 1197 if (p-> mShowIconBackFast) {
1197 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 1198 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
1198 connect( action, SIGNAL( activated() ), 1199 connect( action, SIGNAL( activated() ),
1199 mView, SLOT( goPreviousMonth() ) ); 1200 mView, SLOT( goPreviousMonth() ) );
1200 action->addTo( navigatorToolBar ); 1201 action->addTo( navigatorToolBar );
1201 } 1202 }
1202 icon = loadPixmap( pathString + "1leftarrowB" ); 1203 icon = loadPixmap( pathString + "1leftarrowB" );
1203 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210); 1204 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210);
1204 if (p-> mShowIconBack) { 1205 if (p-> mShowIconBack) {
1205 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 1206 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
1206 connect( action, SIGNAL( activated() ), 1207 connect( action, SIGNAL( activated() ),
1207 mView, SLOT( goPrevious() ) ); 1208 mView, SLOT( goPrevious() ) );
1208 action->addTo( navigatorToolBar ); 1209 action->addTo( navigatorToolBar );
1209 } 1210 }
1210 icon = loadPixmap( pathString + "today" ); 1211 icon = loadPixmap( pathString + "today" );
1211 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); 1212 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130);
1212 if (p-> mShowIconToday) 1213 if (p-> mShowIconToday)
1213 today_action->addTo( navigatorToolBar ); 1214 today_action->addTo( navigatorToolBar );
1214 icon = loadPixmap( pathString + "1rightarrowB" ); 1215 icon = loadPixmap( pathString + "1rightarrowB" );
1215 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 1216 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
1216 if (p-> mShowIconForward) { 1217 if (p-> mShowIconForward) {
1217 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 1218 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
1218 connect( action, SIGNAL( activated() ), 1219 connect( action, SIGNAL( activated() ),
1219 mView, SLOT( goNext() ) ); 1220 mView, SLOT( goNext() ) );
1220 action->addTo( navigatorToolBar ); 1221 action->addTo( navigatorToolBar );
1221 } 1222 }
1222 icon = loadPixmap( pathString + "2rightarrowB" ); 1223 icon = loadPixmap( pathString + "2rightarrowB" );
1223 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 1224 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
1224 if (p-> mShowIconForwardFast) { 1225 if (p-> mShowIconForwardFast) {
1225 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 1226 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
1226 connect( action, SIGNAL( activated() ), 1227 connect( action, SIGNAL( activated() ),
1227 mView, SLOT( goNextMonth() ) ); 1228 mView, SLOT( goNextMonth() ) );
1228 action->addTo( navigatorToolBar ); 1229 action->addTo( navigatorToolBar );
1229 } 1230 }
1230 1231
1231 1232
1232 configureToolBarMenu->insertItem(i18n("What's This?"), 300, 6); 1233 configureToolBarMenu->insertItem(i18n("What's This?"), 300, 6);
1233 1234
1234 1235
1235 if ( p->mShowIconNavigator ) configureToolBarMenu->setItemChecked( 22 , true); 1236 if ( p->mShowIconNavigator ) configureToolBarMenu->setItemChecked( 22 , true);
1236 if ( p->mShowIconAllday ) configureToolBarMenu->setItemChecked( 24 , true); 1237 if ( p->mShowIconAllday ) configureToolBarMenu->setItemChecked( 24 , true);
1237 if ( p->mShowIconFilterview ) configureToolBarMenu->setItemChecked( 26 , true); 1238 if ( p->mShowIconFilterview ) configureToolBarMenu->setItemChecked( 26 , true);
1238 if ( p->mShowIconToggleFull ) configureToolBarMenu->setItemChecked( 28 , true); 1239 if ( p->mShowIconToggleFull ) configureToolBarMenu->setItemChecked( 28 , true);
1239 1240
1240 if (p-> mShowIconNewEvent) 1241 if (p-> mShowIconNewEvent)
1241 configureToolBarMenu->setItemChecked( 10, true ); 1242 configureToolBarMenu->setItemChecked( 10, true );
1242 if (p->mShowIconNewTodo ) 1243 if (p->mShowIconNewTodo )
1243 configureToolBarMenu->setItemChecked( 20, true ); 1244 configureToolBarMenu->setItemChecked( 20, true );
1244 if (p-> mShowIconSearch) 1245 if (p-> mShowIconSearch)
1245 configureToolBarMenu->setItemChecked( 120, true ); 1246 configureToolBarMenu->setItemChecked( 120, true );
1246 if (p-> mShowIconList) 1247 if (p-> mShowIconList)
1247 configureToolBarMenu->setItemChecked( 30, true ); 1248 configureToolBarMenu->setItemChecked( 30, true );
1248 if (p-> mShowIconDay1) 1249 if (p-> mShowIconDay1)
1249 configureToolBarMenu->setItemChecked( 40, true ); 1250 configureToolBarMenu->setItemChecked( 40, true );
1250 if (p-> mShowIconDay5) 1251 if (p-> mShowIconDay5)
1251 configureToolBarMenu->setItemChecked( 50, true ); 1252 configureToolBarMenu->setItemChecked( 50, true );
1252 if (p-> mShowIconDay6) 1253 if (p-> mShowIconDay6)
1253 configureToolBarMenu->setItemChecked( 75, true ); 1254 configureToolBarMenu->setItemChecked( 75, true );
1254 if (p-> mShowIconDay7) 1255 if (p-> mShowIconDay7)
1255 configureToolBarMenu->setItemChecked( 60, true ); 1256 configureToolBarMenu->setItemChecked( 60, true );
1256 if (p-> mShowIconMonth) 1257 if (p-> mShowIconMonth)
1257 configureToolBarMenu->setItemChecked( 70, true ); 1258 configureToolBarMenu->setItemChecked( 70, true );
1258 if (p-> mShowIconTodoview) 1259 if (p-> mShowIconTodoview)
1259 configureToolBarMenu->setItemChecked( 80, true ); 1260 configureToolBarMenu->setItemChecked( 80, true );
1260 if (p-> mShowIconBackFast) 1261 if (p-> mShowIconBackFast)
1261 configureToolBarMenu->setItemChecked( 200, true ); 1262 configureToolBarMenu->setItemChecked( 200, true );
1262 if (p-> mShowIconBack) 1263 if (p-> mShowIconBack)
1263 configureToolBarMenu->setItemChecked( 210, true ); 1264 configureToolBarMenu->setItemChecked( 210, true );
1264 if (p-> mShowIconToday) 1265 if (p-> mShowIconToday)
1265 configureToolBarMenu->setItemChecked( 130, true ); 1266 configureToolBarMenu->setItemChecked( 130, true );
1266 if (p-> mShowIconForward) 1267 if (p-> mShowIconForward)
1267 configureToolBarMenu->setItemChecked( 220, true ); 1268 configureToolBarMenu->setItemChecked( 220, true );
1268 if (p-> mShowIconForwardFast) 1269 if (p-> mShowIconForwardFast)
1269 configureToolBarMenu->setItemChecked( 230, true ); 1270 configureToolBarMenu->setItemChecked( 230, true );
1270 if (p-> mShowIconNextDays) 1271 if (p-> mShowIconNextDays)
1271 configureToolBarMenu->setItemChecked( 100, true ); 1272 configureToolBarMenu->setItemChecked( 100, true );
1272 if (p-> mShowIconNext) 1273 if (p-> mShowIconNext)
1273 configureToolBarMenu->setItemChecked( 110, true ); 1274 configureToolBarMenu->setItemChecked( 110, true );
1274 if (p-> mShowIconJournal) 1275 if (p-> mShowIconJournal)
1275 configureToolBarMenu->setItemChecked( 90, true ); 1276 configureToolBarMenu->setItemChecked( 90, true );
1276 if (p-> mShowIconWhatsThis) 1277 if (p-> mShowIconWhatsThis)
1277 configureToolBarMenu->setItemChecked( 300, true ); 1278 configureToolBarMenu->setItemChecked( 300, true );
1278 if (p-> mShowIconWeekNum) 1279 if (p-> mShowIconWeekNum)
1279 configureToolBarMenu->setItemChecked( 400, true ); 1280 configureToolBarMenu->setItemChecked( 400, true );
1280 if (!p-> mShowIconStretch) { 1281 if (!p-> mShowIconStretch) {
1281 QLabel* dummy = new QLabel( iconToolBar ); 1282 QLabel* dummy = new QLabel( iconToolBar );
1282 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 1283 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
1283 dummy->setMinimumWidth( 0 ); 1284 dummy->setMinimumWidth( 0 );
1284 iconToolBar->setStretchableWidget ( dummy ) ; 1285 iconToolBar->setStretchableWidget ( dummy ) ;
1285 } 1286 }
1286 else { 1287 else {
1287 iconToolBar->setHorizontalStretchable (true ); 1288 iconToolBar->setHorizontalStretchable (true );
1288 viewToolBar->setHorizontalStretchable (true ); 1289 viewToolBar->setHorizontalStretchable (true );
1289 navigatorToolBar->setHorizontalStretchable (true ); 1290 navigatorToolBar->setHorizontalStretchable (true );
1290 iconToolBar->setVerticalStretchable (true ); 1291 iconToolBar->setVerticalStretchable (true );
1291 viewToolBar->setVerticalStretchable (true ); 1292 viewToolBar->setVerticalStretchable (true );
1292 navigatorToolBar->setVerticalStretchable (true ); 1293 navigatorToolBar->setVerticalStretchable (true );
1293 configureToolBarMenu->setItemChecked( 5, true ); 1294 configureToolBarMenu->setItemChecked( 5, true );
1294 } 1295 }
1295 if (p-> mShowIconFilter) 1296 if (p-> mShowIconFilter)
1296 configureToolBarMenu->setItemChecked( 7, true ); 1297 configureToolBarMenu->setItemChecked( 7, true );
1297 if (p-> mShowIconOnetoolbar) 1298 if (p-> mShowIconOnetoolbar)
1298 configureToolBarMenu->setItemChecked( 6, true ); 1299 configureToolBarMenu->setItemChecked( 6, true );
1299 1300
1300 1301
1301 if ( filterMenubar ) { 1302 if ( filterMenubar ) {
1302 filterMenubar->reparent(filterToolBar,0,QPoint(0,0) ); 1303 filterMenubar->reparent(filterToolBar,0,QPoint(0,0) );
1303 connect( mView->filterView(), SIGNAL( filterChanged() ), SLOT( updateFilterToolbar() ) ); 1304 connect( mView->filterView(), SIGNAL( filterChanged() ), SLOT( updateFilterToolbar() ) );
1304 } 1305 }
1305 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 1306 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
1306 configureAgenda( p->mHourSize ); 1307 configureAgenda( p->mHourSize );
1307 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 1308 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
1308} 1309}
1309 1310
1310void MainWindow::exportToPhone( int mode ) 1311void MainWindow::exportToPhone( int mode )
1311{ 1312{
1312 1313
1313 //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1314 //ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1314 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1315 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1315 KOex2phonePrefs ex2phone; 1316 KOex2phonePrefs ex2phone;
1316 1317
1317 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection ); 1318 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
1318 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice ); 1319 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
1319 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1320 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
1320 if ( mode == 1 ) 1321 if ( mode == 1 )
1321 ex2phone.setCaption(i18n("Export complete calendar")); 1322 ex2phone.setCaption(i18n("Export complete calendar"));
1322 if ( mode == 2 ) 1323 if ( mode == 2 )
1323 ex2phone.setCaption(i18n("Export filtered calendar")); 1324 ex2phone.setCaption(i18n("Export filtered calendar"));
1324 1325
1325 if ( !ex2phone.exec() ) { 1326 if ( !ex2phone.exec() ) {
1326 return; 1327 return;
1327 } 1328 }
1328 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 1329 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
1329 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 1330 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
1330 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 1331 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
1331 1332
1332 int inFuture = 0; 1333 int inFuture = 0;
1333 if ( ex2phone.mWriteBackFuture->isChecked() ) 1334 if ( ex2phone.mWriteBackFuture->isChecked() )
1334 inFuture = ex2phone.mWriteBackFutureWeeks->value(); 1335 inFuture = ex2phone.mWriteBackFutureWeeks->value();
1335 QPtrList<Incidence> delSel; 1336 QPtrList<Incidence> delSel;
1336 if ( mode == 1 ) 1337 if ( mode == 1 )
1337 delSel = mCalendar->rawIncidences(); 1338 delSel = mCalendar->rawIncidences();
1338 if ( mode == 2 ) 1339 if ( mode == 2 )
1339 delSel = mCalendar->incidences(); 1340 delSel = mCalendar->incidences();
1340 CalendarLocal* cal = new CalendarLocal(); 1341 CalendarLocal* cal = new CalendarLocal();
1341 cal->setLocalTime(); 1342 cal->setLocalTime();
1342 Incidence *incidence = delSel.first(); 1343 Incidence *incidence = delSel.first();
1343 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 1344 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1344 QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); 1345 QDateTime end = cur.addDays( ( inFuture +1 ) *7 );
1345 while ( incidence ) { 1346 while ( incidence ) {
1346 if ( incidence->typeID() != journalID ) { 1347 if ( incidence->typeID() != journalID ) {
1347 bool add = true; 1348 bool add = true;
1348 if ( inFuture ) { 1349 if ( inFuture ) {
1349 QDateTime dt; 1350 QDateTime dt;
1350 if ( incidence->typeID() == todoID ) { 1351 if ( incidence->typeID() == todoID ) {
1351 Todo * t = (Todo*)incidence; 1352 Todo * t = (Todo*)incidence;
1352 if ( t->hasDueDate() ) 1353 if ( t->hasDueDate() )
1353 dt = t->dtDue(); 1354 dt = t->dtDue();
1354 else 1355 else
1355 dt = cur.addSecs( 62 ); 1356 dt = cur.addSecs( 62 );
1356 } 1357 }
1357 else { 1358 else {
1358 bool ok; 1359 bool ok;
1359 dt = incidence->getNextOccurence( cur, &ok ); 1360 dt = incidence->getNextOccurence( cur, &ok );
1360 if ( !ok ) 1361 if ( !ok )
1361 dt = cur.addSecs( -62 ); 1362 dt = cur.addSecs( -62 );
1362 } 1363 }
1363 if ( dt < cur || dt > end ) { 1364 if ( dt < cur || dt > end ) {
1364 add = false; 1365 add = false;
1365 } 1366 }
1366 } 1367 }
1367 if ( add ) { 1368 if ( add ) {
1368 Incidence *in = incidence->clone(); 1369 Incidence *in = incidence->clone();
1369 cal->addIncidence( in ); 1370 cal->addIncidence( in );
1370 } 1371 }
1371 } 1372 }
1372 incidence = delSel.next(); 1373 incidence = delSel.next();
1373 } 1374 }
1374 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice, 1375 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
1375 KPimGlobalPrefs::instance()->mEx2PhoneConnection, 1376 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
1376 KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1377 KPimGlobalPrefs::instance()->mEx2PhoneModel );
1377 1378
1378 setCaption( i18n("Writing to phone...")); 1379 setCaption( i18n("Writing to phone..."));
1379 if ( PhoneFormat::writeToPhone( cal ) ) 1380 if ( PhoneFormat::writeToPhone( cal ) )
1380 setCaption( i18n("Export to phone successful!")); 1381 setCaption( i18n("Export to phone successful!"));
1381 else 1382 else
1382 setCaption( i18n("Error exporting to phone!")); 1383 setCaption( i18n("Error exporting to phone!"));
1383 delete cal; 1384 delete cal;
1384} 1385}
1385 1386
1386 1387
1387void MainWindow::setDefaultPreferences() 1388void MainWindow::setDefaultPreferences()
1388{ 1389{
1389 KOPrefs *p = KOPrefs::instance(); 1390 KOPrefs *p = KOPrefs::instance();
1390 1391
1391 p->mCompactDialogs = true; 1392 p->mCompactDialogs = true;
1392 p->mConfirm = true; 1393 p->mConfirm = true;
1393 // p->mEnableQuickTodo = false; 1394 // p->mEnableQuickTodo = false;
1394 1395
1395} 1396}
1396 1397
1397QString MainWindow::resourcePath() 1398QString MainWindow::resourcePath()
1398{ 1399{
1399 return KGlobal::iconLoader()->iconPath(); 1400 return KGlobal::iconLoader()->iconPath();
1400} 1401}
1401 1402
1402void MainWindow::displayText( QString text ,QString cap ) 1403void MainWindow::displayText( QString text ,QString cap )
1403{ 1404{
1404 QDialog dia( this, "name", true ); ; 1405 QDialog dia( this, "name", true ); ;
1405 dia.setCaption( cap ); 1406 dia.setCaption( cap );
1406 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1407 QVBoxLayout* lay = new QVBoxLayout( &dia );
1407 lay->setSpacing( 3 ); 1408 lay->setSpacing( 3 );
1408 lay->setMargin( 3 ); 1409 lay->setMargin( 3 );
1409 QTextBrowser tb ( &dia ); 1410 QTextBrowser tb ( &dia );
1410 lay->addWidget( &tb ); 1411 lay->addWidget( &tb );
1411 tb.setText( text ); 1412 tb.setText( text );
1412#ifdef DESKTOP_VERSION 1413#ifdef DESKTOP_VERSION
1413 dia.resize( 640, 480); 1414 dia.resize( 640, 480);
1414#else 1415#else
1415 dia.showMaximized(); 1416 dia.showMaximized();
1416#endif 1417#endif
1417 dia.exec(); 1418 dia.exec();
1418} 1419}
1419 1420
1420void MainWindow::features() 1421void MainWindow::features()
1421{ 1422{
1422 1423
1423 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" ); 1424 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" );
1424} 1425}
1425 1426
1426void MainWindow::usertrans() 1427void MainWindow::usertrans()
1427{ 1428{
1428 1429
1429 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" ); 1430 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" );
1430} 1431}
1431 1432
1432void MainWindow::storagehowto() 1433void MainWindow::storagehowto()
1433{ 1434{
1434 KApplication::showFile( "KDE-Pim/Pi Storage HowTo", "kdepim/storagehowto.txt" ); 1435 KApplication::showFile( "KDE-Pim/Pi Storage HowTo", "kdepim/storagehowto.txt" );
1435} 1436}
1436void MainWindow::timetrackinghowto() 1437void MainWindow::timetrackinghowto()
1437{ 1438{
1438 KApplication::showFile( "KO/Pi Timetracking HowTo", "kdepim/timetrackerhowto.txt" ); 1439 KApplication::showFile( "KO/Pi Timetracking HowTo", "kdepim/timetrackerhowto.txt" );
1439} 1440}
1440void MainWindow::kdesynchowto() 1441void MainWindow::kdesynchowto()
1441{ 1442{
1442 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" ); 1443 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" );
1443} 1444}
1444void MainWindow::multisynchowto() 1445void MainWindow::multisynchowto()
1445{ 1446{
1446 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" ); 1447 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" );
1447} 1448}
1448void MainWindow::synchowto() 1449void MainWindow::synchowto()
1449{ 1450{
1450 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 1451 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
1451} 1452}
1452void MainWindow::faq() 1453void MainWindow::faq()
1453{ 1454{
1454 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" ); 1455 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" );
1455 1456
1456} 1457}
1457void MainWindow::whatsNew() 1458void MainWindow::whatsNew()
1458{ 1459{
1459 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 1460 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
1460 1461
1461} 1462}
1462void MainWindow::licence() 1463void MainWindow::licence()
1463{ 1464{
1464 KApplication::showLicence(); 1465 KApplication::showLicence();
1465 1466
1466} 1467}
1467void MainWindow::about() 1468void MainWindow::about()
1468{ 1469{
1469 QString version; 1470 QString version;
1470#include <../version> 1471#include <../version>
1471 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1472 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1472 i18n("KOrganizer/Platform-independent\n") + 1473 i18n("KOrganizer/Platform-independent\n") +
1473 "(KO/Pi) " + version + " - " + 1474 "(KO/Pi) " + version + " - " +
1474 1475
1475#ifdef DESKTOP_VERSION 1476#ifdef DESKTOP_VERSION
1476 i18n("Desktop Edition\n") + 1477 i18n("Desktop Edition\n") +
1477#else 1478#else
1478 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") + 1479 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") +
1479#endif 1480#endif
1480 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") ); 1481 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") );
1481} 1482}
1482void MainWindow::keyBindings() 1483void MainWindow::keyBindings()
1483{ 1484{
1484 QString cap = i18n("KO/Pi Keys + Colors"); 1485 QString cap = i18n("KO/Pi Keys + Colors");
1485 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1486 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1486 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1487 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1487 i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") + 1488 i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") +
1488 i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") + 1489 i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") +
1489 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1490 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1490 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1491 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1491 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1492 i18n("<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n")+
1492 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1493 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1493 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1494 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1494 i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+ 1495 i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+
1495 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1496 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1496 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1497 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1497 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1498 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1498 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+ 1499 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+
1499 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1500 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1500 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1501 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1501 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+ 1502 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+
1502 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1503 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1503 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1504 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1504 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1505 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1505 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1506 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1506 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1507 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1507 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1508 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1508 i18n("<p><h3>In agenda view:</h3></p>\n") + 1509 i18n("<p><h3>In agenda view:</h3></p>\n") +
1509 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1510 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1510 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1511 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1511 i18n("<p><h3>In todo view:</h3></p>\n") + 1512 i18n("<p><h3>In todo view:</h3></p>\n") +
1512 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ 1513 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+
1513 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ 1514 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+
1514 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ 1515 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+
1515 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1516 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1516 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1517 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1517 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1518 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1518 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1519 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1519 i18n("<p><h3>In list view:</h3></p>\n") + 1520 i18n("<p><h3>In list view:</h3></p>\n") +
1520 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1521 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1521 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1522 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1522 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1523 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1523 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1524 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1524 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1525 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1525 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1526 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1526 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1527 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1527 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1528 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1528 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1529 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1529 i18n("<p><b>E</b>: Edit item</p>\n") + 1530 i18n("<p><b>E</b>: Edit item</p>\n") +
1530 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1531 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1531 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1532 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1532 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1533 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1533 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1534 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1534 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1535 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1535 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1536 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1536 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1537 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1537 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1538 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1538 i18n("<p><b>White</b>: Item readonly</p>\n"); 1539 i18n("<p><b>White</b>: Item readonly</p>\n");
1539 displayText( text, cap); 1540 displayText( text, cap);
1540} 1541}
1541void MainWindow::aboutAutoSaving() 1542void MainWindow::aboutAutoSaving()
1542{ 1543{
1543 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"); 1544 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n");
1544 1545
1545 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text); 1546 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text);
1546 1547
1547} 1548}
1548void MainWindow::aboutKnownBugs() 1549void MainWindow::aboutKnownBugs()
1549{ 1550{
1550 QMessageBox* msg; 1551 QMessageBox* msg;
1551 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1552 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1552 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ 1553 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+
1553 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1554 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1554 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") + 1555 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") +
1555 i18n("\nor report them in the bugtracker on\n") + 1556 i18n("\nor report them in the bugtracker on\n") +
1556 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1557 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1557 QMessageBox::NoIcon, 1558 QMessageBox::NoIcon,
1558 QMessageBox::Ok, 1559 QMessageBox::Ok,
1559 QMessageBox::NoButton, 1560 QMessageBox::NoButton,
1560 QMessageBox::NoButton); 1561 QMessageBox::NoButton);
1561 msg->exec(); 1562 msg->exec();
1562 delete msg; 1563 delete msg;
1563 1564
1564} 1565}
1565 1566
1566QString MainWindow::defaultFileName() 1567QString MainWindow::defaultFileName()
1567{ 1568{
1568 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1569 return locateLocal( "data", "korganizer/mycalendar.ics" );
1569} 1570}
1570QString MainWindow::syncFileName() 1571QString MainWindow::syncFileName()
1571{ 1572{
1572#ifdef DESKTOP_VERSION 1573#ifdef DESKTOP_VERSION
1573 return locateLocal( "tmp", "synccalendar.ics" ); 1574 return locateLocal( "tmp", "synccalendar.ics" );
1574#else 1575#else
1575 return QString( "/tmp/synccalendar.ics" ); 1576 return QString( "/tmp/synccalendar.ics" );
1576#endif 1577#endif
1577} 1578}
1578#include "koglobals.h" 1579#include "koglobals.h"
1579#include <kcalendarsystem.h> 1580#include <kcalendarsystem.h>
1580void MainWindow::updateWeek(QDate seda) 1581void MainWindow::updateWeek(QDate seda)
1581{ 1582{
1582 int weekNum = KGlobal::locale()->weekNum ( seda ); 1583 int weekNum = KGlobal::locale()->weekNum ( seda );
1583 mWeekPixmap.fill( mWeekBgColor ); 1584 mWeekPixmap.fill( mWeekBgColor );
1584 QPainter p ( &mWeekPixmap ); 1585 QPainter p ( &mWeekPixmap );
1585 p.setFont( mWeekFont ); 1586 p.setFont( mWeekFont );
1586 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) ); 1587 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) );
1587 p.end(); 1588 p.end();
1588 QIconSet icon3 ( mWeekPixmap ); 1589 QIconSet icon3 ( mWeekPixmap );
1589 mWeekAction->setIconSet ( icon3 ); 1590 mWeekAction->setIconSet ( icon3 );
1590 1591
1591} 1592}
1592void MainWindow::updateWeekNum(const DateList &selectedDates) 1593void MainWindow::updateWeekNum(const DateList &selectedDates)
1593{ 1594{
1594 updateWeek( selectedDates.first() ); 1595 updateWeek( selectedDates.first() );
1595} 1596}
1596void MainWindow::processIncidenceSelection( Incidence *incidence ) 1597void MainWindow::processIncidenceSelection( Incidence *incidence )
1597{ 1598{
1598 1599
1599 if ( !incidence ) { 1600 if ( !incidence ) {
1600 enableIncidenceActions( false ); 1601 enableIncidenceActions( false );
1601 1602
1602 mNewSubTodoAction->setEnabled( false ); 1603 mNewSubTodoAction->setEnabled( false );
1603 setCaptionToDates(); 1604 setCaptionToDates();
1604 return; 1605 return;
1605 1606
1606 } 1607 }
1607 1608
1608 //KGlobal::locale()->formatDateTime(nextA, true); 1609 //KGlobal::locale()->formatDateTime(nextA, true);
1609 QString startString = ""; 1610 QString startString = "";
1610 if ( incidence->typeID() != todoID ) { 1611 if ( incidence->typeID() != todoID ) {
1611 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1612 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1612 if ( incidence->doesFloat() ) { 1613 if ( incidence->doesFloat() ) {
1613 startString += ": "+incidence->dtStartDateStr( true ); 1614 startString += ": "+incidence->dtStartDateStr( true );
1614 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1615 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1615 1616
1616 } else { 1617 } else {
1617 startString = ": "+incidence->dtStartStr(true); 1618 startString = ": "+incidence->dtStartStr(true);
1618 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1619 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1619 1620
1620 } 1621 }
1621 1622
1622 } else { 1623 } else {
1623 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1624 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1624 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1625 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1625 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1626 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1626 1627
1627 if ( incidence->isBirthday() || incidence->isAnniversary() ) { 1628 if ( incidence->isBirthday() || incidence->isAnniversary() ) {
1628 bool ok; 1629 bool ok;
1629 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok ); 1630 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok );
1630 if ( ok ) { 1631 if ( ok ) {
1631 int years = noc.date().year() - incidence->dtStart().date().year(); 1632 int years = noc.date().year() - incidence->dtStart().date().year();
1632 startString += i18n(" (%1 y.)"). arg( years ); 1633 startString += i18n(" (%1 y.)"). arg( years );
1633 } 1634 }
1634 } 1635 }
1635 else 1636 else
1636 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1637 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1637 } 1638 }
1638 1639
1639 } 1640 }
1640 else 1641 else
1641 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1642 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1642 if ( !incidence->location().isEmpty() ) 1643 if ( !incidence->location().isEmpty() )
1643 startString += " (" +incidence->location()+")"; 1644 startString += " (" +incidence->location()+")";
1644 setCaption( incidence->summary()+startString); 1645 setCaption( incidence->summary()+startString);
1645 1646
1646 enableIncidenceActions( true ); 1647 enableIncidenceActions( true );
1647 1648
1648 if ( incidence->typeID() == eventID ) { 1649 if ( incidence->typeID() == eventID ) {
1649 mShowAction->setText( i18n("Show Event...") ); 1650 mShowAction->setText( i18n("Show Event...") );
1650 mEditAction->setText( i18n("Edit Event...") ); 1651 mEditAction->setText( i18n("Edit Event...") );
1651 mDeleteAction->setText( i18n("Delete Event...") ); 1652 mDeleteAction->setText( i18n("Delete Event...") );
1652 1653
1653 mNewSubTodoAction->setEnabled( false ); 1654 mNewSubTodoAction->setEnabled( false );
1654 } else if ( incidence->typeID() == todoID ) { 1655 } else if ( incidence->typeID() == todoID ) {
1655 mShowAction->setText( i18n("Show Todo...") ); 1656 mShowAction->setText( i18n("Show Todo...") );
1656 mEditAction->setText( i18n("Edit Todo...") ); 1657 mEditAction->setText( i18n("Edit Todo...") );
1657 mDeleteAction->setText( i18n("Delete Todo...") ); 1658 mDeleteAction->setText( i18n("Delete Todo...") );
1658 1659
1659 mNewSubTodoAction->setEnabled( true ); 1660 mNewSubTodoAction->setEnabled( true );
1660 } else { 1661 } else {
1661 mShowAction->setText( i18n("Show...") ); 1662 mShowAction->setText( i18n("Show...") );
1662 mShowAction->setText( i18n("Edit...") ); 1663 mShowAction->setText( i18n("Edit...") );
1663 mShowAction->setText( i18n("Delete...") ); 1664 mShowAction->setText( i18n("Delete...") );
1664 1665
1665 mNewSubTodoAction->setEnabled( false ); 1666 mNewSubTodoAction->setEnabled( false );
1666 } 1667 }
1667} 1668}
1668 1669
1669void MainWindow::enableIncidenceActions( bool enabled ) 1670void MainWindow::enableIncidenceActions( bool enabled )
1670{ 1671{
1671 mShowAction->setEnabled( enabled ); 1672 mShowAction->setEnabled( enabled );
1672 mEditAction->setEnabled( enabled ); 1673 mEditAction->setEnabled( enabled );
1673 mDeleteAction->setEnabled( enabled ); 1674 mDeleteAction->setEnabled( enabled );
1674 1675
1675 mCloneAction->setEnabled( enabled ); 1676 mCloneAction->setEnabled( enabled );
1676 mMoveAction->setEnabled( enabled ); 1677 mMoveAction->setEnabled( enabled );
1677 mBeamAction->setEnabled( enabled ); 1678 mBeamAction->setEnabled( enabled );
1678 mCancelAction->setEnabled( enabled ); 1679 mCancelAction->setEnabled( enabled );
1679} 1680}
1680 1681
1681void MainWindow::importOL() 1682void MainWindow::importOL()
1682{ 1683{
1683#ifdef _OL_IMPORT_ 1684#ifdef _OL_IMPORT_
1684 mView->clearAllViews(); 1685 mView->clearAllViews();
1685 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1686 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1686 id->exec(); 1687 id->exec();
1687 delete id; 1688 delete id;
1688 mView->calendar()->checkAlarmForIncidence( 0, true ); 1689 mView->calendar()->checkAlarmForIncidence( 0, true );
1689 mView->updateView(); 1690 mView->updateView();
1690#endif 1691#endif
1691} 1692}
1692void MainWindow::importBday() 1693void MainWindow::importBday()
1693{ 1694{
1694 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1695 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1695 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1696 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1696 i18n("Import!"), i18n("Cancel"), 0, 1697 i18n("Import!"), i18n("Cancel"), 0,
1697 0, 1 ); 1698 0, 1 );
1698 if ( result == 0 ) { 1699 if ( result == 0 ) {
1699 mView->importBday(); 1700 mView->importBday();
1700 1701
1701 } 1702 }
1702 1703
1703 1704
1704} 1705}
1705void MainWindow::importQtopia() 1706void MainWindow::importQtopia()
1706{ 1707{
1707 //#ifndef DESKTOP_VERSION 1708 //#ifndef DESKTOP_VERSION
1708 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"); 1709 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing");
1709#ifdef DESKTOP_VERSION 1710#ifdef DESKTOP_VERSION
1710 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml"); 1711 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml");
1711#endif 1712#endif
1712 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, 1713 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess,
1713 i18n("Import!"), i18n("Cancel"), 0, 1714 i18n("Import!"), i18n("Cancel"), 0,
1714 0, 1 ); 1715 0, 1 );
1715 if ( result == 0 ) { 1716 if ( result == 0 ) {
1716#ifndef DESKTOP_VERSION 1717#ifndef DESKTOP_VERSION
1717 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1718 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1718 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1719 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1719 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1720 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1720#else 1721#else
1721 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; 1722 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml";
1722 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; 1723 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml";
1723 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; 1724 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml";
1724#endif 1725#endif
1725 mView->importQtopia( categories, datebook, todolist ); 1726 mView->importQtopia( categories, datebook, todolist );
1726 } 1727 }
1727 mView->calendar()->reInitAlarmSettings(); 1728 mView->calendar()->reInitAlarmSettings();
1728#if 0 1729#if 0
1729 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1730 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1730 i18n("Not supported \non desktop!\n"), 1731 i18n("Not supported \non desktop!\n"),
1731 i18n("Ok"), i18n("Cancel"), 0, 1732 i18n("Ok"), i18n("Cancel"), 0,
1732 0, 1 ); 1733 0, 1 );
1733 1734
1734#endif 1735#endif
1735} 1736}
1736 1737
1737void MainWindow::saveOnClose() 1738void MainWindow::saveOnClose()
1738{ 1739{
1739 KOPrefs *p = KOPrefs::instance(); 1740 KOPrefs *p = KOPrefs::instance();
1740 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1741 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1741 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal ); 1742 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal );
1742 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal ); 1743 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal );
1743 if ( filterToolBar ) { 1744 if ( filterToolBar ) {
1744 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal ); 1745 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal );
1745 } 1746 }
1746#ifdef DESKTOP_VERSION 1747#ifdef DESKTOP_VERSION
1747 1748
1748 QPoint myP; 1749 QPoint myP;
1749 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) ); 1750 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) );
1750 if ( p->mToolBarHor ) 1751 if ( p->mToolBarHor )
1751 p->mToolBarUp = myP.y() > height()/2; 1752 p->mToolBarUp = myP.y() > height()/2;
1752 else 1753 else
1753 p->mToolBarUp = myP.x() > width()/2; 1754 p->mToolBarUp = myP.x() > width()/2;
1754 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) ); 1755 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) );
1755 if ( p->mToolBarHorV ) 1756 if ( p->mToolBarHorV )
1756 p->mToolBarUpV = myP.y() > height()/2; 1757 p->mToolBarUpV = myP.y() > height()/2;
1757 else 1758 else
1758 p->mToolBarUpV = myP.x() > width()/2 ; 1759 p->mToolBarUpV = myP.x() > width()/2 ;
1759 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) ); 1760 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) );
1760 if ( p->mToolBarHorN ) 1761 if ( p->mToolBarHorN )
1761 p->mToolBarUpN = myP.y() > height()/2; 1762 p->mToolBarUpN = myP.y() > height()/2;
1762 else 1763 else
1763 p->mToolBarUpN = myP.x() > width()/2 ; 1764 p->mToolBarUpN = myP.x() > width()/2 ;
1764 if ( filterToolBar ) { 1765 if ( filterToolBar ) {
1765 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) ); 1766 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) );
1766 if ( p->mToolBarHorF ) 1767 if ( p->mToolBarHorF )
1767 p->mToolBarUpF = myP.y() > height()/2; 1768 p->mToolBarUpF = myP.y() > height()/2;
1768 else 1769 else
1769 p->mToolBarUpF = myP.x() > width()/2 ; 1770 p->mToolBarUpF = myP.x() > width()/2 ;
1770 } 1771 }
1771#else 1772#else
1772 if ( p->mToolBarHor ) 1773 if ( p->mToolBarHor )
1773 p->mToolBarUp = iconToolBar->y() > height()/2; 1774 p->mToolBarUp = iconToolBar->y() > height()/2;
1774 else 1775 else
1775 p->mToolBarUp = iconToolBar->x() > width()/2; 1776 p->mToolBarUp = iconToolBar->x() > width()/2;
1776 if ( p->mToolBarHorV ) 1777 if ( p->mToolBarHorV )
1777 p->mToolBarUpV = viewToolBar->y() > height()/2; 1778 p->mToolBarUpV = viewToolBar->y() > height()/2;
1778 else 1779 else
1779 p->mToolBarUpV = viewToolBar->x() > width()/2 ; 1780 p->mToolBarUpV = viewToolBar->x() > width()/2 ;
1780 1781
1781 if ( p->mToolBarHorN ) 1782 if ( p->mToolBarHorN )
1782 p->mToolBarUpN = navigatorToolBar->y() > height()/2; 1783 p->mToolBarUpN = navigatorToolBar->y() > height()/2;
1783 else 1784 else
1784 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; 1785 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ;
1785 if ( filterToolBar ) { 1786 if ( filterToolBar ) {
1786 if ( p->mToolBarHorF ) 1787 if ( p->mToolBarHorF )
1787 p->mToolBarUpF = filterToolBar->y() > height()/2; 1788 p->mToolBarUpF = filterToolBar->y() > height()/2;
1788 else 1789 else
1789 p->mToolBarUpF = filterToolBar->x() > width()/2 ; 1790 p->mToolBarUpF = filterToolBar->x() > width()/2 ;
1790 } 1791 }
1791#endif 1792#endif
1792 1793
1793 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) 1794 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
1794 save(); 1795 save();
1795 mView->writeSettings(); 1796 mView->writeSettings();
1796} 1797}
1797void MainWindow::slotModifiedChanged( bool changed ) 1798void MainWindow::slotModifiedChanged( bool changed )
1798{ 1799{
1799 if ( mBlockAtStartup ) 1800 if ( mBlockAtStartup )
1800 return; 1801 return;
1801 1802
1802 int msec; 1803 int msec;
1803 // we store the changes after 1 minute, 1804 // we store the changes after 1 minute,
1804 // and for safety reasons after 10 minutes again 1805 // and for safety reasons after 10 minutes again
1805 if ( !mSyncManager->blockSave() ) 1806 if ( !mSyncManager->blockSave() )
1806 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1807 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1807 else 1808 else
1808 msec = 1000 * 600; 1809 msec = 1000 * 600;
1809 mSaveTimer.start( msec, true ); // 1 minute 1810 mSaveTimer.start( msec, true ); // 1 minute
1810 qDebug("KO: Saving File in %d secs!", msec/1000); 1811 qDebug("KO: Saving File in %d secs!", msec/1000);
1811 mCalendarModifiedFlag = true; 1812 mCalendarModifiedFlag = true;
1812} 1813}
1813void MainWindow::saveStopTimer() 1814void MainWindow::saveStopTimer()
1814{ 1815{
1815 mSaveTimer.stop(); 1816 mSaveTimer.stop();
1816} 1817}
1817void MainWindow::save() 1818void MainWindow::save()
1818{ 1819{
1819 if ( !mCalendarModifiedFlag ) { 1820 if ( !mCalendarModifiedFlag ) {
1820 qDebug("KO: Calendar not modified. Nothing saved."); 1821 qDebug("KO: Calendar not modified. Nothing saved.");
1821 return; 1822 return;
1822 } 1823 }
1823 if ( mSyncManager->blockSave() ) 1824 if ( mSyncManager->blockSave() )
1824 return; 1825 return;
1825 mSyncManager->setBlockSave(true); 1826 mSyncManager->setBlockSave(true);
1826 if ( mView->checkFileVersion( defaultFileName()) ) { 1827 if ( mView->checkFileVersion( defaultFileName()) ) {
1827 if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ 1828 if ( KPimGlobalPrefs::instance()->mBackupEnabled ){
1828 QDate reference ( 2000,1,1); 1829 QDate reference ( 2000,1,1);
1829 int daysTo = reference.daysTo ( QDate::currentDate() ); 1830 int daysTo = reference.daysTo ( QDate::currentDate() );
1830 if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { 1831 if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) {
1831 setCaption(i18n("Creating backup ... please wait ..." )); 1832 setCaption(i18n("Creating backup ... please wait ..." ));
1832 qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); 1833 qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate);
1833 // we need the file path, the backup dir and the number of bups as param 1834 // we need the file path, the backup dir and the number of bups as param
1834 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; 1835 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir;
1835 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) 1836 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir)
1836 bupDir = KGlobalSettings::backupDataDir(); 1837 bupDir = KGlobalSettings::backupDataDir();
1837 int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); 1838 int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers );
1838 if ( retval == 0 ) { 1839 if ( retval == 0 ) {
1839 qDebug("KO: Backup cancelled. Will try again tomorrow "); 1840 qDebug("KO: Backup cancelled. Will try again tomorrow ");
1840 // retval == 0 : backup skipped for today, try again tomorrow 1841 // retval == 0 : backup skipped for today, try again tomorrow
1841 KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; 1842 KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1;
1842 } else if ( retval == 1 ){ 1843 } else if ( retval == 1 ){
1843 qDebug("KO: Backup created."); 1844 qDebug("KO: Backup created.");
1844 // backup ok 1845 // backup ok
1845 KOPrefs::instance()->mLastBackupDate = daysTo; 1846 KOPrefs::instance()->mLastBackupDate = daysTo;
1846 1847
1847 } else if ( retval == 2 ){ 1848 } else if ( retval == 2 ){
1848 qDebug("KO: Backup globally cancelled."); 1849 qDebug("KO: Backup globally cancelled.");
1849 // backup globally cancelled 1850 // backup globally cancelled
1850 KPimGlobalPrefs::instance()->mBackupEnabled = false; 1851 KPimGlobalPrefs::instance()->mBackupEnabled = false;
1851 } 1852 }
1852 // retval == 3: do nothing, try again later 1853 // retval == 3: do nothing, try again later
1853 } 1854 }
1854 ; // KPimGlobalPrefs::instance()->mLastBackupDate 1855 ; // KPimGlobalPrefs::instance()->mLastBackupDate
1855 } 1856 }
1856 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1857 QTime neededSaveTime = QDateTime::currentDateTime().time();
1857 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1858 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1858 qDebug("KO: Start saving data to file!"); 1859 qDebug("KO: Start saving data to file!");
1859 mView->saveCalendar( defaultFileName() ); 1860 mView->saveCalendar( defaultFileName() );
1860 mCalendarModifiedFlag = false; 1861 mCalendarModifiedFlag = false;
1861 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1862 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1862 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1863 qDebug("KO: Needed %d ms for saving.",msNeeded );
1863 QString savemes; 1864 QString savemes;
1864 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1865 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1865 setCaption(savemes); 1866 setCaption(savemes);
1866 } else 1867 } else
1867 setCaption(i18n("Saving cancelled!")); 1868 setCaption(i18n("Saving cancelled!"));
1868 mSyncManager->setBlockSave( false ); 1869 mSyncManager->setBlockSave( false );
1869} 1870}
1870 1871
1871void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1872void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1872{ 1873{
1873 if ( !e->isAutoRepeat() ) { 1874 if ( !e->isAutoRepeat() ) {
1874 mFlagKeyPressed = false; 1875 mFlagKeyPressed = false;
1875 } 1876 }
1876} 1877}
1877void MainWindow::keyPressEvent ( QKeyEvent * e ) 1878void MainWindow::keyPressEvent ( QKeyEvent * e )
1878{ 1879{
1879 qApp->processEvents(); 1880 qApp->processEvents();
1880 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1881 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1881 e->ignore(); 1882 e->ignore();
1882 // qDebug(" ignore %d",e->isAutoRepeat() ); 1883 // qDebug(" ignore %d",e->isAutoRepeat() );
1883 return; 1884 return;
1884 } 1885 }
1885 if (! e->isAutoRepeat() ) 1886 if (! e->isAutoRepeat() )
1886 mFlagKeyPressed = true; 1887 mFlagKeyPressed = true;
1887 KOPrefs *p = KOPrefs::instance(); 1888 KOPrefs *p = KOPrefs::instance();
1888 bool showSelectedDates = false; 1889 bool showSelectedDates = false;
1889 int size; 1890 int size;
1890 int pro = 0; 1891 int pro = 0;
1891 //qDebug("MainWindow::keyPressEvent "); 1892 //qDebug("MainWindow::keyPressEvent ");
1892 switch ( e->key() ) { 1893 switch ( e->key() ) {
1893 case Qt::Key_Right: 1894 case Qt::Key_Right:
1894 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1895 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1895 mView->goNextMonth(); 1896 mView->goNextMonth();
1896 else 1897 else
1897 mView->goNext(); 1898 mView->goNext();
1898 showSelectedDates = true; 1899 showSelectedDates = true;
1899 break; 1900 break;
1900 case Qt::Key_Left: 1901 case Qt::Key_Left:
1901 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1902 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1902 mView->goPreviousMonth(); 1903 mView->goPreviousMonth();
1903 else 1904 else
1904 mView->goPrevious(); 1905 mView->goPrevious();
1905 showSelectedDates = true; 1906 showSelectedDates = true;
1906 break; 1907 break;
1907 case Qt::Key_Down: 1908 case Qt::Key_Down:
1908 mView->viewManager()->agendaView()->scrollOneHourDown(); 1909 mView->viewManager()->agendaView()->scrollOneHourDown();
1909 break; 1910 break;
1910 case Qt::Key_Up: 1911 case Qt::Key_Up:
1911 mView->viewManager()->agendaView()->scrollOneHourUp(); 1912 mView->viewManager()->agendaView()->scrollOneHourUp();
1912 break; 1913 break;
1913 case Qt::Key_K: 1914 case Qt::Key_K:
1914 mView->viewManager()->showMonthViewWeek(); 1915 mView->viewManager()->showMonthViewWeek();
1915 break; 1916 break;
1916 case Qt::Key_I: 1917 case Qt::Key_I:
1917 mView->showIncidence(); 1918 mView->showIncidence();
1918 break; 1919 break;
1919 case Qt::Key_Delete: 1920 case Qt::Key_Delete:
1920 case Qt::Key_Backspace: 1921 case Qt::Key_Backspace:
1921 mView->deleteIncidence(); 1922 mView->deleteIncidence();
1922 break; 1923 break;
1923 case Qt::Key_D: 1924 case Qt::Key_D:
1924 mView->viewManager()->showDayView(); 1925 mView->viewManager()->showDayView();
1925 showSelectedDates = true; 1926 showSelectedDates = true;
1926 break; 1927 break;
1927 case Qt::Key_O: 1928 case Qt::Key_O:
1928 mView->toggleFilerEnabled( ); 1929 mView->toggleFilerEnabled( );
1929 break; 1930 break;
1930 case Qt::Key_0: 1931 case Qt::Key_0:
1931 case Qt::Key_1: 1932 case Qt::Key_1:
1932 case Qt::Key_2: 1933 case Qt::Key_2:
1933 case Qt::Key_3: 1934 case Qt::Key_3:
1934 case Qt::Key_4: 1935 case Qt::Key_4:
1935 case Qt::Key_5: 1936 case Qt::Key_5:
1936 case Qt::Key_6: 1937 case Qt::Key_6:
1937 case Qt::Key_7: 1938 case Qt::Key_7:
1938 case Qt::Key_8: 1939 case Qt::Key_8:
1939 case Qt::Key_9: 1940 case Qt::Key_9:
1940 pro = e->key()-48; 1941 pro = e->key()-48;
1941 if ( pro == 0 ) 1942 if ( pro == 0 )
1942 pro = 10; 1943 pro = 10;
1943 if ( e->state() == Qt::ControlButton) 1944 if ( e->state() == Qt::ControlButton)
1944 pro += 10; 1945 pro += 10;
1945 break; 1946 break;
1946 case Qt::Key_M: 1947 case Qt::Key_M:
1947 mView->viewManager()->showMonthView(); 1948 mView->viewManager()->showMonthView();
1948 showSelectedDates = true; 1949 showSelectedDates = true;
1949 break; 1950 break;
1950 case Qt::Key_Insert: 1951 case Qt::Key_Insert:
1951 mView->newEvent(); 1952 mView->newEvent();
1952 break; 1953 break;
1953 case Qt::Key_S : 1954 case Qt::Key_S :
1954 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1955 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1955 mView->newSubTodo(); 1956 mView->newSubTodo();
1956 else 1957 else
1957 mView->dialogManager()->showSearchDialog(); 1958 mView->dialogManager()->showSearchDialog();
1958 break; 1959 break;
1959 case Qt::Key_Y : 1960 case Qt::Key_Y :
1960 case Qt::Key_Z : 1961 case Qt::Key_Z :
1961 mView->viewManager()->showWorkWeekView(); 1962 mView->viewManager()->showWorkWeekView();
1962 showSelectedDates = true; 1963 showSelectedDates = true;
1963 break; 1964 break;
1964 case Qt::Key_U : 1965 case Qt::Key_U :
1965 mView->viewManager()->showWeekView(); 1966 mView->viewManager()->showWeekView();
1966 showSelectedDates = true; 1967 showSelectedDates = true;
1967 break; 1968 break;
1968 case Qt::Key_H : 1969 case Qt::Key_H :
1969 keyBindings(); 1970 keyBindings();
1970 break; 1971 break;
1971 case Qt::Key_W: 1972 case Qt::Key_W:
1972 mView->viewManager()->showWhatsNextView(); 1973 mView->viewManager()->showWhatsNextView();
1973 break; 1974 break;
1974 case Qt::Key_L: 1975 case Qt::Key_L:
1975 mView->viewManager()->showListView(); 1976 mView->viewManager()->showListView();
1976 break; 1977 break;
1977 case Qt::Key_N: 1978 case Qt::Key_N:
1978 mView->viewManager()->showNextView(); 1979 mView->viewManager()->showNextView();
1979 break; 1980 break;
1980 case Qt::Key_V: 1981 case Qt::Key_V:
1981 mView->viewManager()->showTodoView(); 1982 mView->viewManager()->showTodoView();
1982 break; 1983 break;
1983 case Qt::Key_C: 1984 case Qt::Key_C:
1984 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 1985 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
1985 break; 1986 break;
1986 case Qt::Key_P: 1987 case Qt::Key_P:
1987 mView->showDatePicker( ); 1988 mView->showDatePicker( );
1988 break; 1989 break;
1989 case Qt::Key_F: 1990 case Qt::Key_F:
1990 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1991 mView->editFilters();
1991 mView->editFilters(); 1992 break;
1992 else 1993 case Qt::Key_R:
1993 mView->toggleFilter(); 1994 mView->toggleFilter();
1994 break; 1995 break;
1995 case Qt::Key_X: 1996 case Qt::Key_X:
1996 if ( e->state() == Qt::ControlButton ) 1997 if ( e->state() == Qt::ControlButton )
1997 mView->toggleDateNavigatorWidget(); 1998 mView->toggleDateNavigatorWidget();
1998 else { 1999 else {
1999 mView->viewManager()->showNextXView(); 2000 mView->viewManager()->showNextXView();
2000 showSelectedDates = true; 2001 showSelectedDates = true;
2001 } 2002 }
2002 break; 2003 break;
2003 case Qt::Key_Space: 2004 case Qt::Key_Space:
2004 mView->toggleExpand(); 2005 mView->toggleExpand();
2005 break; 2006 break;
2006 case Qt::Key_A: 2007 case Qt::Key_A:
2007 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) 2008 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton )
2008 mView->showNextAlarms(); 2009 mView->showNextAlarms();
2009 else 2010 else
2010 mView->toggleAllDaySize(); 2011 mView->toggleAllDaySize();
2011 break; 2012 break;
2012 case Qt::Key_T: 2013 case Qt::Key_T:
2013 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 2014 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
2014 mView->newTodo(); 2015 mView->newTodo();
2015 else { 2016 else {
2016 mView->goToday(); 2017 mView->goToday();
2017 showSelectedDates = true; 2018 showSelectedDates = true;
2018 } 2019 }
2019 break; 2020 break;
2020 case Qt::Key_J: 2021 case Qt::Key_J:
2021 mView->viewManager()->showJournalView(); 2022 mView->viewManager()->showJournalView();
2022 break; 2023 break;
2023 case Qt::Key_B: 2024 case Qt::Key_B:
2024 mView->editIncidenceDescription();; 2025 mView->editIncidenceDescription();;
2025 break; 2026 break;
2026 // case Qt::Key_Return: 2027 // case Qt::Key_Return:
2027 case Qt::Key_E: 2028 case Qt::Key_E:
2028 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 2029 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
2029 mView->newEvent(); 2030 mView->newEvent();
2030 else 2031 else
2031 mView->editIncidence(); 2032 mView->editIncidence();
2032 break; 2033 break;
2033 case Qt::Key_Plus: 2034 case Qt::Key_Plus:
2034 size = p->mHourSize +2; 2035 size = p->mHourSize +2;
2035 if ( size <= 22 ) 2036 if ( size <= 22 )
2036 configureAgenda( size ); 2037 configureAgenda( size );
2037 break; 2038 break;
2038 case Qt::Key_Minus: 2039 case Qt::Key_Minus:
2039 size = p->mHourSize - 2; 2040 size = p->mHourSize - 2;
2040 if ( size >= 4 ) 2041 if ( size >= 4 )
2041 configureAgenda( size ); 2042 configureAgenda( size );
2042 break; 2043 break;
2043 2044
2044 2045
2045 default: 2046 default:
2046 e->ignore(); 2047 e->ignore();
2047 } 2048 }
2048 if ( pro > 0 ) { 2049 if ( pro > 0 ) {
2049 mView->selectFilter( pro-1 ); 2050 mView->selectFilter( pro-1 );
2050 } 2051 }
2051 if ( showSelectedDates ) { 2052 if ( showSelectedDates ) {
2052 ;// setCaptionToDates(); 2053 ;// setCaptionToDates();
2053 } 2054 }
2054 2055
2055} 2056}
2056void MainWindow::fillFilterMenuTB() 2057void MainWindow::fillFilterMenuTB()
2057{ 2058{
2058 selectFilterMenuTB->clear(); 2059 selectFilterMenuTB->clear();
2059 selectFilterMenuTB->insertItem(i18n ( "Edit Filters" ), 0 ); 2060 selectFilterMenuTB->insertItem(i18n ( "Edit Filters" ), 0 );
2060 selectFilterMenuTB->insertSeparator(); 2061 selectFilterMenuTB->insertSeparator();
2061 selectFilterMenuTB->insertItem(i18n ( "No Filter" ), 1 ); 2062 selectFilterMenuTB->insertItem(i18n ( "No Filter" ), 1 );
2062 2063
2063 selectFilterMenuTB->insertSeparator(); 2064 selectFilterMenuTB->insertSeparator();
2064 QPtrList<CalFilter> fili = mView->filters(); 2065 QPtrList<CalFilter> fili = mView->filters();
2065 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2066 CalFilter *curfilter = mView->filterView()->selectedFilter();
2066 CalFilter *filter = fili.first(); 2067 CalFilter *filter = fili.first();
2067 int iii = 2; 2068 int iii = 2;
2068 bool checkitem = mView->filterView()->filtersEnabled(); 2069 bool checkitem = mView->filterView()->filtersEnabled();
2069 while(filter) { 2070 while(filter) {
2070 selectFilterMenuTB->insertItem( filter->name(), iii ); 2071 selectFilterMenuTB->insertItem( filter->name(), iii );
2071 if ( filter == curfilter) 2072 if ( filter == curfilter)
2072 selectFilterMenuTB->setItemChecked( iii, checkitem ); 2073 selectFilterMenuTB->setItemChecked( iii, checkitem );
2073 filter = fili.next(); 2074 filter = fili.next();
2074 ++iii; 2075 ++iii;
2075 } 2076 }
2076 if ( !checkitem ) 2077 if ( !checkitem )
2077 selectFilterMenuTB->setItemChecked( 1, true ); 2078 selectFilterMenuTB->setItemChecked( 1, true );
2078 2079
2079 int x = 0; 2080 int x = 0;
2080 int y = iconToolBar->height(); 2081 int y = iconToolBar->height();
2081 int dX = 0; 2082 int dX = 0;
2082 int dY = 0; 2083 int dY = 0;
2083 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 2084 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
2084 if ( iconToolBar->y() > height()/2 ) { 2085 if ( iconToolBar->y() > height()/2 ) {
2085 dY = selectFilterMenuTB->sizeHint().height()+8; 2086 dY = selectFilterMenuTB->sizeHint().height()+8;
2086 y = 0; 2087 y = 0;
2087 } 2088 }
2088 } else { 2089 } else {
2089 if ( iconToolBar->x() > width()/2 ) { // right side 2090 if ( iconToolBar->x() > width()/2 ) { // right side
2090 x=0; 2091 x=0;
2091 dX= selectFilterMenuTB->sizeHint().width()+8; 2092 dX= selectFilterMenuTB->sizeHint().width()+8;
2092 y = 0; 2093 y = 0;
2093 } else { 2094 } else {
2094 x= iconToolBar->width(); 2095 x= iconToolBar->width();
2095 y = 0; 2096 y = 0;
2096 } 2097 }
2097 } 2098 }
2098 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() ); 2099 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() );
2099 selectFilterMenuTB->popup(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY))); 2100 selectFilterMenuTB->popup(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY)));
2100} 2101}
2101void MainWindow::fillFilterMenu() 2102void MainWindow::fillFilterMenu()
2102{ 2103{
2103 selectFilterMenu->clear(); 2104 selectFilterMenu->clear();
2104 selectFilterMenu->insertItem(i18n ( "Edit Filters" ), 0 ); 2105 selectFilterMenu->insertItem(i18n ( "Edit Filters" ), 0 );
2105 selectFilterMenu->insertSeparator(); 2106 selectFilterMenu->insertSeparator();
2106 selectFilterMenu->insertItem(i18n ( "No Filter" ), 1 ); 2107 selectFilterMenu->insertItem(i18n ( "No Filter" ), 1 );
2107 2108
2108 selectFilterMenu->insertSeparator(); 2109 selectFilterMenu->insertSeparator();
2109 QPtrList<CalFilter> fili = mView->filters(); 2110 QPtrList<CalFilter> fili = mView->filters();
2110 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2111 CalFilter *curfilter = mView->filterView()->selectedFilter();
2111 CalFilter *filter = fili.first(); 2112 CalFilter *filter = fili.first();
2112 int iii = 2; 2113 int iii = 2;
2113 bool checkitem = mView->filterView()->filtersEnabled(); 2114 bool checkitem = mView->filterView()->filtersEnabled();
2114 while(filter) { 2115 while(filter) {
2115 selectFilterMenu->insertItem( filter->name(), iii ); 2116 selectFilterMenu->insertItem( filter->name(), iii );
2116 if ( filter == curfilter) 2117 if ( filter == curfilter)
2117 selectFilterMenu->setItemChecked( iii, checkitem ); 2118 selectFilterMenu->setItemChecked( iii, checkitem );
2118 filter = fili.next(); 2119 filter = fili.next();
2119 ++iii; 2120 ++iii;
2120 } 2121 }
2121 if ( !checkitem ) 2122 if ( !checkitem )
2122 selectFilterMenu->setItemChecked( 1, true ); 2123 selectFilterMenu->setItemChecked( 1, true );
2123} 2124}
2124void MainWindow::fillFilterMenuPopup() 2125void MainWindow::fillFilterMenuPopup()
2125{ 2126{
2126 filterPopupMenu->clear(); 2127 filterPopupMenu->clear();
2127 filterPopupMenu->insertItem(i18n ( "No Filter" ), 0 ); 2128 filterPopupMenu->insertItem(i18n ( "No Filter" ), 0 );
2128 2129
2129 filterPopupMenu->insertSeparator(); 2130 filterPopupMenu->insertSeparator();
2130 QPtrList<CalFilter> fili = mView->filters(); 2131 QPtrList<CalFilter> fili = mView->filters();
2131 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2132 CalFilter *curfilter = mView->filterView()->selectedFilter();
2132 CalFilter *filter = fili.first(); 2133 CalFilter *filter = fili.first();
2133 int iii = 1; 2134 int iii = 1;
2134 bool checkitem = mView->filterView()->filtersEnabled(); 2135 bool checkitem = mView->filterView()->filtersEnabled();
2135 while(filter) { 2136 while(filter) {
2136 filterPopupMenu->insertItem( filter->name(), iii ); 2137 filterPopupMenu->insertItem( filter->name(), iii );
2137 if ( filter == curfilter) 2138 if ( filter == curfilter)
2138 filterPopupMenu->setItemChecked( iii, checkitem ); 2139 filterPopupMenu->setItemChecked( iii, checkitem );
2139 filter = fili.next(); 2140 filter = fili.next();
2140 ++iii; 2141 ++iii;
2141 } 2142 }
2142 if ( !checkitem ) 2143 if ( !checkitem )
2143 filterPopupMenu->setItemChecked( 0, true ); 2144 filterPopupMenu->setItemChecked( 0, true );
2144} 2145}
2145void MainWindow::selectFilter( int fil ) 2146void MainWindow::selectFilter( int fil )
2146{ 2147{
2147 2148
2148 if ( fil == 0 ) { 2149 if ( fil == 0 ) {
2149 mView->editFilters( ); 2150 mView->editFilters( );
2150 } else if ( fil == 1 ){ 2151 } else if ( fil == 1 ){
2151 if ( mView->filterView()->filtersEnabled() ) 2152 if ( mView->filterView()->filtersEnabled() )
2152 mView->toggleFilerEnabled( ); 2153 mView->toggleFilerEnabled( );
2153 } else { 2154 } else {
2154 if ( !mView->filterView()->filtersEnabled() ) { 2155 if ( !mView->filterView()->filtersEnabled() ) {
2155 mView->filterView()->blockSignals( true ); 2156 mView->filterView()->blockSignals( true );
2156 mView->toggleFilerEnabled( ); 2157 mView->toggleFilerEnabled( );
2157 mView->filterView()->blockSignals( false ); 2158 mView->filterView()->blockSignals( false );
2158 } 2159 }
2159 mView->selectFilter( fil-2 ); 2160 mView->selectFilter( fil-2 );
2160 } 2161 }
2161} 2162}
2162void MainWindow::updateFilterToolbar() 2163void MainWindow::updateFilterToolbar()
2163{ 2164{
2164 if ( filterMenubar ) { 2165 if ( filterMenubar ) {
2165 if ( !mView->filterView()->filtersEnabled() ) { 2166 if ( !mView->filterView()->filtersEnabled() ) {
2166 filterMenubar->changeItem( 0, i18n("No Filter") ); 2167 filterMenubar->changeItem( 0, i18n("No Filter") );
2167 } else { 2168 } else {
2168 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2169 CalFilter *curfilter = mView->filterView()->selectedFilter();
2169 if ( curfilter ) { 2170 if ( curfilter ) {
2170 filterMenubar->changeItem( 0, curfilter->name() ); 2171 filterMenubar->changeItem( 0, curfilter->name() );
2171 } 2172 }
2172 } 2173 }
2173 } 2174 }
2174} 2175}
2175void MainWindow::selectFilterPopup( int fil ) 2176void MainWindow::selectFilterPopup( int fil )
2176{ 2177{
2177 selectFilter( fil + 1 ); 2178 selectFilter( fil + 1 );
2178 2179
2179} 2180}
2180void MainWindow::configureToolBar( int item ) 2181void MainWindow::configureToolBar( int item )
2181{ 2182{
2182 2183
2183 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); 2184 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) );
2184 KOPrefs *p = KOPrefs::instance(); 2185 KOPrefs *p = KOPrefs::instance();
2185 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); 2186 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 );
2186 p-> mShowIconOnetoolbar = configureToolBarMenu->isItemChecked( 6 ); 2187 p-> mShowIconOnetoolbar = configureToolBarMenu->isItemChecked( 6 );
2187 p-> mShowIconFilter = configureToolBarMenu->isItemChecked( 7 ); 2188 p-> mShowIconFilter = configureToolBarMenu->isItemChecked( 7 );
2188 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); 2189 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 );
2189 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); 2190 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 );
2190 p->mShowIconNavigator = configureToolBarMenu->isItemChecked( 22 ); 2191 p->mShowIconNavigator = configureToolBarMenu->isItemChecked( 22 );
2191 p->mShowIconAllday = configureToolBarMenu->isItemChecked( 24 ); 2192 p->mShowIconAllday = configureToolBarMenu->isItemChecked( 24 );
2192 p->mShowIconFilterview = configureToolBarMenu->isItemChecked( 26 ); 2193 p->mShowIconFilterview = configureToolBarMenu->isItemChecked( 26 );
2193 p->mShowIconToggleFull = configureToolBarMenu->isItemChecked( 28 ); 2194 p->mShowIconToggleFull = configureToolBarMenu->isItemChecked( 28 );
2194 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); 2195 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 );
2195 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); 2196 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 );
2196 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); 2197 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 );
2197 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); 2198 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 );
2198 p-> mShowIconDay6= configureToolBarMenu->isItemChecked( 75 ); 2199 p-> mShowIconDay6= configureToolBarMenu->isItemChecked( 75 );
2199 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); 2200 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 );
2200 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); 2201 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 );
2201 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); 2202 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 );
2202 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); 2203 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 );
2203 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); 2204 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 );
2204 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); 2205 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 );
2205 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); 2206 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 );
2206 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); 2207 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 );
2207 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); 2208 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 );
2208 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); 2209 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 );
2209 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); 2210 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 );
2210 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); 2211 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 );
2211 p-> mShowIconWeekNum= configureToolBarMenu->isItemChecked( 400 ); 2212 p-> mShowIconWeekNum= configureToolBarMenu->isItemChecked( 400 );
2212 // initActions(); 2213 // initActions();
2213} 2214}
2214void MainWindow::setCaption ( const QString & c ) 2215void MainWindow::setCaption ( const QString & c )
2215{ 2216{
2216 QString cap = c; 2217 QString cap = c;
2217 cap.replace( QRegExp("\n"), " " ); 2218 cap.replace( QRegExp("\n"), " " );
2218 cap = cap.stripWhiteSpace(); 2219 cap = cap.stripWhiteSpace();
2219 if ( cap.isEmpty() ) 2220 if ( cap.isEmpty() )
2220 cap = "KO/Pi"; 2221 cap = "KO/Pi";
2221 QWidget::setCaption( cap ); 2222 QWidget::setCaption( cap );
2222} 2223}
2223void MainWindow::setCaptionToDates() 2224void MainWindow::setCaptionToDates()
2224{ 2225{
2225 QString selDates; 2226 QString selDates;
2226 QDate date = mView->startDate(); 2227 QDate date = mView->startDate();
2227 if ( ! date.isValid() ) { 2228 if ( ! date.isValid() ) {
2228 setCaption(""); 2229 setCaption("");
2229 return; 2230 return;
2230 } 2231 }
2231 selDates = KGlobal::locale()->formatDate( date, true); 2232 selDates = KGlobal::locale()->formatDate( date, true);
2232 if (mView->startDate() < mView->endDate() ) 2233 if (mView->startDate() < mView->endDate() )
2233 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); 2234 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true);
2234 else { 2235 else {
2235 QString addString; 2236 QString addString;
2236 if ( date == QDateTime::currentDateTime().date() ) 2237 if ( date == QDateTime::currentDateTime().date() )
2237 addString = i18n("Today"); 2238 addString = i18n("Today");
2238 else if ( date == QDateTime::currentDateTime().date().addDays(1) ) 2239 else if ( date == QDateTime::currentDateTime().date().addDays(1) )
2239 addString = i18n("Tomorrow"); 2240 addString = i18n("Tomorrow");
2240 if ( !addString.isEmpty() ) 2241 if ( !addString.isEmpty() )
2241 selDates = addString+", "+selDates ; 2242 selDates = addString+", "+selDates ;
2242 } 2243 }
2243 setCaption( i18n("Dates: ") + selDates ); 2244 setCaption( i18n("Dates: ") + selDates );
2244 2245
2245} 2246}
2246void MainWindow::showConfigureAgenda( ) 2247void MainWindow::showConfigureAgenda( )
2247{ 2248{
2248 int iii; 2249 int iii;
2249 for ( iii = 1;iii<= 10 ;++iii ){ 2250 for ( iii = 1;iii<= 10 ;++iii ){
2250 configureAgendaMenu->setItemChecked( (iii+1)*2, false ); 2251 configureAgendaMenu->setItemChecked( (iii+1)*2, false );
2251 } 2252 }
2252 configureAgendaMenu->setItemChecked( (KOPrefs::instance()->mHourSize/2)*2, true ); 2253 configureAgendaMenu->setItemChecked( (KOPrefs::instance()->mHourSize/2)*2, true );
2253} 2254}
2254void MainWindow::configureAgenda( int item ) 2255void MainWindow::configureAgenda( int item )
2255{ 2256{
2256 if ( KOPrefs::instance()->mHourSize == item ) 2257 if ( KOPrefs::instance()->mHourSize == item )
2257 return; 2258 return;
2258 KOPrefs::instance()->mHourSize=item; 2259 KOPrefs::instance()->mHourSize=item;
2259 mView->viewManager()->agendaView()->updateConfig(); 2260 mView->viewManager()->agendaView()->updateConfig();
2260} 2261}
2261 2262
2262void MainWindow::saveCalendar() 2263void MainWindow::saveCalendar()
2263{ 2264{
2264 QString fn = KOPrefs::instance()->mLastSaveFile; 2265 QString fn = KOPrefs::instance()->mLastSaveFile;
2265 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); 2266 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this );
2266 2267
2267 if ( fn == "" ) 2268 if ( fn == "" )
2268 return; 2269 return;
2269 QFileInfo info; 2270 QFileInfo info;
2270 info.setFile( fn ); 2271 info.setFile( fn );
2271 QString mes; 2272 QString mes;
2272 bool createbup = true; 2273 bool createbup = true;
2273 if ( info. exists() ) { 2274 if ( info. exists() ) {
2274 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; 2275 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ;
2275 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 2276 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
2276 i18n("Overwrite!"), i18n("Cancel"), 0, 2277 i18n("Overwrite!"), i18n("Cancel"), 0,
2277 0, 1 ); 2278 0, 1 );
2278 if ( result != 0 ) { 2279 if ( result != 0 ) {
2279 createbup = false; 2280 createbup = false;
2280 } 2281 }
2281 } 2282 }
2282 if ( createbup ) { 2283 if ( createbup ) {
2283 mView->saveCalendar( fn ); 2284 mView->saveCalendar( fn );
2284 mes = i18n("KO/Pi:Saved %1").arg(fn); 2285 mes = i18n("KO/Pi:Saved %1").arg(fn);
2285 KOPrefs::instance()->mLastSaveFile = fn; 2286 KOPrefs::instance()->mLastSaveFile = fn;
2286 setCaption(mes); 2287 setCaption(mes);
2287 } 2288 }
2288} 2289}
2289void MainWindow::loadCalendar() 2290void MainWindow::loadCalendar()
2290{ 2291{
2291 2292
2292 QString fn = KOPrefs::instance()->mLastLoadFile; 2293 QString fn = KOPrefs::instance()->mLastLoadFile;
2293 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); 2294 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this );
2294 2295
2295 if ( fn == "" ) 2296 if ( fn == "" )
2296 return; 2297 return;
2297 QFileInfo info; 2298 QFileInfo info;
2298 info.setFile( fn ); 2299 info.setFile( fn );
2299 QString mess; 2300 QString mess;
2300 bool loadbup = true; 2301 bool loadbup = true;
2301 if ( info. exists() ) { 2302 if ( info. exists() ) {
2302 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 2303 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
2303 int result = QMessageBox::warning( this, "KO/Pi: Warning!", 2304 int result = QMessageBox::warning( this, "KO/Pi: Warning!",
2304 mess, 2305 mess,
2305 i18n("Load!"), i18n("Cancel"), 0, 2306 i18n("Load!"), i18n("Cancel"), 0,
2306 0, 1 ); 2307 0, 1 );
2307 if ( result != 0 ) { 2308 if ( result != 0 ) {
2308 loadbup = false; 2309 loadbup = false;
2309 } 2310 }
2310 } else { 2311 } else {
2311 QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2312 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2312 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, 2313 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0,
2313 0, 1 ); 2314 0, 1 );
2314 2315
2315 return; 2316 return;
2316 } 2317 }
2317 if ( loadbup ) { 2318 if ( loadbup ) {
2318 mView->openCalendar( fn ); 2319 mView->openCalendar( fn );
2319 KOPrefs::instance()->mLastLoadFile = fn; 2320 KOPrefs::instance()->mLastLoadFile = fn;
2320 mess = i18n("KO/Pi:Loaded %1").arg(fn) ; 2321 mess = i18n("KO/Pi:Loaded %1").arg(fn) ;
2321 setCaption(mess); 2322 setCaption(mess);
2322 } 2323 }
2323 2324
2324} 2325}
2325void MainWindow::quickImportIcal() 2326void MainWindow::quickImportIcal()
2326{ 2327{
2327 importFile( KOPrefs::instance()->mLastImportFile, false ); 2328 importFile( KOPrefs::instance()->mLastImportFile, false );
2328} 2329}
2329void MainWindow::importFile( QString fn, bool quick ) 2330void MainWindow::importFile( QString fn, bool quick )
2330{ 2331{
2331 QFileInfo info; 2332 QFileInfo info;
2332 info.setFile( fn ); 2333 info.setFile( fn );
2333 QString mess; 2334 QString mess;
2334 bool loadbup = true; 2335 bool loadbup = true;
2335 if ( !info. exists() ) { 2336 if ( !info. exists() ) {
2336 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); 2337 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30));
2337 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2338 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2338 mess ); 2339 mess );
2339 return; 2340 return;
2340 } 2341 }
2341 int result = 0; 2342 int result = 0;
2342 if ( !quick ) { 2343 if ( !quick ) {
2343 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 2344 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
2344 result = QMessageBox::warning( this, "KO/Pi: Warning!", 2345 result = QMessageBox::warning( this, "KO/Pi: Warning!",
2345 mess, 2346 mess,
2346 "Import", "Cancel", 0, 2347 "Import", "Cancel", 0,
2347 0, 1 ); 2348 0, 1 );
2348 } 2349 }
2349 if ( result == 0 ) { 2350 if ( result == 0 ) {
2350 if ( mView->openCalendar( fn, true )) { 2351 if ( mView->openCalendar( fn, true )) {
2351 KOPrefs::instance()->mLastImportFile = fn; 2352 KOPrefs::instance()->mLastImportFile = fn;
2352 setCaption(i18n("Imported file successfully")); 2353 setCaption(i18n("Imported file successfully"));
2353 } else { 2354 } else {
2354 setCaption(i18n("Error importing file")); 2355 setCaption(i18n("Error importing file"));
2355 } 2356 }
2356 } 2357 }
2357} 2358}
2358 2359
2359void MainWindow::importIcal() 2360void MainWindow::importIcal()
2360{ 2361{
2361 2362
2362 QString fn =KOPrefs::instance()->mLastImportFile; 2363 QString fn =KOPrefs::instance()->mLastImportFile;
2363 2364
2364 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); 2365 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this );
2365 if ( fn == "" ) 2366 if ( fn == "" )
2366 return; 2367 return;
2367 importFile( fn, true ); 2368 importFile( fn, true );
2368 2369
2369} 2370}
2370 2371
2371void MainWindow::exportVCalendar() 2372void MainWindow::exportVCalendar()
2372{ 2373{
2373 QString fn = KOPrefs::instance()->mLastVcalFile; 2374 QString fn = KOPrefs::instance()->mLastVcalFile;
2374 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 2375 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
2375 if ( fn == "" ) 2376 if ( fn == "" )
2376 return; 2377 return;
2377 QFileInfo info; 2378 QFileInfo info;
2378 info.setFile( fn ); 2379 info.setFile( fn );
2379 QString mes; 2380 QString mes;
2380 bool createbup = true; 2381 bool createbup = true;
2381 if ( info. exists() ) { 2382 if ( info. exists() ) {
2382 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 2383 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
2383 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 2384 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
2384 i18n("Overwrite!"), i18n("Cancel"), 0, 2385 i18n("Overwrite!"), i18n("Cancel"), 0,
2385 0, 1 ); 2386 0, 1 );
2386 if ( result != 0 ) { 2387 if ( result != 0 ) {
2387 createbup = false; 2388 createbup = false;
2388 } 2389 }
2389 } 2390 }
2390 if ( createbup ) { 2391 if ( createbup ) {
2391 if ( mView->exportVCalendar( fn ) ) { 2392 if ( mView->exportVCalendar( fn ) ) {
2392 KOPrefs::instance()->mLastVcalFile = fn; 2393 KOPrefs::instance()->mLastVcalFile = fn;
2393 if ( fn.length() > 20 ) 2394 if ( fn.length() > 20 )
2394 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 2395 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
2395 else 2396 else
2396 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 2397 mes = i18n("KO/Pi:Exported to %1").arg(fn );
2397 setCaption(mes); 2398 setCaption(mes);
2398 } 2399 }
2399 } 2400 }
2400 2401
2401} 2402}
2402QString MainWindow::sentSyncFile() 2403QString MainWindow::sentSyncFile()
2403{ 2404{
2404#ifdef DESKTOP_VERSION 2405#ifdef DESKTOP_VERSION
2405 return locateLocal( "tmp", "copysynccal.ics" ); 2406 return locateLocal( "tmp", "copysynccal.ics" );
2406#else 2407#else
2407 return QString( "/tmp/copysynccal.ics" ); 2408 return QString( "/tmp/copysynccal.ics" );
2408#endif 2409#endif
2409} 2410}
2410 2411
2411void MainWindow::syncFileRequest() 2412void MainWindow::syncFileRequest()
2412{ 2413{
2413 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { 2414 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) {
2414 mSyncManager->slotSyncMenu( 999 ); 2415 mSyncManager->slotSyncMenu( 999 );
2415 } 2416 }
2416 2417
2417 setCaption(i18n("Saving Data to temp file ..." )); 2418 setCaption(i18n("Saving Data to temp file ..." ));
2418 mView->saveCalendar( sentSyncFile() ); 2419 mView->saveCalendar( sentSyncFile() );
2419 setCaption(i18n("Data saved to temp file!" )); 2420 setCaption(i18n("Data saved to temp file!" ));
2420 2421
2421} 2422}
2422void MainWindow::getFile( bool success ) 2423void MainWindow::getFile( bool success )
2423{ 2424{
2424 if ( ! success ) { 2425 if ( ! success ) {
2425 setCaption( i18n("Error receiving file. Nothing changed!") ); 2426 setCaption( i18n("Error receiving file. Nothing changed!") );
2426 return; 2427 return;
2427 } 2428 }
2428 mView->openCalendar( sentSyncFile() ); 2429 mView->openCalendar( sentSyncFile() );
2429 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { 2430 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) {
2430 mSyncManager->slotSyncMenu( 999 ); 2431 mSyncManager->slotSyncMenu( 999 );
2431 } 2432 }
2432 setCaption( i18n("Pi-Sync successful!") ); 2433 setCaption( i18n("Pi-Sync successful!") );
2433} 2434}
2434void MainWindow::printListView() 2435void MainWindow::printListView()
2435{ 2436{
2436 2437
2437 QString message = i18n("You can make a printout of the <b>List View</b> and the list view in the <b>Search Dialog</b>! To do this, please go to the <b>List View/Search Dialog</b>. Right click on the list. Select in the popup menu the entry <b>Print complete list</b>. That prints the list as you see it. You can remove items from the list before printing without deleting the corresponding event/todo! Simply select all items you do not want to print out. Then right click on one of the items and choose <b>Hide selected items</b>. After that you can print the list without these items."); 2438 QString message = i18n("You can make a printout of the <b>List View</b> and the list view in the <b>Search Dialog</b>! To do this, please go to the <b>List View/Search Dialog</b>. Right click on the list. Select in the popup menu the entry <b>Print complete list</b>. That prints the list as you see it. You can remove items from the list before printing without deleting the corresponding event/todo! Simply select all items you do not want to print out. Then right click on one of the items and choose <b>Hide selected items</b>. After that you can print the list without these items.");
2438 2439
2439 KMessageBox::information( this, message); 2440 KMessageBox::information( this, message);
2440} 2441}
2441void MainWindow::printSel( ) 2442void MainWindow::printSel( )
2442{ 2443{
2443 mView->viewManager()->agendaView()->agenda()->printSelection(); 2444 mView->viewManager()->agendaView()->agenda()->printSelection();
2444} 2445}
2445 2446
2446void MainWindow::printCal() 2447void MainWindow::printCal()
2447{ 2448{
2448 mView->print();//mCp->showDialog(); 2449 mView->print();//mCp->showDialog();
2449} 2450}
2450 2451
2451 2452
2452#include "libkdepim/kdatepicker.h" 2453#include "libkdepim/kdatepicker.h"
2453#include <kdatetbl.h> 2454#include <kdatetbl.h>
2454 2455
2455void MainWindow::weekAction() 2456void MainWindow::weekAction()
2456{ 2457{
2457 int month; 2458 int month;
2458 KPopupFrame* popup = new KPopupFrame(this); 2459 KPopupFrame* popup = new KPopupFrame(this);
2459 KDateInternalWeekPicker* picker = new KDateInternalWeekPicker(popup); 2460 KDateInternalWeekPicker* picker = new KDateInternalWeekPicker(popup);
2460 // ----- 2461 // -----
2461 picker->resize(picker->sizeHint()); 2462 picker->resize(picker->sizeHint());
2462 popup->setMainWidget(picker); 2463 popup->setMainWidget(picker);
2463 picker->setFocus(); 2464 picker->setFocus();
2464 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); 2465 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int)));
2465 int x = 0; 2466 int x = 0;
2466 int y = iconToolBar->height(); 2467 int y = iconToolBar->height();
2467 int dX = 0; 2468 int dX = 0;
2468 int dY = 0; 2469 int dY = 0;
2469 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 2470 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
2470 if ( iconToolBar->y() > height()/2 ) { 2471 if ( iconToolBar->y() > height()/2 ) {
2471 dY = picker->sizeHint().height()+8; 2472 dY = picker->sizeHint().height()+8;
2472 y = 0; 2473 y = 0;
2473 } 2474 }
2474 } else { 2475 } else {
2475 if ( iconToolBar->x() > width()/2 ) { // right side 2476 if ( iconToolBar->x() > width()/2 ) { // right side
2476 x=0; 2477 x=0;
2477 dX= picker->sizeHint().width()+8; 2478 dX= picker->sizeHint().width()+8;
2478 y = 0; 2479 y = 0;
2479 } else { 2480 } else {
2480 x= iconToolBar->width(); 2481 x= iconToolBar->width();
2481 y = 0; 2482 y = 0;
2482 } 2483 }
2483 } 2484 }
2484 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() ); 2485 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() );
2485 if(popup->exec(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY)))) 2486 if(popup->exec(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY))))
2486 { 2487 {
2487 month = picker->getResult(); 2488 month = picker->getResult();
2488 emit selectWeek ( month ); 2489 emit selectWeek ( month );
2489 //qDebug("weekSelected %d ", month); 2490 //qDebug("weekSelected %d ", month);
2490 } 2491 }
2491 delete popup; 2492 delete popup;
2492} 2493}
2493 2494
2494void MainWindow::hideEvent ( QHideEvent * ) 2495void MainWindow::hideEvent ( QHideEvent * )
2495{ 2496{
2496 QString message; 2497 QString message;
2497 QDateTime nextA = mCalendar->nextAlarmEventDateTime(); 2498 QDateTime nextA = mCalendar->nextAlarmEventDateTime();
2498 if ( nextA.isValid() ) { 2499 if ( nextA.isValid() ) {
2499 QString sum = mCalendar->nextSummary(); 2500 QString sum = mCalendar->nextSummary();
2500 2501
2501 message = i18n("%1 %2 - %3 (next event/todo with alarm)").arg( KGlobal::locale()->formatTime(nextA.time() , false)).arg(sum ).arg( KGlobal::locale()->formatDate(nextA.date() , false)); 2502 message = i18n("%1 %2 - %3 (next event/todo with alarm)").arg( KGlobal::locale()->formatTime(nextA.time() , false)).arg(sum ).arg( KGlobal::locale()->formatDate(nextA.date() , false));
2502 setCaption( message ); 2503 setCaption( message );
2503 } 2504 }
2504} 2505}
2505 2506
2506void MainWindow::resizeEvent( QResizeEvent* e) 2507void MainWindow::resizeEvent( QResizeEvent* e)
2507{ 2508{
2508#ifndef DESKTOP_VERSION 2509#ifndef DESKTOP_VERSION
2509 if ( !KOPrefs::instance()->mShowIconFilter && !KOPrefs::instance()->mShowIconOnetoolbar && QApplication::desktop()->width() > 320) { 2510 if ( !KOPrefs::instance()->mShowIconFilter && !KOPrefs::instance()->mShowIconOnetoolbar && QApplication::desktop()->width() > 320) {
2510 if (QApplication::desktop()->width() > QApplication::desktop()->height() ) 2511 if (QApplication::desktop()->width() > QApplication::desktop()->height() )
2511 filterToolBar->hide(); 2512 filterToolBar->hide();
2512 else 2513 else
2513 filterToolBar->show(); 2514 filterToolBar->show();
2514 } 2515 }
2515#endif 2516#endif
2516 QMainWindow::resizeEvent( e); 2517 QMainWindow::resizeEvent( e);
2517} 2518}