-rw-r--r-- | kabc/plugins/file/resourcefile.cpp | 3 | ||||
-rw-r--r-- | kabc/plugins/sharpdtm/resourcesharpdtm.cpp | 48 | ||||
-rw-r--r-- | kabc/plugins/sharpdtm/sharpdtmconverter.cpp | 17 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 5 | ||||
-rw-r--r-- | korganizer/calendarview.cpp | 4 |
5 files changed, 70 insertions, 7 deletions
diff --git a/kabc/plugins/file/resourcefile.cpp b/kabc/plugins/file/resourcefile.cpp index b8c32d5..6cd63fd 100644 --- a/kabc/plugins/file/resourcefile.cpp +++ b/kabc/plugins/file/resourcefile.cpp | |||
@@ -160,12 +160,13 @@ Ticket *ResourceFile::requestSaveTicket() | |||
160 | } | 160 | } |
161 | 161 | ||
162 | 162 | ||
163 | bool ResourceFile::doOpen() | 163 | bool ResourceFile::doOpen() |
164 | { | 164 | { |
165 | QFile file( mFileName ); | 165 | QFile file( mFileName ); |
166 | qDebug("ResourceFile::openfile %s ", mFileName.latin1()); | ||
166 | 167 | ||
167 | if ( !file.exists() ) { | 168 | if ( !file.exists() ) { |
168 | // try to create the file | 169 | // try to create the file |
169 | bool ok = file.open( IO_WriteOnly ); | 170 | bool ok = file.open( IO_WriteOnly ); |
170 | if ( ok ) | 171 | if ( ok ) |
171 | file.close(); | 172 | file.close(); |
@@ -191,13 +192,13 @@ void ResourceFile::doClose() | |||
191 | { | 192 | { |
192 | } | 193 | } |
193 | 194 | ||
194 | bool ResourceFile::load() | 195 | bool ResourceFile::load() |
195 | { | 196 | { |
196 | 197 | ||
197 | 198 | qDebug("ResourceFile::loadfile %s ", mFileName.latin1()); | |
198 | QFile file( mFileName ); | 199 | QFile file( mFileName ); |
199 | if ( !file.open( IO_ReadOnly ) ) { | 200 | if ( !file.open( IO_ReadOnly ) ) { |
200 | addressBook()->error( i18n( "Unable to open file '%1'." ).arg( mFileName ) ); | 201 | addressBook()->error( i18n( "Unable to open file '%1'." ).arg( mFileName ) ); |
201 | return false; | 202 | return false; |
202 | } | 203 | } |
203 | 204 | ||
diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp index 48d3985..437bda8 100644 --- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp +++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp | |||
@@ -201,18 +201,20 @@ bool ResourceSharpDTM::save( Ticket *ticket ) | |||
201 | 201 | ||
202 | mDirWatch.stopScan(); | 202 | mDirWatch.stopScan(); |
203 | 203 | ||
204 | KABC::AddressBook::Iterator it; | 204 | KABC::AddressBook::Iterator it; |
205 | bool res; | 205 | bool res; |
206 | KABC::Addressee::List changedAddressees; | 206 | KABC::Addressee::List changedAddressees; |
207 | typedef QMap<int,QString> AddresseeMap; | ||
208 | AddresseeMap map; | ||
209 | CardId id ; | ||
207 | 210 | ||
208 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { | 211 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { |
209 | 212 | ||
210 | if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) { | 213 | if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) { |
211 | QString uid = (*it).originalExternalUID(); | 214 | QString uid = (*it).originalExternalUID(); |
212 | CardId id ; | ||
213 | bool res; | 215 | bool res; |
214 | if ( uid.isEmpty() ) | 216 | if ( uid.isEmpty() ) |
215 | id = 0; | 217 | id = 0; |
216 | else | 218 | else |
217 | id = uid.toUInt(); | 219 | id = uid.toUInt(); |
218 | KABC::Addressee addressee = (*it); | 220 | KABC::Addressee addressee = (*it); |
@@ -220,21 +222,29 @@ bool ResourceSharpDTM::save( Ticket *ticket ) | |||
220 | res = mAccess->startEditCard(id); | 222 | res = mAccess->startEditCard(id); |
221 | if (res == true) | 223 | if (res == true) |
222 | { | 224 | { |
223 | res = mConverter->addresseeToSharp( (*it), mAccess, id ); | 225 | res = mConverter->addresseeToSharp( (*it), mAccess, id ); |
224 | if (res == true) | 226 | if (res == true) |
225 | { | 227 | { |
228 | res = mAccess->finishEditCard(&id); | ||
229 | //(*it).setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); | ||
230 | //(*it).setExternalUID( QString::number( id ) ); | ||
231 | //(*it).setOriginalExternalUID( QString::number( id ) ); | ||
232 | map.insert(id,(*it).uid()); | ||
233 | |||
234 | #if 0 | ||
226 | KABC::Addressee addressee; | 235 | KABC::Addressee addressee; |
227 | res = mConverter->sharpToAddressee( id, mAccess, addressee ); | 236 | res = mConverter->sharpToAddressee( id, mAccess, addressee ); |
228 | addressee.setUid((*it).uid() ); | 237 | addressee.setUid((*it).uid() ); |
229 | addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); | 238 | (it*).setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); |
230 | res = mAccess->finishEditCard(&id); | 239 | res = mAccess->finishEditCard(&id); |
231 | //qDebug("2NEW id is %d", id); | 240 | //qDebug("2NEW id is %d", id); |
232 | addressee.setExternalUID( QString::number( id ) ); | 241 | addressee.setExternalUID( QString::number( id ) ); |
233 | addressee.setOriginalExternalUID( QString::number( id ) ); | 242 | addressee.setOriginalExternalUID( QString::number( id ) ); |
234 | changedAddressees.append( addressee ); | 243 | changedAddressees.append( addressee ); |
244 | #endif | ||
235 | 245 | ||
236 | if (res == false) | 246 | if (res == false) |
237 | qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); | 247 | qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); |
238 | 248 | ||
239 | } | 249 | } |
240 | else | 250 | else |
@@ -258,18 +268,24 @@ bool ResourceSharpDTM::save( Ticket *ticket ) | |||
258 | res = mAccess->startEditCard(id); | 268 | res = mAccess->startEditCard(id); |
259 | if (res == true) | 269 | if (res == true) |
260 | { | 270 | { |
261 | res = mConverter->addresseeToSharp( (*it), mAccess, id ); | 271 | res = mConverter->addresseeToSharp( (*it), mAccess, id ); |
262 | if (res == true) | 272 | if (res == true) |
263 | { | 273 | { |
274 | res = mAccess->finishEditCard(&id); | ||
275 | //(*it).setTempSyncStat( SYNC_TEMPSTATE_NEW_CSUM ); | ||
276 | map.insert(id,(*it).uid()); | ||
277 | |||
278 | #if 0 | ||
264 | KABC::Addressee addressee; | 279 | KABC::Addressee addressee; |
265 | res = mConverter->sharpToAddressee( id, mAccess, addressee ); | 280 | res = mConverter->sharpToAddressee( id, mAccess, addressee ); |
266 | addressee.setUid((*it).uid() ); | 281 | addressee.setUid((*it).uid() ); |
267 | addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_CSUM ); | 282 | addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_CSUM ); |
268 | changedAddressees.append( addressee ); | 283 | changedAddressees.append( addressee ); |
269 | res = mAccess->finishEditCard(&id); | 284 | res = mAccess->finishEditCard(&id); |
285 | #endif | ||
270 | if (res == false) | 286 | if (res == false) |
271 | qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); | 287 | qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); |
272 | 288 | ||
273 | } | 289 | } |
274 | else | 290 | else |
275 | { | 291 | { |
@@ -278,15 +294,41 @@ bool ResourceSharpDTM::save( Ticket *ticket ) | |||
278 | } | 294 | } |
279 | } | 295 | } |
280 | } | 296 | } |
281 | } | 297 | } |
282 | 298 | ||
283 | } | 299 | } |
300 | AddresseeMap::Iterator itam; | ||
301 | res; | ||
302 | for ( res=mAccess->first(); res == true; res=mAccess->next()) | ||
303 | { | ||
304 | id = mAccess->cardId(); | ||
305 | int idint = id; | ||
306 | itam = map.find( idint ); | ||
307 | if ( itam != map.end() ) { | ||
308 | KABC::Addressee addressee; | ||
309 | qDebug("found change %d %s ", idint, itam.data().latin1()); | ||
310 | res = mConverter->sharpToAddressee( id, mAccess, addressee ); | ||
311 | |||
312 | if ( !addressee.isEmpty() && res ) | ||
313 | { | ||
314 | addressee.setResource( this ); | ||
315 | addressee.setUid( itam.data() ); | ||
316 | addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); | ||
317 | addressBook()->insertAddressee( addressee , false ); | ||
318 | } | ||
319 | } | ||
320 | } | ||
321 | #if 0 | ||
284 | KABC::Addressee::List::Iterator it2; | 322 | KABC::Addressee::List::Iterator it2; |
285 | for ( it2 = changedAddressees.begin(); it2 != changedAddressees.end(); ++it2 ) | 323 | for ( it2 = changedAddressees.begin(); it2 != changedAddressees.end(); ++it2 ) { |
324 | (*it2).computeCsum( "Sharp_DTM" ); | ||
325 | qDebug("CSUM: %s ",(*it2).getCsum( "Sharp_DTM" ).latin1() ); | ||
286 | addressBook()->insertAddressee((*it2)); | 326 | addressBook()->insertAddressee((*it2)); |
327 | } | ||
328 | #endif | ||
287 | //US mAccess->save(); | 329 | //US mAccess->save(); |
288 | 330 | ||
289 | mDirWatch.startScan(); | 331 | mDirWatch.startScan(); |
290 | delete ticket; | 332 | delete ticket; |
291 | unlock( fileName() ); | 333 | unlock( fileName() ); |
292 | 334 | ||
diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp index f3bf2c5..fccf625 100644 --- a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp +++ b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp | |||
@@ -283,14 +283,25 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da | |||
283 | database->writeField(ZdbAdrs::FirstName, addr.givenName()); | 283 | database->writeField(ZdbAdrs::FirstName, addr.givenName()); |
284 | database->writeField(ZdbAdrs::MiddleName, addr.additionalName()); | 284 | database->writeField(ZdbAdrs::MiddleName, addr.additionalName()); |
285 | database->writeField(ZdbAdrs::Title, addr.prefix()); | 285 | database->writeField(ZdbAdrs::Title, addr.prefix()); |
286 | database->writeField(ZdbAdrs::Suffix, addr.suffix()); | 286 | database->writeField(ZdbAdrs::Suffix, addr.suffix()); |
287 | 287 | ||
288 | //qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() ); | 288 | //qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() ); |
289 | database->writeField(ZdbAdrs::FileAs, addr.formattedName()); | 289 | QString formattedName = addr.formattedName(); |
290 | database->writeField(ZdbAdrs::FullName, addr.formattedName()); | 290 | if ( formattedName.isEmpty() ) { |
291 | if ( !addr.familyName().isEmpty() ) { | ||
292 | formattedName = addr.familyName(); | ||
293 | if ( !addr.givenName().isEmpty() ) { | ||
294 | formattedName += ", "; | ||
295 | formattedName += addr.givenName(); | ||
296 | } | ||
297 | } else | ||
298 | formattedName = addr.givenName(); | ||
299 | } | ||
300 | database->writeField(ZdbAdrs::FileAs, formattedName); | ||
301 | database->writeField(ZdbAdrs::FullName, formattedName); | ||
291 | 302 | ||
292 | 303 | ||
293 | //qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!"); | 304 | //qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!"); |
294 | //qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee"); | 305 | //qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee"); |
295 | QString emails = addr.emails().join(" "); | 306 | QString emails = addr.emails().join(" "); |
296 | database->writeField(ZdbAdrs::Emails, emails ); | 307 | database->writeField(ZdbAdrs::Emails, emails ); |
@@ -346,13 +357,13 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da | |||
346 | PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell ); | 357 | PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell ); |
347 | if (!businessmobile.number().isEmpty()) { | 358 | if (!businessmobile.number().isEmpty()) { |
348 | cellWork = true; | 359 | cellWork = true; |
349 | database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number()); | 360 | database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number()); |
350 | } | 361 | } |
351 | PhoneNumber mobile = addr.phoneNumber( PhoneNumber::Cell ); | 362 | PhoneNumber mobile = addr.phoneNumber( PhoneNumber::Cell ); |
352 | if (!businessmobile.number().isEmpty()) { | 363 | if (! mobile.number().isEmpty()) { |
353 | if ( ! cellHome ) | 364 | if ( ! cellHome ) |
354 | database->writeField(ZdbAdrs::HomeMobile, mobile.number()); | 365 | database->writeField(ZdbAdrs::HomeMobile, mobile.number()); |
355 | else if (! cellWork ) | 366 | else if (! cellWork ) |
356 | database->writeField(ZdbAdrs::BusinessMobile, mobile.number()); | 367 | database->writeField(ZdbAdrs::BusinessMobile, mobile.number()); |
357 | } | 368 | } |
358 | 369 | ||
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index c1ead9d..c2f031a 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -2766,12 +2766,13 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo | |||
2766 | //qDebug("take %d %s ", take, inL.summary().latin1()); | 2766 | //qDebug("take %d %s ", take, inL.summary().latin1()); |
2767 | if ( take == 3 ) | 2767 | if ( take == 3 ) |
2768 | return false; | 2768 | return false; |
2769 | if ( take == 1 ) {// take local | 2769 | if ( take == 1 ) {// take local |
2770 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 2770 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
2771 | inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); | 2771 | inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); |
2772 | inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); | ||
2772 | local->insertAddressee( inL, false ); | 2773 | local->insertAddressee( inL, false ); |
2773 | idS = inR.externalUID(); | 2774 | idS = inR.externalUID(); |
2774 | OidS = inR.originalExternalUID(); | 2775 | OidS = inR.originalExternalUID(); |
2775 | } | 2776 | } |
2776 | else | 2777 | else |
2777 | idS = inR.IDStr(); | 2778 | idS = inR.IDStr(); |
@@ -2793,12 +2794,16 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo | |||
2793 | inR.setRevision( modifiedCalendar ); | 2794 | inR.setRevision( modifiedCalendar ); |
2794 | } | 2795 | } |
2795 | idS = inL.IDStr(); | 2796 | idS = inL.IDStr(); |
2796 | local->removeAddressee( inL ); | 2797 | local->removeAddressee( inL ); |
2797 | inL = inR; | 2798 | inL = inR; |
2798 | inL.setIDStr( idS ); | 2799 | inL.setIDStr( idS ); |
2800 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | ||
2801 | inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); | ||
2802 | inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); | ||
2803 | } | ||
2799 | inL.setResource( 0 ); | 2804 | inL.setResource( 0 ); |
2800 | local->insertAddressee( inL , false ); | 2805 | local->insertAddressee( inL , false ); |
2801 | ++changedLocal; | 2806 | ++changedLocal; |
2802 | } | 2807 | } |
2803 | } | 2808 | } |
2804 | } else { // no conflict | 2809 | } else { // no conflict |
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index bbed05b..7fae4a9 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -1046,12 +1046,16 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1046 | if ( inR->revision() < maxrev ) | 1046 | if ( inR->revision() < maxrev ) |
1047 | inR->setRevision( maxrev ); | 1047 | inR->setRevision( maxrev ); |
1048 | idS = inL->IDStr(); | 1048 | idS = inL->IDStr(); |
1049 | local->deleteIncidence( inL ); | 1049 | local->deleteIncidence( inL ); |
1050 | inL = inR->clone(); | 1050 | inL = inR->clone(); |
1051 | inL->setIDStr( idS ); | 1051 | inL->setIDStr( idS ); |
1052 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | ||
1053 | inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); | ||
1054 | inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); | ||
1055 | } | ||
1052 | local->addIncidence( inL ); | 1056 | local->addIncidence( inL ); |
1053 | ++changedLocal; | 1057 | ++changedLocal; |
1054 | } | 1058 | } |
1055 | } | 1059 | } |
1056 | } else { // no conflict | 1060 | } else { // no conflict |
1057 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 1061 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |