-rw-r--r-- | korganizer/calendarview.cpp | 70 |
1 files changed, 38 insertions, 32 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 685bb60..da1edea 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -924,6 +924,8 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int int deletedEventL = 0; int changedLocal = 0; int changedRemote = 0; + int filteredIN = 0; + int filteredOUT = 0; //QPtrList<Event> el = local->rawEvents(); Event* eventR; QString uid; @@ -1101,6 +1103,8 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int ++deletedEventR; } } + } else { + ++filteredIN; } } } @@ -1128,43 +1132,45 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int skipIncidence = true; if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) skipIncidence = true; - if ( filterOUT && ! filterOUT->filterCalendarItem( inL ) ){ - skipIncidence = true; - } if ( !skipIncidence ) { inR = remote->incidence( uid ); - if ( ! inR ) { // no conflict ********** add or delete local - if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { - if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { - checkExternSyncEvent(eventLSyncSharp, inL); - local->deleteIncidence( inL ); - ++deletedEventL; - } else { - if ( ! mSyncManager->mWriteBackExistingOnly ) { - inL->removeID(mCurrentSyncDevice ); - ++addedEventR; - //qDebug("remote added Incidence %s ", inL->summary().latin1()); - inL->setLastModified( modifiedCalendar ); - inR = inL->clone(); - inR->setIDStr( ":" ); - inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); - remote->addIncidence( inR ); + if ( ! inR ) { + if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ + // no conflict ********** add or delete local + if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { + if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { + checkExternSyncEvent(eventLSyncSharp, inL); + local->deleteIncidence( inL ); + ++deletedEventL; + } else { + if ( ! mSyncManager->mWriteBackExistingOnly ) { + inL->removeID(mCurrentSyncDevice ); + ++addedEventR; + //qDebug("remote added Incidence %s ", inL->summary().latin1()); + inL->setLastModified( modifiedCalendar ); + inR = inL->clone(); + inR->setIDStr( ":" ); + inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); + remote->addIncidence( inR ); + } } - } - } else { - if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { - checkExternSyncEvent(eventLSyncSharp, inL); - local->deleteIncidence( inL ); - ++deletedEventL; } else { - if ( ! mSyncManager->mWriteBackExistingOnly ) { - ++addedEventR; - inL->setLastModified( modifiedCalendar ); - inR = inL->clone(); - inR->setIDStr( ":" ); - remote->addIncidence( inR ); + if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { + checkExternSyncEvent(eventLSyncSharp, inL); + local->deleteIncidence( inL ); + ++deletedEventL; + } else { + if ( ! mSyncManager->mWriteBackExistingOnly ) { + ++addedEventR; + inL->setLastModified( modifiedCalendar ); + inR = inL->clone(); + inR->setIDStr( ":" ); + remote->addIncidence( inR ); + } } } + } else { + ++filteredOUT; } } } @@ -1218,7 +1224,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int else delete eventRSync; QString mes; - 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 ); + 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 ); QString delmess; if ( delFut ) { 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); |