summaryrefslogtreecommitdiffabout
path: root/korganizer/calendarview.cpp
Unidiff
Diffstat (limited to 'korganizer/calendarview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/calendarview.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index a350c3b..7044e90 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1432,64 +1432,66 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1432 if ( ! bar.isVisible() ) 1432 if ( ! bar.isVisible() )
1433 return false; 1433 return false;
1434 if ( incCounter % modulo == 0 ) 1434 if ( incCounter % modulo == 0 )
1435 bar.setProgress( incCounter ); 1435 bar.setProgress( incCounter );
1436 ++incCounter; 1436 ++incCounter;
1437 uid = inR->uid(); 1437 uid = inR->uid();
1438 bool skipIncidence = false; 1438 bool skipIncidence = false;
1439 if ( uid.left(15) == QString("last-syncEvent-") ) 1439 if ( uid.left(15) == QString("last-syncEvent-") )
1440 skipIncidence = true; 1440 skipIncidence = true;
1441 QString idS; 1441 QString idS;
1442 qApp->processEvents(); 1442 qApp->processEvents();
1443 if ( !skipIncidence ) { 1443 if ( !skipIncidence ) {
1444 inL = local->incidence( uid ); 1444 inL = local->incidenceForUid( uid , false );
1445 if ( inL ) { // maybe conflict - same uid in both calendars 1445 if ( inL ) { // maybe conflict - same uid in both calendars
1446 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { 1446 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
1447 //qDebug("take %d %s ", take, inL->summary().latin1()); 1447 //qDebug("take %d %s ", take, inL->summary().latin1());
1448 if ( take == 3 ) 1448 if ( take == 3 )
1449 return false; 1449 return false;
1450 if ( take == 1 ) {// take local ********************** 1450 if ( take == 1 ) {// take local **********************
1451 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 1451 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
1452 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1452 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1453 else 1453 else
1454 idS = inR->IDStr(); 1454 idS = inR->IDStr();
1455 int calID = inR->calID(); 1455 int calID = inR->calID();
1456 remote->deleteIncidence( inR ); 1456 remote->deleteIncidence( inR );
1457 inR = inL->clone(); 1457 inR = inL->clone();
1458 inR->setCalID( calID ); 1458 inR->setCalID( calID );
1459 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1459 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1460 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL ) 1460 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
1461 inR->setIDStr( idS ); 1461 inR->setIDStr( idS );
1462 remote->addIncidence( inR ); 1462 remote->addIncidence( inR );
1463 if ( mSyncManager->syncWithDesktop() ) 1463 if ( mSyncManager->syncWithDesktop() )
1464 inR->setPilotId( 2 ); 1464 inR->setPilotId( 2 );
1465 ++changedRemote; 1465 ++changedRemote;
1466 } else {// take remote ********************** 1466 } else {// take remote **********************
1467 if ( !inL->isReadOnly() ) {
1467 idS = inL->IDStr(); 1468 idS = inL->IDStr();
1468 int pid = inL->pilotId(); 1469 int pid = inL->pilotId();
1469 int calID = inL->calID(); 1470 int calID = inL->calID();
1470 local->deleteIncidence( inL ); 1471 local->deleteIncidence( inL );
1471 inL = inR->clone(); 1472 inL = inR->clone();
1472 inL->setCalID( calID ); 1473 inL->setCalID( calID );
1473 if ( mSyncManager->syncWithDesktop() ) 1474 if ( mSyncManager->syncWithDesktop() )
1474 inL->setPilotId( pid ); 1475 inL->setPilotId( pid );
1475 inL->setIDStr( idS ); 1476 inL->setIDStr( idS );
1476 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1477 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1477 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1478 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1478 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1479 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1479 } 1480 }
1480 local->addIncidence( inL ); 1481 local->addIncidence( inL );
1481 ++changedLocal; 1482 ++changedLocal;
1482 } 1483 }
1483 } 1484 }
1485 }
1484 } else { // no conflict ********** add or delete remote 1486 } else { // no conflict ********** add or delete remote
1485 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ 1487 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){
1486 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1488 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1487 QString des = eventLSync->description(); 1489 QString des = eventLSync->description();
1488 QString pref = "e"; 1490 QString pref = "e";
1489 if ( inR->typeID() == todoID ) 1491 if ( inR->typeID() == todoID )
1490 pref = "t"; 1492 pref = "t";
1491 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 1493 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
1492 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1494 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1493 //remote->deleteIncidence( inR ); 1495 //remote->deleteIncidence( inR );
1494 ++deletedEventR; 1496 ++deletedEventR;
1495 } else { 1497 } else {
@@ -1540,25 +1542,25 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1540 if ( ! bar.isVisible() ) 1542 if ( ! bar.isVisible() )
1541 return false; 1543 return false;
1542 if ( incCounter % modulo == 0 ) 1544 if ( incCounter % modulo == 0 )
1543 bar.setProgress( incCounter ); 1545 bar.setProgress( incCounter );
1544 ++incCounter; 1546 ++incCounter;
1545 uid = inL->uid(); 1547 uid = inL->uid();
1546 bool skipIncidence = false; 1548 bool skipIncidence = false;
1547 if ( uid.left(15) == QString("last-syncEvent-") ) 1549 if ( uid.left(15) == QString("last-syncEvent-") )
1548 skipIncidence = true; 1550 skipIncidence = true;
1549 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->typeID() == journalID ) 1551 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->typeID() == journalID )
1550 skipIncidence = true; 1552 skipIncidence = true;
1551 if ( !skipIncidence ) { 1553 if ( !skipIncidence ) {
1552 inR = remote->incidence( uid ); 1554 inR = remote->incidenceForUid( uid , true );
1553 if ( ! inR ) { 1555 if ( ! inR ) {
1554 if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ 1556 if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){
1555 // no conflict ********** add or delete local 1557 // no conflict ********** add or delete local
1556 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1558 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1557 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 1559 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
1558 checkExternSyncEvent(eventLSyncSharp, inL); 1560 checkExternSyncEvent(eventLSyncSharp, inL);
1559 local->deleteIncidence( inL ); 1561 local->deleteIncidence( inL );
1560 ++deletedEventL; 1562 ++deletedEventL;
1561 } else { 1563 } else {
1562 if ( ! mSyncManager->mWriteBackExistingOnly ) { 1564 if ( ! mSyncManager->mWriteBackExistingOnly ) {
1563 inL->removeID(mCurrentSyncDevice ); 1565 inL->removeID(mCurrentSyncDevice );
1564 ++addedEventR; 1566 ++addedEventR;