-rw-r--r-- | korganizer/calendarview.cpp | 58 | ||||
-rw-r--r-- | korganizer/filtereditdialog.cpp | 7 |
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 | |||
@@ -1068,39 +1068,43 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1068 | } | 1068 | } |
1069 | } else { // no conflict ********** add or delete remote | 1069 | } else { // no conflict ********** add or delete remote |
1070 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 1070 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
1071 | QString des = eventLSync->description(); | 1071 | QString des = eventLSync->description(); |
1072 | QString pref = "e"; | 1072 | QString pref = "e"; |
1073 | if ( inR->type() == "Todo" ) | 1073 | if ( inR->type() == "Todo" ) |
1074 | pref = "t"; | 1074 | pref = "t"; |
1075 | if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it | 1075 | if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it |
1076 | inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); | 1076 | inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); |
1077 | //remote->deleteIncidence( inR ); | 1077 | //remote->deleteIncidence( inR ); |
1078 | ++deletedEventR; | 1078 | ++deletedEventR; |
1079 | } else { | 1079 | } else { |
1080 | inR->setLastModified( modifiedCalendar ); | 1080 | if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ |
1081 | inL = inR->clone(); | 1081 | inR->setLastModified( modifiedCalendar ); |
1082 | inL->setIDStr( ":" ); | 1082 | inL = inR->clone(); |
1083 | inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); | 1083 | inL->setIDStr( ":" ); |
1084 | inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); | 1084 | inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); |
1085 | local->addIncidence( inL ); | 1085 | inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); |
1086 | ++addedEvent; | 1086 | local->addIncidence( inL ); |
1087 | ++addedEvent; | ||
1088 | } | ||
1087 | } | 1089 | } |
1088 | } else { | 1090 | } else { |
1089 | if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { | 1091 | if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { |
1090 | inR->setLastModified( modifiedCalendar ); | 1092 | if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ |
1091 | inL = inR->clone(); | 1093 | inR->setLastModified( modifiedCalendar ); |
1092 | inL->setIDStr( ":" ); | 1094 | inL = inR->clone(); |
1093 | local->addIncidence( inL ); | 1095 | inL->setIDStr( ":" ); |
1094 | ++addedEvent; | 1096 | local->addIncidence( inL ); |
1097 | ++addedEvent; | ||
1098 | } | ||
1095 | } else { | 1099 | } else { |
1096 | checkExternSyncEvent(eventRSyncSharp, inR); | 1100 | checkExternSyncEvent(eventRSyncSharp, inR); |
1097 | remote->deleteIncidence( inR ); | 1101 | remote->deleteIncidence( inR ); |
1098 | ++deletedEventR; | 1102 | ++deletedEventR; |
1099 | } | 1103 | } |
1100 | } | 1104 | } |
1101 | } | 1105 | } |
1102 | } | 1106 | } |
1103 | inR = er.next(); | 1107 | inR = er.next(); |
1104 | } | 1108 | } |
1105 | QPtrList<Incidence> el = local->rawIncidences(); | 1109 | QPtrList<Incidence> el = local->rawIncidences(); |
1106 | inL = el.first(); | 1110 | inL = el.first(); |
@@ -1125,46 +1129,50 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1125 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) | 1129 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) |
1126 | skipIncidence = true; | 1130 | skipIncidence = true; |
1127 | if ( !skipIncidence ) { | 1131 | if ( !skipIncidence ) { |
1128 | inR = remote->incidence( uid ); | 1132 | inR = remote->incidence( uid ); |
1129 | if ( ! inR ) { // no conflict ********** add or delete local | 1133 | if ( ! inR ) { // no conflict ********** add or delete local |
1130 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 1134 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
1131 | if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { | 1135 | if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { |
1132 | checkExternSyncEvent(eventLSyncSharp, inL); | 1136 | checkExternSyncEvent(eventLSyncSharp, inL); |
1133 | local->deleteIncidence( inL ); | 1137 | local->deleteIncidence( inL ); |
1134 | ++deletedEventL; | 1138 | ++deletedEventL; |
1135 | } else { | 1139 | } else { |
1136 | if ( ! mSyncManager->mWriteBackExistingOnly ) { | 1140 | if ( ! mSyncManager->mWriteBackExistingOnly ) { |
1137 | inL->removeID(mCurrentSyncDevice ); | 1141 | if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ |
1138 | ++addedEventR; | 1142 | inL->removeID(mCurrentSyncDevice ); |
1139 | //qDebug("remote added Incidence %s ", inL->summary().latin1()); | 1143 | ++addedEventR; |
1140 | inL->setLastModified( modifiedCalendar ); | 1144 | //qDebug("remote added Incidence %s ", inL->summary().latin1()); |
1141 | inR = inL->clone(); | 1145 | inL->setLastModified( modifiedCalendar ); |
1142 | inR->setIDStr( ":" ); | 1146 | inR = inL->clone(); |
1143 | inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); | 1147 | inR->setIDStr( ":" ); |
1144 | remote->addIncidence( inR ); | 1148 | inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); |
1149 | remote->addIncidence( inR ); | ||
1150 | } | ||
1145 | } | 1151 | } |
1146 | } | 1152 | } |
1147 | } else { | 1153 | } else { |
1148 | if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { | 1154 | if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { |
1149 | checkExternSyncEvent(eventLSyncSharp, inL); | 1155 | checkExternSyncEvent(eventLSyncSharp, inL); |
1150 | local->deleteIncidence( inL ); | 1156 | local->deleteIncidence( inL ); |
1151 | ++deletedEventL; | 1157 | ++deletedEventL; |
1152 | } else { | 1158 | } else { |
1153 | if ( ! mSyncManager->mWriteBackExistingOnly ) { | 1159 | if ( ! mSyncManager->mWriteBackExistingOnly ) { |
1154 | ++addedEventR; | 1160 | if ( !filterOUT || filterOUT->filterCalendarItem( inL ) ){ |
1155 | inL->setLastModified( modifiedCalendar ); | 1161 | ++addedEventR; |
1156 | inR = inL->clone(); | 1162 | inL->setLastModified( modifiedCalendar ); |
1157 | inR->setIDStr( ":" ); | 1163 | inR = inL->clone(); |
1158 | remote->addIncidence( inR ); | 1164 | inR->setIDStr( ":" ); |
1165 | remote->addIncidence( inR ); | ||
1166 | } | ||
1159 | } | 1167 | } |
1160 | } | 1168 | } |
1161 | } | 1169 | } |
1162 | } | 1170 | } |
1163 | } | 1171 | } |
1164 | inL = el.next(); | 1172 | inL = el.next(); |
1165 | } | 1173 | } |
1166 | int delFut = 0; | 1174 | int delFut = 0; |
1167 | int remRem = 0; | 1175 | int remRem = 0; |
1168 | if ( mSyncManager->mWriteBackInFuture ) { | 1176 | if ( mSyncManager->mWriteBackInFuture ) { |
1169 | er = remote->rawIncidences(); | 1177 | er = remote->rawIncidences(); |
1170 | remRem = er.count(); | 1178 | remRem = er.count(); |
diff --git a/korganizer/filtereditdialog.cpp b/korganizer/filtereditdialog.cpp index ca09844..df84911 100644 --- a/korganizer/filtereditdialog.cpp +++ b/korganizer/filtereditdialog.cpp | |||
@@ -226,45 +226,52 @@ void FilterEditDialog::filterSelected() | |||
226 | if (f) readFilter(f); | 226 | if (f) readFilter(f); |
227 | } | 227 | } |
228 | 228 | ||
229 | void FilterEditDialog::readFilter(CalFilter *filter) | 229 | void FilterEditDialog::readFilter(CalFilter *filter) |
230 | { | 230 | { |
231 | int c = filter->criteria(); | 231 | int c = filter->criteria(); |
232 | 232 | ||
233 | mEditor->mCompletedCheck->setChecked(c & CalFilter::HideCompleted); | 233 | mEditor->mCompletedCheck->setChecked(c & CalFilter::HideCompleted); |
234 | mEditor->mRecurringCheck->setChecked(c & CalFilter::HideRecurring); | 234 | mEditor->mRecurringCheck->setChecked(c & CalFilter::HideRecurring); |
235 | mEditor->mPublicCheck->setChecked(c & CalFilter::ShowPublic); | 235 | mEditor->mPublicCheck->setChecked(c & CalFilter::ShowPublic); |
236 | mEditor->mPrivateCheck->setChecked(c & CalFilter::ShowPrivate); | 236 | mEditor->mPrivateCheck->setChecked(c & CalFilter::ShowPrivate); |
237 | mEditor->mConfidentialCheck->setChecked(c & CalFilter::ShowConfidential); | 237 | mEditor->mConfidentialCheck->setChecked(c & CalFilter::ShowConfidential); |
238 | |||
239 | mEditor->mEventCheck->setChecked(c & CalFilter::HideEvents); | ||
240 | mEditor->mTodoCheck->setChecked(c & CalFilter::HideTodos); | ||
241 | mEditor->mJournalCheck->setChecked(c & CalFilter::HideJournals); | ||
238 | 242 | ||
239 | if (c & CalFilter::ShowCategories) { | 243 | if (c & CalFilter::ShowCategories) { |
240 | mEditor->mCatShowCheck->setChecked(true); | 244 | mEditor->mCatShowCheck->setChecked(true); |
241 | } else { | 245 | } else { |
242 | mEditor->mCatHideCheck->setChecked(true); | 246 | mEditor->mCatHideCheck->setChecked(true); |
243 | } | 247 | } |
244 | 248 | ||
245 | mEditor->mCatList->clear(); | 249 | mEditor->mCatList->clear(); |
246 | mEditor->mCatList->insertStringList(filter->categoryList()); | 250 | mEditor->mCatList->insertStringList(filter->categoryList()); |
247 | mCategories = filter->categoryList(); | 251 | mCategories = filter->categoryList(); |
248 | 252 | ||
249 | setCaption( i18n("Filter position: ") + QString::number ( mSelectionCombo->currentItem()+1 )); | 253 | setCaption( i18n("Filter position: ") + QString::number ( mSelectionCombo->currentItem()+1 )); |
250 | } | 254 | } |
251 | 255 | ||
252 | void FilterEditDialog::writeFilter(CalFilter *filter) | 256 | void FilterEditDialog::writeFilter(CalFilter *filter) |
253 | { | 257 | { |
254 | int c = 0; | 258 | int c = 0; |
255 | 259 | ||
256 | if (mEditor->mCompletedCheck->isChecked()) c |= CalFilter::HideCompleted; | 260 | if (mEditor->mCompletedCheck->isChecked()) c |= CalFilter::HideCompleted; |
257 | if (mEditor->mRecurringCheck->isChecked()) c |= CalFilter::HideRecurring; | 261 | if (mEditor->mRecurringCheck->isChecked()) c |= CalFilter::HideRecurring; |
258 | if (mEditor->mCatShowCheck->isChecked()) c |= CalFilter::ShowCategories; | 262 | if (mEditor->mCatShowCheck->isChecked()) c |= CalFilter::ShowCategories; |
259 | if (mEditor->mPublicCheck->isChecked()) c |= CalFilter::ShowPublic; | 263 | if (mEditor->mPublicCheck->isChecked()) c |= CalFilter::ShowPublic; |
260 | if (mEditor->mPrivateCheck->isChecked()) c |= CalFilter::ShowPrivate; | 264 | if (mEditor->mPrivateCheck->isChecked()) c |= CalFilter::ShowPrivate; |
261 | if (mEditor->mConfidentialCheck->isChecked()) c |= CalFilter::ShowConfidential; | 265 | if (mEditor->mConfidentialCheck->isChecked()) c |= CalFilter::ShowConfidential; |
266 | if (mEditor->mEventCheck->isChecked()) c |= CalFilter::HideEvents; | ||
267 | if (mEditor->mTodoCheck->isChecked()) c |= CalFilter::HideTodos; | ||
268 | if (mEditor->mJournalCheck->isChecked()) c |= CalFilter::HideJournals; | ||
262 | 269 | ||
263 | filter->setCriteria(c); | 270 | filter->setCriteria(c); |
264 | 271 | ||
265 | QStringList categoryList; | 272 | QStringList categoryList; |
266 | for(uint i=0;i<mEditor->mCatList->count();++i) { | 273 | for(uint i=0;i<mEditor->mCatList->count();++i) { |
267 | categoryList.append(mEditor->mCatList->text(i)); | 274 | categoryList.append(mEditor->mCatList->text(i)); |
268 | } | 275 | } |
269 | filter->setCategoryList(categoryList); | 276 | filter->setCategoryList(categoryList); |
270 | } | 277 | } |