From f3f63a1a1363cba9f58790812e43d6eda14f733c Mon Sep 17 00:00:00 2001 From: zautrix Date: Sun, 16 Jan 2005 12:04:50 +0000 Subject: filter fix --- diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 02c5e45..685bb60 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -1067,17 +1067,17 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int } } } else { // no conflict ********** add or delete remote - if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { - QString des = eventLSync->description(); - QString pref = "e"; - if ( inR->type() == "Todo" ) - pref = "t"; - if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it - inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); - //remote->deleteIncidence( inR ); - ++deletedEventR; - } else { - if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ + if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ + if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { + QString des = eventLSync->description(); + QString pref = "e"; + if ( inR->type() == "Todo" ) + pref = "t"; + if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it + inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); + //remote->deleteIncidence( inR ); + ++deletedEventR; + } else { inR->setLastModified( modifiedCalendar ); inL = inR->clone(); inL->setIDStr( ":" ); @@ -1085,21 +1085,21 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); local->addIncidence( inL ); ++addedEvent; + } - } - } else { - if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { - if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ + } else { + if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { inR->setLastModified( modifiedCalendar ); inL = inR->clone(); inL->setIDStr( ":" ); local->addIncidence( inL ); ++addedEvent; + + } else { + checkExternSyncEvent(eventRSyncSharp, inR); + remote->deleteIncidence( inR ); + ++deletedEventR; } - } else { - checkExternSyncEvent(eventRSyncSharp, inR); - remote->deleteIncidence( inR ); - ++deletedEventR; } } } @@ -1128,6 +1128,9 @@ 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 @@ -1138,16 +1141,14 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int ++deletedEventL; } else { if ( ! mSyncManager->mWriteBackExistingOnly ) { - if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ - 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 ); - } + 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 { @@ -1157,13 +1158,11 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int ++deletedEventL; } else { if ( ! mSyncManager->mWriteBackExistingOnly ) { - if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ - ++addedEventR; - inL->setLastModified( modifiedCalendar ); - inR = inL->clone(); - inR->setIDStr( ":" ); - remote->addIncidence( inR ); - } + ++addedEventR; + inL->setLastModified( modifiedCalendar ); + inR = inL->clone(); + inR->setIDStr( ":" ); + remote->addIncidence( inR ); } } } -- cgit v0.9.0.2