summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 7fae4a9..bc8625d 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -962,386 +962,386 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
962 fullDateRange = true; 962 fullDateRange = true;
963 eventRSync = new Event(); 963 eventRSync = new Event();
964 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); 964 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event"));
965 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); 965 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName );
966 eventRSync->setDtStart( mLastCalendarSync ); 966 eventRSync->setDtStart( mLastCalendarSync );
967 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 967 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
968 eventRSync->setCategories( i18n("SyncEvent") ); 968 eventRSync->setCategories( i18n("SyncEvent") );
969 } 969 }
970 } 970 }
971 if ( eventLSync->dtStart() == mLastCalendarSync ) 971 if ( eventLSync->dtStart() == mLastCalendarSync )
972 fullDateRange = true; 972 fullDateRange = true;
973 973
974 if ( ! fullDateRange ) { 974 if ( ! fullDateRange ) {
975 if ( eventLSync->dtStart() != eventRSync->dtStart() ) { 975 if ( eventLSync->dtStart() != eventRSync->dtStart() ) {
976 976
977 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); 977 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() );
978 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); 978 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec());
979 fullDateRange = true; 979 fullDateRange = true;
980 } 980 }
981 } 981 }
982 if ( fullDateRange ) 982 if ( fullDateRange )
983 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); 983 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365);
984 else 984 else
985 mLastCalendarSync = eventLSync->dtStart(); 985 mLastCalendarSync = eventLSync->dtStart();
986 // for resyncing if own file has changed 986 // for resyncing if own file has changed
987 if ( mCurrentSyncDevice == "deleteaftersync" ) { 987 if ( mCurrentSyncDevice == "deleteaftersync" ) {
988 mLastCalendarSync = loadedFileVersion; 988 mLastCalendarSync = loadedFileVersion;
989 qDebug("setting mLastCalendarSync "); 989 qDebug("setting mLastCalendarSync ");
990 } 990 }
991 //qDebug("*************************** "); 991 //qDebug("*************************** ");
992 qDebug("mLastCalendarSync %s ",mLastCalendarSync.toString().latin1() ); 992 qDebug("mLastCalendarSync %s ",mLastCalendarSync.toString().latin1() );
993 QPtrList<Incidence> er = remote->rawIncidences(); 993 QPtrList<Incidence> er = remote->rawIncidences();
994 Incidence* inR = er.first(); 994 Incidence* inR = er.first();
995 Incidence* inL; 995 Incidence* inL;
996 QProgressBar bar( er.count(),0 ); 996 QProgressBar bar( er.count(),0 );
997 bar.setCaption (i18n("Syncing - close to abort!") ); 997 bar.setCaption (i18n("Syncing - close to abort!") );
998 998
999 int w = 300; 999 int w = 300;
1000 if ( QApplication::desktop()->width() < 320 ) 1000 if ( QApplication::desktop()->width() < 320 )
1001 w = 220; 1001 w = 220;
1002 int h = bar.sizeHint().height() ; 1002 int h = bar.sizeHint().height() ;
1003 int dw = QApplication::desktop()->width(); 1003 int dw = QApplication::desktop()->width();
1004 int dh = QApplication::desktop()->height(); 1004 int dh = QApplication::desktop()->height();
1005 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1005 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1006 bar.show(); 1006 bar.show();
1007 int modulo = (er.count()/10)+1; 1007 int modulo = (er.count()/10)+1;
1008 int incCounter = 0; 1008 int incCounter = 0;
1009 while ( inR ) { 1009 while ( inR ) {
1010 if ( ! bar.isVisible() ) 1010 if ( ! bar.isVisible() )
1011 return false; 1011 return false;
1012 if ( incCounter % modulo == 0 ) 1012 if ( incCounter % modulo == 0 )
1013 bar.setProgress( incCounter ); 1013 bar.setProgress( incCounter );
1014 ++incCounter; 1014 ++incCounter;
1015 uid = inR->uid(); 1015 uid = inR->uid();
1016 bool skipIncidence = false; 1016 bool skipIncidence = false;
1017 if ( uid.left(15) == QString("last-syncEvent-") ) 1017 if ( uid.left(15) == QString("last-syncEvent-") )
1018 skipIncidence = true; 1018 skipIncidence = true;
1019 QString idS; 1019 QString idS;
1020 qApp->processEvents(); 1020 qApp->processEvents();
1021 if ( !skipIncidence ) { 1021 if ( !skipIncidence ) {
1022 inL = local->incidence( uid ); 1022 inL = local->incidence( uid );
1023 if ( inL ) { // maybe conflict - same uid in both calendars 1023 if ( inL ) { // maybe conflict - same uid in both calendars
1024 int maxrev = inL->revision(); 1024 int maxrev = inL->revision();
1025 if ( maxrev < inR->revision() ) 1025 if ( maxrev < inR->revision() )
1026 maxrev = inR->revision(); 1026 maxrev = inR->revision();
1027 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { 1027 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
1028 //qDebug("take %d %s ", take, inL->summary().latin1()); 1028 //qDebug("take %d %s ", take, inL->summary().latin1());
1029 if ( take == 3 ) 1029 if ( take == 3 )
1030 return false; 1030 return false;
1031 if ( take == 1 ) {// take local 1031 if ( take == 1 ) {// take local
1032 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 1032 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
1033 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1033 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1034 else 1034 else
1035 idS = inR->IDStr(); 1035 idS = inR->IDStr();
1036 remote->deleteIncidence( inR ); 1036 remote->deleteIncidence( inR );
1037 if ( inL->revision() < maxrev ) 1037 if ( inL->revision() < maxrev )
1038 inL->setRevision( maxrev ); 1038 inL->setRevision( maxrev );
1039 inR = inL->clone(); 1039 inR = inL->clone();
1040 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1040 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1041 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL ) 1041 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
1042 inR->setIDStr( idS ); 1042 inR->setIDStr( idS );
1043 remote->addIncidence( inR ); 1043 remote->addIncidence( inR );
1044 ++changedRemote; 1044 ++changedRemote;
1045 } else { 1045 } else {
1046 if ( inR->revision() < maxrev ) 1046 if ( inR->revision() < maxrev )
1047 inR->setRevision( maxrev ); 1047 inR->setRevision( maxrev );
1048 idS = inL->IDStr(); 1048 idS = inL->IDStr();
1049 local->deleteIncidence( inL ); 1049 local->deleteIncidence( inL );
1050 inL = inR->clone(); 1050 inL = inR->clone();
1051 inL->setIDStr( idS ); 1051 inL->setIDStr( idS );
1052 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1052 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1053 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1053 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1054 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1054 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1055 } 1055 }
1056 local->addIncidence( inL ); 1056 local->addIncidence( inL );
1057 ++changedLocal; 1057 ++changedLocal;
1058 } 1058 }
1059 } 1059 }
1060 } else { // no conflict 1060 } else { // no conflict
1061 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1061 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1062 QString des = eventLSync->description(); 1062 QString des = eventLSync->description();
1063 QString pref = "e"; 1063 QString pref = "e";
1064 if ( inR->type() == "Todo" ) 1064 if ( inR->type() == "Todo" )
1065 pref = "t"; 1065 pref = "t";
1066 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 1066 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
1067 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1067 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1068 //remote->deleteIncidence( inR ); 1068 //remote->deleteIncidence( inR );
1069 ++deletedEventR; 1069 ++deletedEventR;
1070 } else { 1070 } else {
1071 inR->setLastModified( modifiedCalendar ); 1071 inR->setLastModified( modifiedCalendar );
1072 inL = inR->clone(); 1072 inL = inR->clone();
1073 local->addIncidence( inL ); 1073 local->addIncidence( inL );
1074 ++addedEvent; 1074 ++addedEvent;
1075 } 1075 }
1076 } else { 1076 } else {
1077 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { 1077 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
1078 inR->setLastModified( modifiedCalendar ); 1078 inR->setLastModified( modifiedCalendar );
1079 local->addIncidence( inR->clone() ); 1079 local->addIncidence( inR->clone() );
1080 ++addedEvent; 1080 ++addedEvent;
1081 } else { 1081 } else {
1082 checkExternSyncEvent(eventRSyncSharp, inR); 1082 checkExternSyncEvent(eventRSyncSharp, inR);
1083 remote->deleteIncidence( inR ); 1083 remote->deleteIncidence( inR );
1084 ++deletedEventR; 1084 ++deletedEventR;
1085 } 1085 }
1086 } 1086 }
1087 } 1087 }
1088 } 1088 }
1089 inR = er.next(); 1089 inR = er.next();
1090 } 1090 }
1091 QPtrList<Incidence> el = local->rawIncidences(); 1091 QPtrList<Incidence> el = local->rawIncidences();
1092 inL = el.first(); 1092 inL = el.first();
1093 modulo = (el.count()/10)+1; 1093 modulo = (el.count()/10)+1;
1094 bar.setCaption (i18n("Add / remove events") ); 1094 bar.setCaption (i18n("Add / remove events") );
1095 bar.setTotalSteps ( el.count() ) ; 1095 bar.setTotalSteps ( el.count() ) ;
1096 bar.show(); 1096 bar.show();
1097 incCounter = 0; 1097 incCounter = 0;
1098 1098
1099 while ( inL ) { 1099 while ( inL ) {
1100 1100
1101 qApp->processEvents(); 1101 qApp->processEvents();
1102 if ( ! bar.isVisible() ) 1102 if ( ! bar.isVisible() )
1103 return false; 1103 return false;
1104 if ( incCounter % modulo == 0 ) 1104 if ( incCounter % modulo == 0 )
1105 bar.setProgress( incCounter ); 1105 bar.setProgress( incCounter );
1106 ++incCounter; 1106 ++incCounter;
1107 uid = inL->uid(); 1107 uid = inL->uid();
1108 bool skipIncidence = false; 1108 bool skipIncidence = false;
1109 if ( uid.left(15) == QString("last-syncEvent-") ) 1109 if ( uid.left(15) == QString("last-syncEvent-") )
1110 skipIncidence = true; 1110 skipIncidence = true;
1111 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) 1111 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" )
1112 skipIncidence = true; 1112 skipIncidence = true;
1113 if ( !skipIncidence ) { 1113 if ( !skipIncidence ) {
1114 inR = remote->incidence( uid ); 1114 inR = remote->incidence( uid );
1115 if ( ! inR ) { 1115 if ( ! inR ) {
1116 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1116 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1117 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 1117 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
1118 checkExternSyncEvent(eventLSyncSharp, inL); 1118 checkExternSyncEvent(eventLSyncSharp, inL);
1119 local->deleteIncidence( inL ); 1119 local->deleteIncidence( inL );
1120 ++deletedEventL; 1120 ++deletedEventL;
1121 } else { 1121 } else {
1122 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1122 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1123 inL->removeID(mCurrentSyncDevice ); 1123 inL->removeID(mCurrentSyncDevice );
1124 ++addedEventR; 1124 ++addedEventR;
1125 //qDebug("remote added Incidence %s ", inL->summary().latin1()); 1125 //qDebug("remote added Incidence %s ", inL->summary().latin1());
1126 inL->setLastModified( modifiedCalendar ); 1126 inL->setLastModified( modifiedCalendar );
1127 inR = inL->clone(); 1127 inR = inL->clone();
1128 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1128 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1129 remote->addIncidence( inR ); 1129 remote->addIncidence( inR );
1130 } 1130 }
1131 } 1131 }
1132 } else { 1132 } else {
1133 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { 1133 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
1134 checkExternSyncEvent(eventLSyncSharp, inL); 1134 checkExternSyncEvent(eventLSyncSharp, inL);
1135 local->deleteIncidence( inL ); 1135 local->deleteIncidence( inL );
1136 ++deletedEventL; 1136 ++deletedEventL;
1137 } else { 1137 } else {
1138 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1138 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1139 ++addedEventR; 1139 ++addedEventR;
1140 inL->setLastModified( modifiedCalendar ); 1140 inL->setLastModified( modifiedCalendar );
1141 remote->addIncidence( inL->clone() ); 1141 remote->addIncidence( inL->clone() );
1142 } 1142 }
1143 } 1143 }
1144 } 1144 }
1145 } 1145 }
1146 } 1146 }
1147 inL = el.next(); 1147 inL = el.next();
1148 } 1148 }
1149 int delFut = 0; 1149 int delFut = 0;
1150 if ( KOPrefs::instance()->mWriteBackInFuture ) { 1150 if ( KOPrefs::instance()->mWriteBackInFuture ) {
1151 er = remote->rawIncidences(); 1151 er = remote->rawIncidences();
1152 inR = er.first(); 1152 inR = er.first();
1153 QDateTime dt; 1153 QDateTime dt;
1154 QDateTime cur = QDateTime::currentDateTime(); 1154 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1155 QDateTime end = cur.addSecs( KOPrefs::instance()->mWriteBackInFuture * 3600 *24 *7 ); 1155 QDateTime end = cur.addDays( (KOPrefs::instance()->mWriteBackInFuture +1 ) *7 );
1156 while ( inR ) { 1156 while ( inR ) {
1157 if ( inR->type() == "Todo" ) { 1157 if ( inR->type() == "Todo" ) {
1158 Todo * t = (Todo*)inR; 1158 Todo * t = (Todo*)inR;
1159 if ( t->hasDueDate() ) 1159 if ( t->hasDueDate() )
1160 dt = t->dtDue(); 1160 dt = t->dtDue();
1161 else 1161 else
1162 dt = cur.addSecs( 62 ); 1162 dt = cur.addSecs( 62 );
1163 } 1163 }
1164 else if (inR->type() == "Event" ) { 1164 else if (inR->type() == "Event" ) {
1165 bool ok; 1165 bool ok;
1166 dt = inR->getNextOccurence( cur, &ok ); 1166 dt = inR->getNextOccurence( cur, &ok );
1167 if ( !ok ) 1167 if ( !ok )
1168 dt = cur.addSecs( -62 ); 1168 dt = cur.addSecs( -62 );
1169 } 1169 }
1170 else 1170 else
1171 dt = inR->dtStart(); 1171 dt = inR->dtStart();
1172 if ( dt < cur || dt > end ) { 1172 if ( dt < cur || dt > end ) {
1173 remote->deleteIncidence( inR ); 1173 remote->deleteIncidence( inR );
1174 ++delFut; 1174 ++delFut;
1175 } 1175 }
1176 inR = er.next(); 1176 inR = er.next();
1177 } 1177 }
1178 } 1178 }
1179 bar.hide(); 1179 bar.hide();
1180 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); 1180 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
1181 eventLSync->setReadOnly( false ); 1181 eventLSync->setReadOnly( false );
1182 eventLSync->setDtStart( mLastCalendarSync ); 1182 eventLSync->setDtStart( mLastCalendarSync );
1183 eventRSync->setDtStart( mLastCalendarSync ); 1183 eventRSync->setDtStart( mLastCalendarSync );
1184 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1184 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1185 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1185 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1186 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1186 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1187 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1187 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1188 eventLSync->setReadOnly( true ); 1188 eventLSync->setReadOnly( true );
1189 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 1189 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
1190 remote->addEvent( eventRSync ); 1190 remote->addEvent( eventRSync );
1191 QString mes; 1191 QString mes;
1192 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"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR ); 1192 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"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR );
1193 QString delmess; 1193 QString delmess;
1194 if ( delFut ) { 1194 if ( delFut ) {
1195 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture ); 1195 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture );
1196 mes += delmess; 1196 mes += delmess;
1197 } 1197 }
1198 if ( KOPrefs::instance()->mShowSyncSummary ) { 1198 if ( KOPrefs::instance()->mShowSyncSummary ) {
1199 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); 1199 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") );
1200 } 1200 }
1201 qDebug( mes ); 1201 qDebug( mes );
1202 mCalendar->checkAlarmForIncidence( 0, true ); 1202 mCalendar->checkAlarmForIncidence( 0, true );
1203 return syncOK; 1203 return syncOK;
1204} 1204}
1205 1205
1206void CalendarView::setSyncDevice( QString s ) 1206void CalendarView::setSyncDevice( QString s )
1207{ 1207{
1208 mCurrentSyncDevice= s; 1208 mCurrentSyncDevice= s;
1209} 1209}
1210void CalendarView::setSyncName( QString s ) 1210void CalendarView::setSyncName( QString s )
1211{ 1211{
1212 mCurrentSyncName= s; 1212 mCurrentSyncName= s;
1213} 1213}
1214bool CalendarView::syncCalendar(QString filename, int mode) 1214bool CalendarView::syncCalendar(QString filename, int mode)
1215{ 1215{
1216 mGlobalSyncMode = SYNC_MODE_NORMAL; 1216 mGlobalSyncMode = SYNC_MODE_NORMAL;
1217 CalendarLocal* calendar = new CalendarLocal(); 1217 CalendarLocal* calendar = new CalendarLocal();
1218 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1218 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1219 FileStorage* storage = new FileStorage( calendar ); 1219 FileStorage* storage = new FileStorage( calendar );
1220 bool syncOK = false; 1220 bool syncOK = false;
1221 storage->setFileName( filename ); 1221 storage->setFileName( filename );
1222 // qDebug("loading ... "); 1222 // qDebug("loading ... ");
1223 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { 1223 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) {
1224 getEventViewerDialog()->setSyncMode( true ); 1224 getEventViewerDialog()->setSyncMode( true );
1225 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1225 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1226 getEventViewerDialog()->setSyncMode( false ); 1226 getEventViewerDialog()->setSyncMode( false );
1227 if ( syncOK ) { 1227 if ( syncOK ) {
1228 if ( KOPrefs::instance()->mWriteBackFile ) 1228 if ( KOPrefs::instance()->mWriteBackFile )
1229 { 1229 {
1230 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 1230 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
1231 storage->save(); 1231 storage->save();
1232 } 1232 }
1233 } 1233 }
1234 setModified( true ); 1234 setModified( true );
1235 } 1235 }
1236 delete storage; 1236 delete storage;
1237 delete calendar; 1237 delete calendar;
1238 if ( syncOK ) 1238 if ( syncOK )
1239 updateView(); 1239 updateView();
1240 return syncOK; 1240 return syncOK;
1241} 1241}
1242void CalendarView::syncPhone() 1242void CalendarView::syncPhone()
1243{ 1243{
1244 syncExternal( 1 ); 1244 syncExternal( 1 );
1245} 1245}
1246void CalendarView::syncExternal( int mode ) 1246void CalendarView::syncExternal( int mode )
1247{ 1247{
1248 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1248 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1249 //mCurrentSyncDevice = "sharp-DTM"; 1249 //mCurrentSyncDevice = "sharp-DTM";
1250 if ( KOPrefs::instance()->mAskForPreferences ) 1250 if ( KOPrefs::instance()->mAskForPreferences )
1251 edit_sync_options(); 1251 edit_sync_options();
1252 qApp->processEvents(); 1252 qApp->processEvents();
1253 CalendarLocal* calendar = new CalendarLocal(); 1253 CalendarLocal* calendar = new CalendarLocal();
1254 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1254 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1255 bool syncOK = false; 1255 bool syncOK = false;
1256 bool loadSuccess = false; 1256 bool loadSuccess = false;
1257 PhoneFormat* phoneFormat = 0; 1257 PhoneFormat* phoneFormat = 0;
1258#ifndef DESKTOP_VERSION 1258#ifndef DESKTOP_VERSION
1259 SharpFormat* sharpFormat = 0; 1259 SharpFormat* sharpFormat = 0;
1260 if ( mode == 0 ) { // sharp 1260 if ( mode == 0 ) { // sharp
1261 sharpFormat = new SharpFormat () ; 1261 sharpFormat = new SharpFormat () ;
1262 loadSuccess = sharpFormat->load( calendar, mCalendar ); 1262 loadSuccess = sharpFormat->load( calendar, mCalendar );
1263 1263
1264 } else 1264 } else
1265#endif 1265#endif
1266 if ( mode == 1 ) { // phone 1266 if ( mode == 1 ) { // phone
1267 phoneFormat = new PhoneFormat (mCurrentSyncDevice, 1267 phoneFormat = new PhoneFormat (mCurrentSyncDevice,
1268 KOPrefs::instance()->mPhoneDevice, 1268 KOPrefs::instance()->mPhoneDevice,
1269 KOPrefs::instance()->mPhoneConnection, 1269 KOPrefs::instance()->mPhoneConnection,
1270 KOPrefs::instance()->mPhoneModel); 1270 KOPrefs::instance()->mPhoneModel);
1271 loadSuccess = phoneFormat->load( calendar,mCalendar); 1271 loadSuccess = phoneFormat->load( calendar,mCalendar);
1272 1272
1273 } else 1273 } else
1274 return; 1274 return;
1275 if ( loadSuccess ) { 1275 if ( loadSuccess ) {
1276 getEventViewerDialog()->setSyncMode( true ); 1276 getEventViewerDialog()->setSyncMode( true );
1277 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); 1277 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs );
1278 getEventViewerDialog()->setSyncMode( false ); 1278 getEventViewerDialog()->setSyncMode( false );
1279 qApp->processEvents(); 1279 qApp->processEvents();
1280 if ( syncOK ) { 1280 if ( syncOK ) {
1281 if ( KOPrefs::instance()->mWriteBackFile ) 1281 if ( KOPrefs::instance()->mWriteBackFile )
1282 { 1282 {
1283 QPtrList<Incidence> iL = mCalendar->rawIncidences(); 1283 QPtrList<Incidence> iL = mCalendar->rawIncidences();
1284 Incidence* inc = iL.first(); 1284 Incidence* inc = iL.first();
1285 if ( phoneFormat ) { 1285 if ( phoneFormat ) {
1286 while ( inc ) { 1286 while ( inc ) {
1287 inc->removeID(mCurrentSyncDevice); 1287 inc->removeID(mCurrentSyncDevice);
1288 inc = iL.next(); 1288 inc = iL.next();
1289 } 1289 }
1290 } 1290 }
1291#ifndef DESKTOP_VERSION 1291#ifndef DESKTOP_VERSION
1292 if ( sharpFormat ) 1292 if ( sharpFormat )
1293 sharpFormat->save(calendar); 1293 sharpFormat->save(calendar);
1294#endif 1294#endif
1295 if ( phoneFormat ) 1295 if ( phoneFormat )
1296 phoneFormat->save(calendar); 1296 phoneFormat->save(calendar);
1297 iL = calendar->rawIncidences(); 1297 iL = calendar->rawIncidences();
1298 inc = iL.first(); 1298 inc = iL.first();
1299 Incidence* loc; 1299 Incidence* loc;
1300 while ( inc ) { 1300 while ( inc ) {
1301 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { 1301 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) {
1302 loc = mCalendar->incidence(inc->uid() ); 1302 loc = mCalendar->incidence(inc->uid() );
1303 if ( loc ) { 1303 if ( loc ) {
1304 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); 1304 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) );
1305 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) ); 1305 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) );
1306 } 1306 }
1307 } 1307 }
1308 inc = iL.next(); 1308 inc = iL.next();
1309 } 1309 }
1310 Incidence* lse = getLastSyncEvent(); 1310 Incidence* lse = getLastSyncEvent();
1311 if ( lse ) { 1311 if ( lse ) {
1312 lse->setReadOnly( false ); 1312 lse->setReadOnly( false );
1313 lse->setDescription( "" ); 1313 lse->setDescription( "" );
1314 lse->setReadOnly( true ); 1314 lse->setReadOnly( true );
1315 } 1315 }
1316 } 1316 }
1317 } 1317 }
1318 setModified( true ); 1318 setModified( true );
1319 } else { 1319 } else {
1320 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ; 1320 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ;
1321 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"), 1321 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"),
1322 question, i18n("Ok")) ; 1322 question, i18n("Ok")) ;
1323 1323
1324 } 1324 }
1325 delete calendar; 1325 delete calendar;
1326 updateView(); 1326 updateView();
1327 return ;//syncOK; 1327 return ;//syncOK;
1328 1328
1329} 1329}
1330void CalendarView::syncSharp() 1330void CalendarView::syncSharp()
1331{ 1331{
1332 syncExternal( 0 ); 1332 syncExternal( 0 );
1333 1333
1334} 1334}
1335 1335
1336 1336
1337//#include <kabc/stdaddressbook.h> 1337//#include <kabc/stdaddressbook.h>
1338bool CalendarView::importBday() 1338bool CalendarView::importBday()
1339{ 1339{
1340#if 0 1340#if 0
1341 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 1341 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
1342 KABC::AddressBook::Iterator it; 1342 KABC::AddressBook::Iterator it;
1343 int count = 0; 1343 int count = 0;
1344 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1344 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1345 ++count; 1345 ++count;
1346 } 1346 }
1347 QProgressBar bar(count,0 ); 1347 QProgressBar bar(count,0 );