summaryrefslogtreecommitdiffabout
path: root/kabc
Unidiff
Diffstat (limited to 'kabc') (more/less context) (show whitespace changes)
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.cpp93
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmE.pro2
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmconverter.cpp6
3 files changed, 99 insertions, 2 deletions
diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
index 867bc07..bba5f9a 100644
--- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
+++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
@@ -45,6 +45,7 @@ $Id$
45 45
46#include <sl/slzdb.h> 46#include <sl/slzdb.h>
47 47
48#include <libkdepim/ksyncprofile.h>
48 49
49#include "resourcesharpdtmconfig.h" 50#include "resourcesharpdtmconfig.h"
50#include "resourcesharpdtm.h" 51#include "resourcesharpdtm.h"
@@ -202,8 +203,95 @@ bool ResourceSharpDTM::save( Ticket *ticket )
202 203
203 KABC::AddressBook::Iterator it; 204 KABC::AddressBook::Iterator it;
204 bool res; 205 bool res;
206 KABC::Addressee::List changedAddressees;
205 207
206 for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { 208 for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) {
209
210 if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) {
211 QString uid = (*it).originalExternalUID();
212 CardId id ;
213 bool res;
214 if ( uid.isEmpty() )
215 id = 0;
216 else
217 id = uid.toUInt();
218 KABC::Addressee addressee = (*it);
219 if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_ADDED_EXTERNAL ) {
220 res = mAccess->startEditCard(id);
221 if (res == true)
222 {
223 res = mConverter->addresseeToSharp( (*it), mAccess, id );
224 if (res == true)
225 {
226 KABC::Addressee addressee;
227 qDebug("1NEW id is %d", id);
228 res = mConverter->sharpToAddressee( id, mAccess, addressee );
229 addressee.setUid((*it).uid() );
230 addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_CSUM );
231 changedAddressees.append( addressee );
232 res = mAccess->finishEditCard(&id);
233 qDebug("2NEW id is %d", id);
234
235 if (res == false)
236 qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
237 else {
238 qDebug("added card success ");
239 }
240 }
241 else
242 {
243 qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1());
244 mAccess->cancelEditCard();
245 }
246 }
247
248 } else if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_DELETE ) {
249 res = mAccess->deleteCard(&id);
250 if ( res )
251 qDebug("delete success ");
252 else
253 qDebug("delete error ");
254
255
256 } else if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) {
257 //changed
258 res = mAccess->startEditCard(id);
259 if (res == true)
260 {
261 res = mConverter->addresseeToSharp( (*it), mAccess, id );
262 if (res == true)
263 {
264 KABC::Addressee addressee;
265 res = mConverter->sharpToAddressee( id, mAccess, addressee );
266 addressee.setUid((*it).uid() );
267 addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_CSUM );
268 changedAddressees.append( addressee );
269 res = mAccess->finishEditCard(&id);
270 if (res == false)
271 qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
272 else {
273 qDebug("change card succes ");
274 }
275 }
276 else
277 {
278 qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1());
279 mAccess->cancelEditCard();
280 }
281 }
282 }
283
284
285
286
287
288
289
290
291 }
292
293#if 0
294 // old code
207 CardId id = 0;// 0 means new card 295 CardId id = 0;// 0 means new card
208 KABC::Addressee addressee = (*it); 296 KABC::Addressee addressee = (*it);
209 297
@@ -227,9 +315,12 @@ bool ResourceSharpDTM::save( Ticket *ticket )
227 { 315 {
228 qDebug("Unable to add new card. Addressee: %s", addressee.formattedName().latin1()); 316 qDebug("Unable to add new card. Addressee: %s", addressee.formattedName().latin1());
229 } 317 }
318#endif
230 319
231 } 320 }
232 321 KABC::Addressee::List::Iterator it2;
322 for ( it2 = changedAddressees.begin(); it2 != changedAddressees.end(); ++it2 )
323 addressBook()->insertAddressee((*it2));
233//US mAccess->save(); 324//US mAccess->save();
234 325
235 mDirWatch.startScan(); 326 mDirWatch.startScan();
diff --git a/kabc/plugins/sharpdtm/sharpdtmE.pro b/kabc/plugins/sharpdtm/sharpdtmE.pro
index f335729..b80a1da 100644
--- a/kabc/plugins/sharpdtm/sharpdtmE.pro
+++ b/kabc/plugins/sharpdtm/sharpdtmE.pro
@@ -2,7 +2,7 @@ TEMPLATE = lib
2CONFIG += qt warn_on 2CONFIG += qt warn_on
3TARGET = microkabc_sharpdtm 3TARGET = microkabc_sharpdtm
4 4
5INCLUDEPATH += $(KDEPIMDIR)/kabc $(SHARPDTMSDK)/include $(KDEPIMDIR)/microkde $(KDEPIMDIR)/microkde/kdecore $(KDEPIMDIR)/microkde/kio/kfile $(KDEPIMDIR)/microkde/kio/kio $(KDEPIMDIR)/microkde/kresources $(KDEPIMDIR)/qtcompat $(QPEDIR)/include 5INCLUDEPATH += $(KDEPIMDIR) $(KDEPIMDIR)/kabc $(SHARPDTMSDK)/include $(KDEPIMDIR)/microkde $(KDEPIMDIR)/microkde/kdecore $(KDEPIMDIR)/microkde/kio/kfile $(KDEPIMDIR)/microkde/kio/kio $(KDEPIMDIR)/microkde/kresources $(KDEPIMDIR)/qtcompat $(QPEDIR)/include
6 6
7 7
8OBJECTS_DIR = obj/$(PLATFORM) 8OBJECTS_DIR = obj/$(PLATFORM)
diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
index 8f8334e..b065bf3 100644
--- a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
+++ b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
@@ -69,6 +69,12 @@ void SharpDTMConverter::deinit()
69bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr ) 69bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr )
70{ 70{
71 SlZDataBase* db = (SlZDataBase*)database; 71 SlZDataBase* db = (SlZDataBase*)database;
72
73 // for syncing: we need setting of the two fields
74 addr.setExternalUID( QString::number( contact ) );
75 addr.setOriginalExternalUID( QString::number( contact ) );
76
77
72 // name 78 // name
73 qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!"); 79 qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!");
74 addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); 80 addr.setFormattedName(db->readField(ZdbAdrs::FileAs));