-rw-r--r-- | korganizer/calendarview.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index e45240a..6128137 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -1404,329 +1404,332 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b | |||
1404 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 1404 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
1405 | bool remCh, locCh; | 1405 | bool remCh, locCh; |
1406 | remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); | 1406 | remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); |
1407 | //if ( remCh ) | 1407 | //if ( remCh ) |
1408 | //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); | 1408 | //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); |
1409 | locCh = ( localMod > mLastCalendarSync ); | 1409 | locCh = ( localMod > mLastCalendarSync ); |
1410 | if ( !remCh && ! locCh ) { | 1410 | if ( !remCh && ! locCh ) { |
1411 | //qDebug("both not changed "); | 1411 | //qDebug("both not changed "); |
1412 | lastSync = localMod.addDays(1); | 1412 | lastSync = localMod.addDays(1); |
1413 | if ( mode <= SYNC_PREF_ASK ) | 1413 | if ( mode <= SYNC_PREF_ASK ) |
1414 | return 0; | 1414 | return 0; |
1415 | } else { | 1415 | } else { |
1416 | if ( locCh ) { | 1416 | if ( locCh ) { |
1417 | //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1()); | 1417 | //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1()); |
1418 | lastSync = localMod.addDays( -1 ); | 1418 | lastSync = localMod.addDays( -1 ); |
1419 | if ( !remCh ) | 1419 | if ( !remCh ) |
1420 | remoteMod = ( lastSync.addDays( -1 ) ); | 1420 | remoteMod = ( lastSync.addDays( -1 ) ); |
1421 | } else { | 1421 | } else { |
1422 | //qDebug(" not loc changed "); | 1422 | //qDebug(" not loc changed "); |
1423 | lastSync = localMod.addDays( 1 ); | 1423 | lastSync = localMod.addDays( 1 ); |
1424 | if ( remCh ) | 1424 | if ( remCh ) |
1425 | remoteMod =( lastSync.addDays( 1 ) ); | 1425 | remoteMod =( lastSync.addDays( 1 ) ); |
1426 | 1426 | ||
1427 | } | 1427 | } |
1428 | } | 1428 | } |
1429 | full = true; | 1429 | full = true; |
1430 | if ( mode < SYNC_PREF_ASK ) | 1430 | if ( mode < SYNC_PREF_ASK ) |
1431 | mode = SYNC_PREF_ASK; | 1431 | mode = SYNC_PREF_ASK; |
1432 | } else { | 1432 | } else { |
1433 | if ( localMod == remoteMod ) | 1433 | if ( localMod == remoteMod ) |
1434 | // if ( local->revision() == remote->revision() ) | 1434 | // if ( local->revision() == remote->revision() ) |
1435 | return 0; | 1435 | return 0; |
1436 | 1436 | ||
1437 | } | 1437 | } |
1438 | // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() ); | 1438 | // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() ); |
1439 | 1439 | ||
1440 | //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision()); | 1440 | //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision()); |
1441 | //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() ); | 1441 | //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() ); |
1442 | //full = true; //debug only | 1442 | //full = true; //debug only |
1443 | if ( full ) { | 1443 | if ( full ) { |
1444 | bool equ = false; | 1444 | bool equ = false; |
1445 | if ( local->typeID() == eventID ) { | 1445 | if ( local->typeID() == eventID ) { |
1446 | equ = (*((Event*) local) == *((Event*) remote)); | 1446 | equ = (*((Event*) local) == *((Event*) remote)); |
1447 | } | 1447 | } |
1448 | else if ( local->typeID() == todoID ) | 1448 | else if ( local->typeID() == todoID ) |
1449 | equ = (*((Todo*) local) == (*(Todo*) remote)); | 1449 | equ = (*((Todo*) local) == (*(Todo*) remote)); |
1450 | else if ( local->typeID() == journalID ) | 1450 | else if ( local->typeID() == journalID ) |
1451 | equ = (*((Journal*) local) == *((Journal*) remote)); | 1451 | equ = (*((Journal*) local) == *((Journal*) remote)); |
1452 | if ( equ ) { | 1452 | if ( equ ) { |
1453 | //qDebug("equal "); | 1453 | //qDebug("equal "); |
1454 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 1454 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
1455 | local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); | 1455 | local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); |
1456 | } | 1456 | } |
1457 | if ( mode < SYNC_PREF_FORCE_LOCAL ) | 1457 | if ( mode < SYNC_PREF_FORCE_LOCAL ) |
1458 | return 0; | 1458 | return 0; |
1459 | 1459 | ||
1460 | }//else //debug only | 1460 | }//else //debug only |
1461 | //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); | 1461 | //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); |
1462 | } | 1462 | } |
1463 | int result; | 1463 | int result; |
1464 | bool localIsNew; | 1464 | bool localIsNew; |
1465 | //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() ); | 1465 | //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() ); |
1466 | 1466 | ||
1467 | 1467 | ||
1468 | // ************************************************ | 1468 | // ************************************************ |
1469 | // ************************************************ | 1469 | // ************************************************ |
1470 | // ************************************************ | 1470 | // ************************************************ |
1471 | // We may have that lastSync > remoteMod AND lastSync > localMod | 1471 | // We may have that lastSync > remoteMod AND lastSync > localMod |
1472 | // BUT remoteMod != localMod | 1472 | // BUT remoteMod != localMod |
1473 | 1473 | ||
1474 | 1474 | ||
1475 | if ( full && mode < SYNC_PREF_NEWEST ) | 1475 | if ( full && mode < SYNC_PREF_NEWEST ) |
1476 | mode = SYNC_PREF_ASK; | 1476 | mode = SYNC_PREF_ASK; |
1477 | 1477 | ||
1478 | switch( mode ) { | 1478 | switch( mode ) { |
1479 | case SYNC_PREF_LOCAL: | 1479 | case SYNC_PREF_LOCAL: |
1480 | if ( lastSync > remoteMod ) | 1480 | if ( lastSync > remoteMod ) |
1481 | return 1; | 1481 | return 1; |
1482 | if ( lastSync > localMod ) | 1482 | if ( lastSync > localMod ) |
1483 | return 2; | 1483 | return 2; |
1484 | return 1; | 1484 | return 1; |
1485 | break; | 1485 | break; |
1486 | case SYNC_PREF_REMOTE: | 1486 | case SYNC_PREF_REMOTE: |
1487 | if ( lastSync > localMod ) | 1487 | if ( lastSync > localMod ) |
1488 | return 2; | 1488 | return 2; |
1489 | if ( lastSync > remoteMod ) | 1489 | if ( lastSync > remoteMod ) |
1490 | return 1; | 1490 | return 1; |
1491 | return 2; | 1491 | return 2; |
1492 | break; | 1492 | break; |
1493 | case SYNC_PREF_NEWEST: | 1493 | case SYNC_PREF_NEWEST: |
1494 | if ( localMod >= remoteMod ) | 1494 | if ( localMod >= remoteMod ) |
1495 | return 1; | 1495 | return 1; |
1496 | else | 1496 | else |
1497 | return 2; | 1497 | return 2; |
1498 | break; | 1498 | break; |
1499 | case SYNC_PREF_ASK: | 1499 | case SYNC_PREF_ASK: |
1500 | qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); | 1500 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); |
1501 | if ( lastSync > remoteMod && lastSync > localMod) | 1501 | if ( lastSync > remoteMod && lastSync > localMod) |
1502 | return 0; | 1502 | return 0; |
1503 | if ( lastSync > remoteMod ) | 1503 | if ( lastSync > remoteMod ) |
1504 | return 1; | 1504 | return 1; |
1505 | if ( lastSync > localMod ) | 1505 | if ( lastSync > localMod ) |
1506 | return 2; | 1506 | return 2; |
1507 | qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); | 1507 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); |
1508 | localIsNew = localMod >= remoteMod; | 1508 | localIsNew = localMod >= remoteMod; |
1509 | if ( localIsNew ) | 1509 | if ( localIsNew ) |
1510 | getEventViewerDialog()->setColorMode( 1 ); | 1510 | getEventViewerDialog()->setColorMode( 1 ); |
1511 | else | 1511 | else |
1512 | getEventViewerDialog()->setColorMode( 2 ); | 1512 | getEventViewerDialog()->setColorMode( 2 ); |
1513 | getEventViewerDialog()->setIncidence(local); | 1513 | getEventViewerDialog()->setIncidence(local); |
1514 | if ( localIsNew ) | 1514 | if ( localIsNew ) |
1515 | getEventViewerDialog()->setColorMode( 2 ); | 1515 | getEventViewerDialog()->setColorMode( 2 ); |
1516 | else | 1516 | else |
1517 | getEventViewerDialog()->setColorMode( 1 ); | 1517 | getEventViewerDialog()->setColorMode( 1 ); |
1518 | getEventViewerDialog()->addIncidence(remote); | 1518 | getEventViewerDialog()->addIncidence(remote); |
1519 | getEventViewerDialog()->setColorMode( 0 ); | 1519 | getEventViewerDialog()->setColorMode( 0 ); |
1520 | //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); | 1520 | //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); |
1521 | getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!")); | 1521 | getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!")); |
1522 | getEventViewerDialog()->showMe(); | 1522 | getEventViewerDialog()->showMe(); |
1523 | result = getEventViewerDialog()->executeS( localIsNew ); | 1523 | result = getEventViewerDialog()->executeS( localIsNew ); |
1524 | return result; | 1524 | return result; |
1525 | 1525 | ||
1526 | break; | 1526 | break; |
1527 | case SYNC_PREF_FORCE_LOCAL: | 1527 | case SYNC_PREF_FORCE_LOCAL: |
1528 | return 1; | 1528 | return 1; |
1529 | break; | 1529 | break; |
1530 | case SYNC_PREF_FORCE_REMOTE: | 1530 | case SYNC_PREF_FORCE_REMOTE: |
1531 | return 2; | 1531 | return 2; |
1532 | break; | 1532 | break; |
1533 | 1533 | ||
1534 | default: | 1534 | default: |
1535 | // SYNC_PREF_TAKE_BOTH not implemented | 1535 | // SYNC_PREF_TAKE_BOTH not implemented |
1536 | break; | 1536 | break; |
1537 | } | 1537 | } |
1538 | return 0; | 1538 | return 0; |
1539 | } | 1539 | } |
1540 | Event* CalendarView::getLastSyncEvent() | 1540 | Event* CalendarView::getLastSyncEvent() |
1541 | { | 1541 | { |
1542 | Event* lse; | 1542 | Event* lse; |
1543 | //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); | 1543 | //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); |
1544 | mCalendar->setSyncEventsEnabled(); | ||
1544 | lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice ); | 1545 | lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice ); |
1545 | if (!lse) { | 1546 | if (!lse) { |
1547 | qDebug("KO: New last Syncevent created for local: %s",mCurrentSyncDevice.latin1() ); | ||
1546 | lse = new Event(); | 1548 | lse = new Event(); |
1547 | lse->setUid( "last-syncEvent-"+mCurrentSyncDevice ); | 1549 | lse->setUid( "last-syncEvent-"+mCurrentSyncDevice ); |
1548 | QString sum = ""; | 1550 | QString sum = ""; |
1549 | if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) | 1551 | if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) |
1550 | sum = "E: "; | 1552 | sum = "E: "; |
1551 | lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); | 1553 | lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); |
1552 | lse->setDtStart( mLastCalendarSync ); | 1554 | lse->setDtStart( mLastCalendarSync ); |
1553 | lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); | 1555 | lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); |
1554 | lse->setCategories( i18n("SyncEvent") ); | 1556 | lse->setCategories( i18n("SyncEvent") ); |
1555 | lse->setReadOnly( true ); | 1557 | lse->setReadOnly( true ); |
1556 | lse->setCalID( 1 ); | 1558 | lse->setCalID( 1 ); |
1557 | mCalendar->addEvent( lse ); | 1559 | mCalendar->addEvent( lse ); |
1558 | } | 1560 | } else |
1561 | qDebug("KO: Last Syncevent on local found"); | ||
1559 | 1562 | ||
1560 | return lse; | 1563 | return lse; |
1561 | 1564 | ||
1562 | } | 1565 | } |
1563 | 1566 | ||
1564 | // we check, if the to delete event has a id for a profile | 1567 | // we check, if the to delete event has a id for a profile |
1565 | // if yes, we set this id in the profile to delete | 1568 | // if yes, we set this id in the profile to delete |
1566 | void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ) | 1569 | void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ) |
1567 | { | 1570 | { |
1568 | if ( lastSync.count() == 0 ) { | 1571 | if ( lastSync.count() == 0 ) { |
1569 | //qDebug(" lastSync.count() == 0"); | 1572 | //qDebug(" lastSync.count() == 0"); |
1570 | return; | 1573 | return; |
1571 | } | 1574 | } |
1572 | if ( toDelete->typeID() == journalID ) | 1575 | if ( toDelete->typeID() == journalID ) |
1573 | return; | 1576 | return; |
1574 | 1577 | ||
1575 | Event* eve = lastSync.first(); | 1578 | Event* eve = lastSync.first(); |
1576 | 1579 | ||
1577 | while ( eve ) { | 1580 | while ( eve ) { |
1578 | QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name | 1581 | QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name |
1579 | if ( !id.isEmpty() ) { | 1582 | if ( !id.isEmpty() ) { |
1580 | QString des = eve->description(); | 1583 | QString des = eve->description(); |
1581 | QString pref = "e"; | 1584 | QString pref = "e"; |
1582 | if ( toDelete->typeID() == todoID ) | 1585 | if ( toDelete->typeID() == todoID ) |
1583 | pref = "t"; | 1586 | pref = "t"; |
1584 | des += pref+ id + ","; | 1587 | des += pref+ id + ","; |
1585 | eve->setReadOnly( false ); | 1588 | eve->setReadOnly( false ); |
1586 | eve->setDescription( des ); | 1589 | eve->setDescription( des ); |
1587 | //qDebug("setdes %s ", des.latin1()); | 1590 | //qDebug("setdes %s ", des.latin1()); |
1588 | eve->setReadOnly( true ); | 1591 | eve->setReadOnly( true ); |
1589 | } | 1592 | } |
1590 | eve = lastSync.next(); | 1593 | eve = lastSync.next(); |
1591 | } | 1594 | } |
1592 | 1595 | ||
1593 | } | 1596 | } |
1594 | void CalendarView::checkExternalId( Incidence * inc ) | 1597 | void CalendarView::checkExternalId( Incidence * inc ) |
1595 | { | 1598 | { |
1596 | QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ; | 1599 | QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ; |
1597 | checkExternSyncEvent( lastSync, inc ); | 1600 | checkExternSyncEvent( lastSync, inc ); |
1598 | 1601 | ||
1599 | } | 1602 | } |
1600 | bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) | 1603 | bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) |
1601 | { | 1604 | { |
1602 | bool syncOK = true; | 1605 | bool syncOK = true; |
1603 | int addedEvent = 0; | 1606 | int addedEvent = 0; |
1604 | int addedEventR = 0; | 1607 | int addedEventR = 0; |
1605 | int deletedEventR = 0; | 1608 | int deletedEventR = 0; |
1606 | int deletedEventL = 0; | 1609 | int deletedEventL = 0; |
1607 | int changedLocal = 0; | 1610 | int changedLocal = 0; |
1608 | int changedRemote = 0; | 1611 | int changedRemote = 0; |
1609 | int filteredIN = 0; | 1612 | int filteredIN = 0; |
1610 | int filteredOUT = 0; | 1613 | int filteredOUT = 0; |
1611 | //QPtrList<Event> el = local->rawEvents(); | 1614 | //QPtrList<Event> el = local->rawEvents(); |
1612 | Event* eventR; | 1615 | Event* eventR; |
1613 | QString uid; | 1616 | QString uid; |
1614 | int take; | 1617 | int take; |
1615 | Event* eventRSync; | 1618 | Event* eventRSync; |
1616 | Event* eventLSync; | 1619 | Event* eventLSync; |
1617 | clearAllViews(); | 1620 | clearAllViews(); |
1618 | QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); | 1621 | QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); |
1619 | QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); | 1622 | QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); |
1620 | bool fullDateRange = false; | 1623 | bool fullDateRange = false; |
1621 | local->resetTempSyncStat(); | 1624 | local->resetTempSyncStat(); |
1622 | mLastCalendarSync = QDateTime::currentDateTime(); | 1625 | mLastCalendarSync = QDateTime::currentDateTime(); |
1623 | if ( mSyncManager->syncWithDesktop() ) { | 1626 | if ( mSyncManager->syncWithDesktop() ) { |
1624 | remote->resetPilotStat(1); | 1627 | remote->resetPilotStat(1); |
1625 | if ( KSyncManager::mRequestedSyncEvent.isValid() ) { | 1628 | if ( KSyncManager::mRequestedSyncEvent.isValid() ) { |
1626 | mLastCalendarSync = KSyncManager::mRequestedSyncEvent; | 1629 | mLastCalendarSync = KSyncManager::mRequestedSyncEvent; |
1627 | qDebug("KO: using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() ); | 1630 | qDebug("KO: using extern time for calendar sync: %s ", mLastCalendarSync.toString().latin1() ); |
1628 | } else { | 1631 | } else { |
1629 | qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime "); | 1632 | qDebug("KSyncManager::mRequestedSyncEvent has invalid datatime "); |
1630 | } | 1633 | } |
1631 | } | 1634 | } |
1632 | QDateTime modifiedCalendar = mLastCalendarSync; | 1635 | QDateTime modifiedCalendar = mLastCalendarSync; |
1633 | eventLSync = getLastSyncEvent(); | 1636 | eventLSync = getLastSyncEvent(); |
1634 | eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); | 1637 | eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); |
1635 | if ( eventR ) { | 1638 | if ( eventR ) { |
1636 | qDebug("last-syncEvent on remote found "); | 1639 | qDebug("KO: Last-syncEvent on remote found "); |
1637 | eventRSync = (Event*) eventR->clone(); | 1640 | eventRSync = (Event*) eventR->clone(); |
1638 | remote->deleteEvent(eventR ); | 1641 | remote->deleteEvent(eventR ); |
1639 | 1642 | ||
1640 | } else { | 1643 | } else { |
1641 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) { | 1644 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL || mSyncManager->syncWithDesktop()) { |
1642 | eventRSync = (Event*)eventLSync->clone(); | 1645 | eventRSync = (Event*)eventLSync->clone(); |
1643 | } else { | 1646 | } else { |
1644 | fullDateRange = true; | 1647 | fullDateRange = true; |
1645 | eventRSync = new Event(); | 1648 | eventRSync = new Event(); |
1646 | eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); | 1649 | eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); |
1647 | eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); | 1650 | eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); |
1648 | eventRSync->setDtStart( mLastCalendarSync ); | 1651 | eventRSync->setDtStart( mLastCalendarSync ); |
1649 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); | 1652 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); |
1650 | eventRSync->setCategories( i18n("SyncEvent") ); | 1653 | eventRSync->setCategories( i18n("SyncEvent") ); |
1651 | } | 1654 | } |
1652 | } | 1655 | } |
1653 | if ( eventLSync->dtStart() == mLastCalendarSync ) | 1656 | if ( eventLSync->dtStart() == mLastCalendarSync ) |
1654 | fullDateRange = true; | 1657 | fullDateRange = true; |
1655 | 1658 | ||
1656 | if ( ! fullDateRange ) { | 1659 | if ( ! fullDateRange ) { |
1657 | if ( eventLSync->dtStart() != eventRSync->dtStart() ) { | 1660 | if ( eventLSync->dtStart() != eventRSync->dtStart() ) { |
1658 | 1661 | ||
1659 | qDebug("KO: Sync: Set fulldate to true! Local: %s --- Remote: %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); | 1662 | qDebug("KO: Sync: Set fulldate to true! Local: %s --- Remote: %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); |
1660 | //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); | 1663 | //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); |
1661 | fullDateRange = true; | 1664 | fullDateRange = true; |
1662 | } | 1665 | } |
1663 | } | 1666 | } |
1664 | if ( mSyncManager->syncWithDesktop() ) { | 1667 | if ( mSyncManager->syncWithDesktop() ) { |
1665 | fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync ); | 1668 | fullDateRange = ( eventLSync->dtStart() <= mLastCalendarSync && eventLSync->dtStart().addSecs(1) >= mLastCalendarSync ); |
1666 | } | 1669 | } |
1667 | if ( fullDateRange ) | 1670 | if ( fullDateRange ) |
1668 | mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); | 1671 | mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); |
1669 | else | 1672 | else |
1670 | mLastCalendarSync = eventLSync->dtStart(); | 1673 | mLastCalendarSync = eventLSync->dtStart(); |
1671 | // for resyncing if own file has changed | 1674 | // for resyncing if own file has changed |
1672 | if ( mCurrentSyncDevice == "deleteaftersync" ) { | 1675 | if ( mCurrentSyncDevice == "deleteaftersync" ) { |
1673 | mLastCalendarSync = loadedFileVersion; | 1676 | mLastCalendarSync = loadedFileVersion; |
1674 | //qDebug("setting mLastCalendarSync "); | 1677 | //qDebug("setting mLastCalendarSync "); |
1675 | } | 1678 | } |
1676 | //qDebug("*************************** "); | 1679 | //qDebug("*************************** "); |
1677 | qDebug("KO: mLastCalendarSync %s .Full: %d",mLastCalendarSync.toString().latin1(), fullDateRange); | 1680 | qDebug("KO: mLastCalendarSync %s .Full: %d",mLastCalendarSync.toString().latin1(), fullDateRange); |
1678 | QPtrList<Incidence> er = remote->rawIncidences(); | 1681 | QPtrList<Incidence> er = remote->rawIncidences(); |
1679 | Incidence* inR = er.first(); | 1682 | Incidence* inR = er.first(); |
1680 | Incidence* inL; | 1683 | Incidence* inL; |
1681 | QProgressBar bar( er.count(),0 ); | 1684 | QProgressBar bar( er.count(),0 ); |
1682 | bar.setCaption (i18n("Syncing - close to abort!") ); | 1685 | bar.setCaption (i18n("Syncing - close to abort!") ); |
1683 | 1686 | ||
1684 | // ************** setting up filter ************* | 1687 | // ************** setting up filter ************* |
1685 | CalFilter *filterIN = 0; | 1688 | CalFilter *filterIN = 0; |
1686 | CalFilter *filterOUT = 0; | 1689 | CalFilter *filterOUT = 0; |
1687 | CalFilter *filter = mFilters.first(); | 1690 | CalFilter *filter = mFilters.first(); |
1688 | while(filter) { | 1691 | while(filter) { |
1689 | if ( filter->name() == mSyncManager->mFilterInCal ) | 1692 | if ( filter->name() == mSyncManager->mFilterInCal ) |
1690 | filterIN = filter; | 1693 | filterIN = filter; |
1691 | if ( filter->name() == mSyncManager->mFilterOutCal ) | 1694 | if ( filter->name() == mSyncManager->mFilterOutCal ) |
1692 | filterOUT = filter; | 1695 | filterOUT = filter; |
1693 | filter = mFilters.next(); | 1696 | filter = mFilters.next(); |
1694 | } | 1697 | } |
1695 | int w = 300; | 1698 | int w = 300; |
1696 | if ( QApplication::desktop()->width() < 320 ) | 1699 | if ( QApplication::desktop()->width() < 320 ) |
1697 | w = 220; | 1700 | w = 220; |
1698 | int h = bar.sizeHint().height() ; | 1701 | int h = bar.sizeHint().height() ; |
1699 | int dw = QApplication::desktop()->width(); | 1702 | int dw = QApplication::desktop()->width(); |
1700 | int dh = QApplication::desktop()->height(); | 1703 | int dh = QApplication::desktop()->height(); |
1701 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 1704 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
1702 | bar.show(); | 1705 | bar.show(); |
1703 | int modulo = (er.count()/10)+1; | 1706 | int modulo = (er.count()/10)+1; |
1704 | int incCounter = 0; | 1707 | int incCounter = 0; |
1705 | while ( inR ) { | 1708 | while ( inR ) { |
1706 | if ( ! bar.isVisible() ) | 1709 | if ( ! bar.isVisible() ) |
1707 | return false; | 1710 | return false; |
1708 | if ( incCounter % modulo == 0 ) | 1711 | if ( incCounter % modulo == 0 ) |
1709 | bar.setProgress( incCounter ); | 1712 | bar.setProgress( incCounter ); |
1710 | ++incCounter; | 1713 | ++incCounter; |
1711 | uid = inR->uid(); | 1714 | uid = inR->uid(); |
1712 | bool skipIncidence = false; | 1715 | bool skipIncidence = false; |
1713 | if ( uid.left(15) == QString("last-syncEvent-") ) | 1716 | if ( uid.left(15) == QString("last-syncEvent-") ) |
1714 | skipIncidence = true; | 1717 | skipIncidence = true; |
1715 | QString idS; | 1718 | QString idS; |
1716 | qApp->processEvents(); | 1719 | qApp->processEvents(); |
1717 | if ( !skipIncidence ) { | 1720 | if ( !skipIncidence ) { |
1718 | inL = local->incidenceForUid( uid , false ); | 1721 | inL = local->incidenceForUid( uid , false ); |
1719 | if ( inL ) { // maybe conflict - same uid in both calendars | 1722 | if ( inL ) { // maybe conflict - same uid in both calendars |
1720 | if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { | 1723 | if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { |
1721 | //qDebug("take %d %s ", take, inL->summary().latin1()); | 1724 | //qDebug("take %d %s ", take, inL->summary().latin1()); |
1722 | if ( take == 3 ) | 1725 | if ( take == 3 ) |
1723 | return false; | 1726 | return false; |
1724 | if ( take == 1 ) {// take local ********************** | 1727 | if ( take == 1 ) {// take local ********************** |
1725 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) | 1728 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) |
1726 | inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); | 1729 | inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); |
1727 | else | 1730 | else |
1728 | idS = inR->IDStr(); | 1731 | idS = inR->IDStr(); |
1729 | int calID = inR->calID(); | 1732 | int calID = inR->calID(); |
1730 | remote->deleteIncidence( inR ); | 1733 | remote->deleteIncidence( inR ); |
1731 | inR = inL->clone(); | 1734 | inR = inL->clone(); |
1732 | inR->setCalID( calID ); | 1735 | inR->setCalID( calID ); |