summaryrefslogtreecommitdiffabout
path: root/korganizer
Side-by-side diff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp58
-rw-r--r--korganizer/filtereditdialog.cpp7
2 files changed, 40 insertions, 25 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 8258c74..02c5e45 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1077,21 +1077,25 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
//remote->deleteIncidence( inR );
++deletedEventR;
} else {
- inR->setLastModified( modifiedCalendar );
- inL = inR->clone();
- inL->setIDStr( ":" );
- inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
- inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
- local->addIncidence( inL );
- ++addedEvent;
+ if ( !filterIN || filterIN->filterCalendarItem( inR ) ){
+ inR->setLastModified( modifiedCalendar );
+ inL = inR->clone();
+ inL->setIDStr( ":" );
+ inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
+ inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
+ local->addIncidence( inL );
+ ++addedEvent;
+ }
}
} else {
if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
- inR->setLastModified( modifiedCalendar );
- inL = inR->clone();
- inL->setIDStr( ":" );
- local->addIncidence( inL );
- ++addedEvent;
+ if ( !filterIN || filterIN->filterCalendarItem( inR ) ){
+ inR->setLastModified( modifiedCalendar );
+ inL = inR->clone();
+ inL->setIDStr( ":" );
+ local->addIncidence( inL );
+ ++addedEvent;
+ }
} else {
checkExternSyncEvent(eventRSyncSharp, inR);
remote->deleteIncidence( inR );
@@ -1134,14 +1138,16 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
++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 ( !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 );
+ }
}
}
} else {
@@ -1151,11 +1157,13 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
++deletedEventL;
} else {
if ( ! mSyncManager->mWriteBackExistingOnly ) {
- ++addedEventR;
- inL->setLastModified( modifiedCalendar );
- inR = inL->clone();
- inR->setIDStr( ":" );
- remote->addIncidence( inR );
+ if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){
+ ++addedEventR;
+ inL->setLastModified( modifiedCalendar );
+ inR = inL->clone();
+ inR->setIDStr( ":" );
+ remote->addIncidence( inR );
+ }
}
}
}
diff --git a/korganizer/filtereditdialog.cpp b/korganizer/filtereditdialog.cpp
index ca09844..df84911 100644
--- a/korganizer/filtereditdialog.cpp
+++ b/korganizer/filtereditdialog.cpp
@@ -235,6 +235,10 @@ void FilterEditDialog::readFilter(CalFilter *filter)
mEditor->mPublicCheck->setChecked(c & CalFilter::ShowPublic);
mEditor->mPrivateCheck->setChecked(c & CalFilter::ShowPrivate);
mEditor->mConfidentialCheck->setChecked(c & CalFilter::ShowConfidential);
+
+ mEditor->mEventCheck->setChecked(c & CalFilter::HideEvents);
+ mEditor->mTodoCheck->setChecked(c & CalFilter::HideTodos);
+ mEditor->mJournalCheck->setChecked(c & CalFilter::HideJournals);
if (c & CalFilter::ShowCategories) {
mEditor->mCatShowCheck->setChecked(true);
@@ -259,6 +263,9 @@ void FilterEditDialog::writeFilter(CalFilter *filter)
if (mEditor->mPublicCheck->isChecked()) c |= CalFilter::ShowPublic;
if (mEditor->mPrivateCheck->isChecked()) c |= CalFilter::ShowPrivate;
if (mEditor->mConfidentialCheck->isChecked()) c |= CalFilter::ShowConfidential;
+ if (mEditor->mEventCheck->isChecked()) c |= CalFilter::HideEvents;
+ if (mEditor->mTodoCheck->isChecked()) c |= CalFilter::HideTodos;
+ if (mEditor->mJournalCheck->isChecked()) c |= CalFilter::HideJournals;
filter->setCriteria(c);