-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 | |||
@@ -921,12 +921,14 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
921 | int addedEvent = 0; | 921 | int addedEvent = 0; |
922 | int addedEventR = 0; | 922 | int addedEventR = 0; |
923 | int deletedEventR = 0; | 923 | int deletedEventR = 0; |
924 | int deletedEventL = 0; | 924 | int deletedEventL = 0; |
925 | int changedLocal = 0; | 925 | int changedLocal = 0; |
926 | int changedRemote = 0; | 926 | int changedRemote = 0; |
927 | int filteredIN = 0; | ||
928 | int filteredOUT = 0; | ||
927 | //QPtrList<Event> el = local->rawEvents(); | 929 | //QPtrList<Event> el = local->rawEvents(); |
928 | Event* eventR; | 930 | Event* eventR; |
929 | QString uid; | 931 | QString uid; |
930 | int take; | 932 | int take; |
931 | Event* eventL; | 933 | Event* eventL; |
932 | Event* eventRSync; | 934 | Event* eventRSync; |
@@ -1098,12 +1100,14 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1098 | } else { | 1100 | } else { |
1099 | checkExternSyncEvent(eventRSyncSharp, inR); | 1101 | checkExternSyncEvent(eventRSyncSharp, inR); |
1100 | remote->deleteIncidence( inR ); | 1102 | remote->deleteIncidence( inR ); |
1101 | ++deletedEventR; | 1103 | ++deletedEventR; |
1102 | } | 1104 | } |
1103 | } | 1105 | } |
1106 | } else { | ||
1107 | ++filteredIN; | ||
1104 | } | 1108 | } |
1105 | } | 1109 | } |
1106 | } | 1110 | } |
1107 | inR = er.next(); | 1111 | inR = er.next(); |
1108 | } | 1112 | } |
1109 | QPtrList<Incidence> el = local->rawIncidences(); | 1113 | QPtrList<Incidence> el = local->rawIncidences(); |
@@ -1125,49 +1129,51 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1125 | uid = inL->uid(); | 1129 | uid = inL->uid(); |
1126 | bool skipIncidence = false; | 1130 | bool skipIncidence = false; |
1127 | if ( uid.left(15) == QString("last-syncEvent-") ) | 1131 | if ( uid.left(15) == QString("last-syncEvent-") ) |
1128 | skipIncidence = true; | 1132 | skipIncidence = true; |
1129 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) | 1133 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) |
1130 | skipIncidence = true; | 1134 | skipIncidence = true; |
1131 | if ( filterOUT && ! filterOUT->filterCalendarItem( inL ) ){ | ||
1132 | skipIncidence = true; | ||
1133 | } | ||
1134 | if ( !skipIncidence ) { | 1135 | if ( !skipIncidence ) { |
1135 | inR = remote->incidence( uid ); | 1136 | inR = remote->incidence( uid ); |
1136 | if ( ! inR ) { // no conflict ********** add or delete local | 1137 | if ( ! inR ) { |
1137 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 1138 | if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ |
1138 | if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { | 1139 | // no conflict ********** add or delete local |
1139 | checkExternSyncEvent(eventLSyncSharp, inL); | 1140 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
1140 | local->deleteIncidence( inL ); | 1141 | if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { |
1141 | ++deletedEventL; | 1142 | checkExternSyncEvent(eventLSyncSharp, inL); |
1142 | } else { | 1143 | local->deleteIncidence( inL ); |
1143 | if ( ! mSyncManager->mWriteBackExistingOnly ) { | 1144 | ++deletedEventL; |
1144 | inL->removeID(mCurrentSyncDevice ); | 1145 | } else { |
1145 | ++addedEventR; | 1146 | if ( ! mSyncManager->mWriteBackExistingOnly ) { |
1146 | //qDebug("remote added Incidence %s ", inL->summary().latin1()); | 1147 | inL->removeID(mCurrentSyncDevice ); |
1147 | inL->setLastModified( modifiedCalendar ); | 1148 | ++addedEventR; |
1148 | inR = inL->clone(); | 1149 | //qDebug("remote added Incidence %s ", inL->summary().latin1()); |
1149 | inR->setIDStr( ":" ); | 1150 | inL->setLastModified( modifiedCalendar ); |
1150 | inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); | 1151 | inR = inL->clone(); |
1151 | remote->addIncidence( inR ); | 1152 | inR->setIDStr( ":" ); |
1153 | inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); | ||
1154 | remote->addIncidence( inR ); | ||
1155 | } | ||
1152 | } | 1156 | } |
1153 | } | ||
1154 | } else { | ||
1155 | if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { | ||
1156 | checkExternSyncEvent(eventLSyncSharp, inL); | ||
1157 | local->deleteIncidence( inL ); | ||
1158 | ++deletedEventL; | ||
1159 | } else { | 1157 | } else { |
1160 | if ( ! mSyncManager->mWriteBackExistingOnly ) { | 1158 | if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { |
1161 | ++addedEventR; | 1159 | checkExternSyncEvent(eventLSyncSharp, inL); |
1162 | inL->setLastModified( modifiedCalendar ); | 1160 | local->deleteIncidence( inL ); |
1163 | inR = inL->clone(); | 1161 | ++deletedEventL; |
1164 | inR->setIDStr( ":" ); | 1162 | } else { |
1165 | remote->addIncidence( inR ); | 1163 | if ( ! mSyncManager->mWriteBackExistingOnly ) { |
1164 | ++addedEventR; | ||
1165 | inL->setLastModified( modifiedCalendar ); | ||
1166 | inR = inL->clone(); | ||
1167 | inR->setIDStr( ":" ); | ||
1168 | remote->addIncidence( inR ); | ||
1169 | } | ||
1166 | } | 1170 | } |
1167 | } | 1171 | } |
1172 | } else { | ||
1173 | ++filteredOUT; | ||
1168 | } | 1174 | } |
1169 | } | 1175 | } |
1170 | } | 1176 | } |
1171 | inL = el.next(); | 1177 | inL = el.next(); |
1172 | } | 1178 | } |
1173 | int delFut = 0; | 1179 | int delFut = 0; |
@@ -1215,13 +1221,13 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1215 | qDebug("********** %d %d ", mGlobalSyncMode == SYNC_MODE_NORMAL, mSyncManager->syncWithDesktop() ); | 1221 | qDebug("********** %d %d ", mGlobalSyncMode == SYNC_MODE_NORMAL, mSyncManager->syncWithDesktop() ); |
1216 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal... | 1222 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal... |
1217 | remote->addEvent( eventRSync ); | 1223 | remote->addEvent( eventRSync ); |
1218 | else | 1224 | else |
1219 | delete eventRSync; | 1225 | delete eventRSync; |
1220 | QString mes; | 1226 | QString mes; |
1221 | 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 ); | 1227 | 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 ); |
1222 | QString delmess; | 1228 | QString delmess; |
1223 | if ( delFut ) { | 1229 | if ( delFut ) { |
1224 | 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); | 1230 | 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); |
1225 | mes += delmess; | 1231 | mes += delmess; |
1226 | } | 1232 | } |
1227 | mes = i18n("Local calendar changed!\n") +mes; | 1233 | mes = i18n("Local calendar changed!\n") +mes; |