summaryrefslogtreecommitdiffabout
path: root/korganizer/calendarview.cpp
Unidiff
Diffstat (limited to 'korganizer/calendarview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index ccacc52..a350c3b 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1179,104 +1179,104 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b
1179 if ( equ ) { 1179 if ( equ ) {
1180 //qDebug("equal "); 1180 //qDebug("equal ");
1181 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1181 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1182 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); 1182 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) );
1183 } 1183 }
1184 if ( mode < SYNC_PREF_FORCE_LOCAL ) 1184 if ( mode < SYNC_PREF_FORCE_LOCAL )
1185 return 0; 1185 return 0;
1186 1186
1187 }//else //debug only 1187 }//else //debug only
1188 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); 1188 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1());
1189 } 1189 }
1190 int result; 1190 int result;
1191 bool localIsNew; 1191 bool localIsNew;
1192 //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() ); 1192 //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() );
1193 1193
1194 1194
1195 // ************************************************ 1195 // ************************************************
1196 // ************************************************ 1196 // ************************************************
1197 // ************************************************ 1197 // ************************************************
1198 // We may have that lastSync > remoteMod AND lastSync > localMod 1198 // We may have that lastSync > remoteMod AND lastSync > localMod
1199 // BUT remoteMod != localMod 1199 // BUT remoteMod != localMod
1200 1200
1201 1201
1202 if ( full && mode < SYNC_PREF_NEWEST ) 1202 if ( full && mode < SYNC_PREF_NEWEST )
1203 mode = SYNC_PREF_ASK; 1203 mode = SYNC_PREF_ASK;
1204 1204
1205 switch( mode ) { 1205 switch( mode ) {
1206 case SYNC_PREF_LOCAL: 1206 case SYNC_PREF_LOCAL:
1207 if ( lastSync > remoteMod ) 1207 if ( lastSync > remoteMod )
1208 return 1; 1208 return 1;
1209 if ( lastSync > localMod ) 1209 if ( lastSync > localMod )
1210 return 2; 1210 return 2;
1211 return 1; 1211 return 1;
1212 break; 1212 break;
1213 case SYNC_PREF_REMOTE: 1213 case SYNC_PREF_REMOTE:
1214 if ( lastSync > localMod ) 1214 if ( lastSync > localMod )
1215 return 2; 1215 return 2;
1216 if ( lastSync > remoteMod ) 1216 if ( lastSync > remoteMod )
1217 return 1; 1217 return 1;
1218 return 2; 1218 return 2;
1219 break; 1219 break;
1220 case SYNC_PREF_NEWEST: 1220 case SYNC_PREF_NEWEST:
1221 if ( localMod >= remoteMod ) 1221 if ( localMod >= remoteMod )
1222 return 1; 1222 return 1;
1223 else 1223 else
1224 return 2; 1224 return 2;
1225 break; 1225 break;
1226 case SYNC_PREF_ASK: 1226 case SYNC_PREF_ASK:
1227 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 1227 qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
1228 if ( lastSync > remoteMod && lastSync > localMod) 1228 if ( lastSync > remoteMod && lastSync > localMod)
1229 return 0; 1229 return 0;
1230 if ( lastSync > remoteMod ) 1230 if ( lastSync > remoteMod )
1231 return 1; 1231 return 1;
1232 if ( lastSync > localMod ) 1232 if ( lastSync > localMod )
1233 return 2; 1233 return 2;
1234 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 1234 qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
1235 localIsNew = localMod >= remoteMod; 1235 localIsNew = localMod >= remoteMod;
1236 if ( localIsNew ) 1236 if ( localIsNew )
1237 getEventViewerDialog()->setColorMode( 1 ); 1237 getEventViewerDialog()->setColorMode( 1 );
1238 else 1238 else
1239 getEventViewerDialog()->setColorMode( 2 ); 1239 getEventViewerDialog()->setColorMode( 2 );
1240 getEventViewerDialog()->setIncidence(local); 1240 getEventViewerDialog()->setIncidence(local);
1241 if ( localIsNew ) 1241 if ( localIsNew )
1242 getEventViewerDialog()->setColorMode( 2 ); 1242 getEventViewerDialog()->setColorMode( 2 );
1243 else 1243 else
1244 getEventViewerDialog()->setColorMode( 1 ); 1244 getEventViewerDialog()->setColorMode( 1 );
1245 getEventViewerDialog()->addIncidence(remote); 1245 getEventViewerDialog()->addIncidence(remote);
1246 getEventViewerDialog()->setColorMode( 0 ); 1246 getEventViewerDialog()->setColorMode( 0 );
1247 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); 1247 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() );
1248 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!")); 1248 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!"));
1249 getEventViewerDialog()->showMe(); 1249 getEventViewerDialog()->showMe();
1250 result = getEventViewerDialog()->executeS( localIsNew ); 1250 result = getEventViewerDialog()->executeS( localIsNew );
1251 return result; 1251 return result;
1252 1252
1253 break; 1253 break;
1254 case SYNC_PREF_FORCE_LOCAL: 1254 case SYNC_PREF_FORCE_LOCAL:
1255 return 1; 1255 return 1;
1256 break; 1256 break;
1257 case SYNC_PREF_FORCE_REMOTE: 1257 case SYNC_PREF_FORCE_REMOTE:
1258 return 2; 1258 return 2;
1259 break; 1259 break;
1260 1260
1261 default: 1261 default:
1262 // SYNC_PREF_TAKE_BOTH not implemented 1262 // SYNC_PREF_TAKE_BOTH not implemented
1263 break; 1263 break;
1264 } 1264 }
1265 return 0; 1265 return 0;
1266} 1266}
1267Event* CalendarView::getLastSyncEvent() 1267Event* CalendarView::getLastSyncEvent()
1268{ 1268{
1269 Event* lse; 1269 Event* lse;
1270 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 1270 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
1271 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice ); 1271 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice );
1272 if (!lse) { 1272 if (!lse) {
1273 lse = new Event(); 1273 lse = new Event();
1274 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice ); 1274 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice );
1275 QString sum = ""; 1275 QString sum = "";
1276 if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) 1276 if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) )
1277 sum = "E: "; 1277 sum = "E: ";
1278 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); 1278 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event"));
1279 lse->setDtStart( mLastCalendarSync ); 1279 lse->setDtStart( mLastCalendarSync );
1280 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 1280 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
1281 lse->setCategories( i18n("SyncEvent") ); 1281 lse->setCategories( i18n("SyncEvent") );
1282 lse->setReadOnly( true ); 1282 lse->setReadOnly( true );
@@ -1314,119 +1314,120 @@ void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* t
1314 eve->setReadOnly( true ); 1314 eve->setReadOnly( true );
1315 } 1315 }
1316 eve = lastSync.next(); 1316 eve = lastSync.next();
1317 } 1317 }
1318 1318
1319} 1319}
1320void CalendarView::checkExternalId( Incidence * inc ) 1320void CalendarView::checkExternalId( Incidence * inc )
1321{ 1321{
1322 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ; 1322 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ;
1323 checkExternSyncEvent( lastSync, inc ); 1323 checkExternSyncEvent( lastSync, inc );
1324 1324
1325} 1325}
1326bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) 1326bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode )
1327{ 1327{
1328 bool syncOK = true; 1328 bool syncOK = true;
1329 int addedEvent = 0; 1329 int addedEvent = 0;
1330 int addedEventR = 0; 1330 int addedEventR = 0;
1331 int deletedEventR = 0; 1331 int deletedEventR = 0;
1332 int deletedEventL = 0; 1332 int deletedEventL = 0;
1333 int changedLocal = 0; 1333 int changedLocal = 0;
1334 int changedRemote = 0; 1334 int changedRemote = 0;
1335 int filteredIN = 0; 1335 int filteredIN = 0;
1336 int filteredOUT = 0; 1336 int filteredOUT = 0;
1337 //QPtrList<Event> el = local->rawEvents(); 1337 //QPtrList<Event> el = local->rawEvents();
1338 Event* eventR; 1338 Event* eventR;
1339 QString uid; 1339 QString uid;
1340 int take; 1340 int take;
1341 Event* eventRSync; 1341 Event* eventRSync;
1342 Event* eventLSync; 1342 Event* eventLSync;
1343 clearAllViews(); 1343 clearAllViews();
1344 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); 1344 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents();
1345 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); 1345 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents();
1346 bool fullDateRange = false; 1346 bool fullDateRange = false;
1347 local->resetTempSyncStat(); 1347 local->resetTempSyncStat();
1348 mLastCalendarSync = QDateTime::currentDateTime(); 1348 mLastCalendarSync = QDateTime::currentDateTime();
1349 if ( mSyncManager->syncWithDesktop() ) { 1349 if ( mSyncManager->syncWithDesktop() ) {
1350 remote->resetPilotStat(1); 1350 remote->resetPilotStat(1);
1351 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 1351 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
1352 mLastCalendarSync = KSyncManager::mRequestedSyncEvent; 1352 mLastCalendarSync = KSyncManager::mRequestedSyncEvent;
1353 qDebug("KO: using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() ); 1353 qDebug("KO: using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() );
1354 } else { 1354 } else {
1355 qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime "); 1355 qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime ");
1356 } 1356 }
1357 } 1357 }
1358 QDateTime modifiedCalendar = mLastCalendarSync; 1358 QDateTime modifiedCalendar = mLastCalendarSync;
1359 eventLSync = getLastSyncEvent(); 1359 eventLSync = getLastSyncEvent();
1360 eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); 1360 eventR = remote->event("last-syncEvent-"+mCurrentSyncName );
1361 if ( eventR ) { 1361 if ( eventR ) {
1362 qDebug("last-syncEvent on remote found ");
1362 eventRSync = (Event*) eventR->clone(); 1363 eventRSync = (Event*) eventR->clone();
1363 remote->deleteEvent(eventR ); 1364 remote->deleteEvent(eventR );
1364 1365
1365 } else { 1366 } else {
1366 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) { 1367 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) {
1367 eventRSync = (Event*)eventLSync->clone(); 1368 eventRSync = (Event*)eventLSync->clone();
1368 } else { 1369 } else {
1369 fullDateRange = true; 1370 fullDateRange = true;
1370 eventRSync = new Event(); 1371 eventRSync = new Event();
1371 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); 1372 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event"));
1372 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); 1373 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName );
1373 eventRSync->setDtStart( mLastCalendarSync ); 1374 eventRSync->setDtStart( mLastCalendarSync );
1374 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 1375 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
1375 eventRSync->setCategories( i18n("SyncEvent") ); 1376 eventRSync->setCategories( i18n("SyncEvent") );
1376 } 1377 }
1377 } 1378 }
1378 if ( eventLSync->dtStart() == mLastCalendarSync ) 1379 if ( eventLSync->dtStart() == mLastCalendarSync )
1379 fullDateRange = true; 1380 fullDateRange = true;
1380 1381
1381 if ( ! fullDateRange ) { 1382 if ( ! fullDateRange ) {
1382 if ( eventLSync->dtStart() != eventRSync->dtStart() ) { 1383 if ( eventLSync->dtStart() != eventRSync->dtStart() ) {
1383 1384
1384 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); 1385 qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() );
1385 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); 1386 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec());
1386 fullDateRange = true; 1387 fullDateRange = true;
1387 } 1388 }
1388 } 1389 }
1389 if ( mSyncManager->syncWithDesktop() ) { 1390 if ( mSyncManager->syncWithDesktop() ) {
1390 fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync ); 1391 fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync );
1391 } 1392 }
1392 if ( fullDateRange ) 1393 if ( fullDateRange )
1393 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); 1394 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365);
1394 else 1395 else
1395 mLastCalendarSync = eventLSync->dtStart(); 1396 mLastCalendarSync = eventLSync->dtStart();
1396 // for resyncing if own file has changed 1397 // for resyncing if own file has changed
1397 if ( mCurrentSyncDevice == "deleteaftersync" ) { 1398 if ( mCurrentSyncDevice == "deleteaftersync" ) {
1398 mLastCalendarSync = loadedFileVersion; 1399 mLastCalendarSync = loadedFileVersion;
1399 //qDebug("setting mLastCalendarSync "); 1400 //qDebug("setting mLastCalendarSync ");
1400 } 1401 }
1401 //qDebug("*************************** "); 1402 //qDebug("*************************** ");
1402 qDebug("KO: mLastCalendarSync %s .Full: %d",mLastCalendarSync.toString().latin1(), fullDateRange); 1403 qDebug("KO: mLastCalendarSync %s .Full: %d",mLastCalendarSync.toString().latin1(), fullDateRange);
1403 QPtrList<Incidence> er = remote->rawIncidences(); 1404 QPtrList<Incidence> er = remote->rawIncidences();
1404 Incidence* inR = er.first(); 1405 Incidence* inR = er.first();
1405 Incidence* inL; 1406 Incidence* inL;
1406 QProgressBar bar( er.count(),0 ); 1407 QProgressBar bar( er.count(),0 );
1407 bar.setCaption (i18n("Syncing - close to abort!") ); 1408 bar.setCaption (i18n("Syncing - close to abort!") );
1408 1409
1409 // ************** setting up filter ************* 1410 // ************** setting up filter *************
1410 CalFilter *filterIN = 0; 1411 CalFilter *filterIN = 0;
1411 CalFilter *filterOUT = 0; 1412 CalFilter *filterOUT = 0;
1412 CalFilter *filter = mFilters.first(); 1413 CalFilter *filter = mFilters.first();
1413 while(filter) { 1414 while(filter) {
1414 if ( filter->name() == mSyncManager->mFilterInCal ) 1415 if ( filter->name() == mSyncManager->mFilterInCal )
1415 filterIN = filter; 1416 filterIN = filter;
1416 if ( filter->name() == mSyncManager->mFilterOutCal ) 1417 if ( filter->name() == mSyncManager->mFilterOutCal )
1417 filterOUT = filter; 1418 filterOUT = filter;
1418 filter = mFilters.next(); 1419 filter = mFilters.next();
1419 } 1420 }
1420 int w = 300; 1421 int w = 300;
1421 if ( QApplication::desktop()->width() < 320 ) 1422 if ( QApplication::desktop()->width() < 320 )
1422 w = 220; 1423 w = 220;
1423 int h = bar.sizeHint().height() ; 1424 int h = bar.sizeHint().height() ;
1424 int dw = QApplication::desktop()->width(); 1425 int dw = QApplication::desktop()->width();
1425 int dh = QApplication::desktop()->height(); 1426 int dh = QApplication::desktop()->height();
1426 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1427 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1427 bar.show(); 1428 bar.show();
1428 int modulo = (er.count()/10)+1; 1429 int modulo = (er.count()/10)+1;
1429 int incCounter = 0; 1430 int incCounter = 0;
1430 while ( inR ) { 1431 while ( inR ) {
1431 if ( ! bar.isVisible() ) 1432 if ( ! bar.isVisible() )
1432 return false; 1433 return false;