summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.cpp95
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmE.pro2
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmconverter.cpp6
3 files changed, 100 insertions, 3 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
@@ -24,48 +24,49 @@ Copyright (c) 2004 Ulf Schenk
24 24
25$Id$ 25$Id$
26*/ 26*/
27 27
28#include <sys/types.h> 28#include <sys/types.h>
29#include <sys/stat.h> 29#include <sys/stat.h>
30#include <unistd.h> 30#include <unistd.h>
31 31
32#include <qdir.h> 32#include <qdir.h>
33#include <qfile.h> 33#include <qfile.h>
34#include <qfileinfo.h> 34#include <qfileinfo.h>
35#include <qregexp.h> 35#include <qregexp.h>
36//US #include <qtimer.h> 36//US #include <qtimer.h>
37 37
38#include <kapplication.h> 38#include <kapplication.h>
39#include <kconfig.h> 39#include <kconfig.h>
40#include <kdebug.h> 40#include <kdebug.h>
41#include <klocale.h> 41#include <klocale.h>
42//US #include <ksavefile.h> 42//US #include <ksavefile.h>
43#include <kstandarddirs.h> 43#include <kstandarddirs.h>
44#include <kmessagebox.h> 44#include <kmessagebox.h>
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"
51 52
52#include "syncprefwidget.h" 53#include "syncprefwidget.h"
53 54
54#include "stdaddressbook.h" 55#include "stdaddressbook.h"
55 56
56#include "sharpdtmconverter.h" 57#include "sharpdtmconverter.h"
57//#define ALLOW_LOCKING 58//#define ALLOW_LOCKING
58using namespace KABC; 59using namespace KABC;
59extern "C" 60extern "C"
60{ 61{
61 void *init_microkabc_sharpdtm() 62 void *init_microkabc_sharpdtm()
62 { 63 {
63 return new KRES::PluginFactory<ResourceSharpDTM,ResourceSharpDTMConfig,SyncPrefWidgetContainer>(); 64 return new KRES::PluginFactory<ResourceSharpDTM,ResourceSharpDTMConfig,SyncPrefWidgetContainer>();
64 } 65 }
65} 66}
66 67
67ResourceSharpDTM::ResourceSharpDTM( const KConfig *config, bool syncable ) 68ResourceSharpDTM::ResourceSharpDTM( const KConfig *config, bool syncable )
68 : Resource( config, syncable ), mConverter (0) 69 : Resource( config, syncable ), mConverter (0)
69{ 70{
70 // we can not choose the filename. Therefore use the default to display 71 // we can not choose the filename. Therefore use the default to display
71 72
@@ -181,77 +182,167 @@ bool ResourceSharpDTM::load()
181 id = mAccess->cardId(); 182 id = mAccess->cardId();
182 183
183 KABC::Addressee addressee; 184 KABC::Addressee addressee;
184 185
185 res = mConverter->sharpToAddressee( id, mAccess, addressee ); 186 res = mConverter->sharpToAddressee( id, mAccess, addressee );
186 187
187 if ( !addressee.isEmpty() && res ) 188 if ( !addressee.isEmpty() && res )
188 { 189 {
189 addressee.setResource( this ); 190 addressee.setResource( this );
190 addressBook()->insertAddressee( addressee ); 191 addressBook()->insertAddressee( addressee );
191 } 192 }
192 } 193 }
193 194
194 return true; 195 return true;
195} 196}
196 197
197bool ResourceSharpDTM::save( Ticket *ticket ) 198bool ResourceSharpDTM::save( Ticket *ticket )
198{ 199{
199 qDebug("ResourceSharpDTM::save: %s", fileName().latin1()); 200 qDebug("ResourceSharpDTM::save: %s", fileName().latin1());
200 201
201 mDirWatch.stopScan(); 202 mDirWatch.stopScan();
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
210 res = mAccess->startEditCard(id); 298 res = mAccess->startEditCard(id);
211 if (res == true) 299 if (res == true)
212 { 300 {
213 res = mConverter->addresseeToSharp( *it, mAccess, id ); 301 res = mConverter->addresseeToSharp( *it, mAccess, id );
214 if (res == true) 302 if (res == true)
215 { 303 {
216 res = mAccess->finishEditCard(&id); 304 res = mAccess->finishEditCard(&id);
217 if (res == false) 305 if (res == false)
218 qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); 306 qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
219 } 307 }
220 else 308 else
221 { 309 {
222 qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1()); 310 qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1());
223 mAccess->cancelEditCard(); 311 mAccess->cancelEditCard();
224 } 312 }
225 } 313 }
226 else 314 else
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;
233//US mAccess->save(); 322 for ( it2 = changedAddressees.begin(); it2 != changedAddressees.end(); ++it2 )
323 addressBook()->insertAddressee((*it2));
324 //US mAccess->save();
234 325
235 mDirWatch.startScan(); 326 mDirWatch.startScan();
236 delete ticket; 327 delete ticket;
237 unlock( fileName() ); 328 unlock( fileName() );
238 329
239 return true; 330 return true;
240} 331}
241 332
242bool ResourceSharpDTM::lock( const QString &lockfileName ) 333bool ResourceSharpDTM::lock( const QString &lockfileName )
243{ 334{
244#ifdef ALLOW_LOCKING 335#ifdef ALLOW_LOCKING
245 qDebug("ResourceSharpDTM::lock: %s", fileName().latin1()); 336 qDebug("ResourceSharpDTM::lock: %s", fileName().latin1());
246 337
247 kdDebug(5700) << "ResourceSharpDTM::lock()" << endl; 338 kdDebug(5700) << "ResourceSharpDTM::lock()" << endl;
248 339
249 QString fn = lockfileName; 340 QString fn = lockfileName;
250 341
251 KURL url(fn); 342 KURL url(fn);
252 QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); 343 QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" );
253 344
254 kdDebug(5700) << "-- lock name: " << lockName << endl; 345 kdDebug(5700) << "-- lock name: " << lockName << endl;
255 346
256 if (QFile::exists( lockName )) 347 if (QFile::exists( lockName ))
257 { 348 {
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
@@ -1,29 +1,29 @@
1 TEMPLATE= lib 1 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)
9MOC_DIR = moc/$(PLATFORM) 9MOC_DIR = moc/$(PLATFORM)
10DESTDIR = $(QPEDIR)/lib 10DESTDIR = $(QPEDIR)/lib
11LIBS += -lmicrokde 11LIBS += -lmicrokde
12LIBS += -lmicrokabc 12LIBS += -lmicrokabc
13LIBS += -lmicrokdepim 13LIBS += -lmicrokdepim
14LIBS += -lmicroqtcompat 14LIBS += -lmicroqtcompat
15LIBS += -lmicrokcal 15LIBS += -lmicrokcal
16LIBS += -L$(QPEDIR)/lib 16LIBS += -L$(QPEDIR)/lib
17LIBS += -ljpeg 17LIBS += -ljpeg
18LIBS += -lqpe 18LIBS += -lqpe
19LIBS += -lqte 19LIBS += -lqte
20LIBS += -lzdtm 20LIBS += -lzdtm
21LIBS += -lsl 21LIBS += -lsl
22 22
23 23
24 24
25INTERFACES = \ 25INTERFACES = \
26 26
27HEADERS = \ 27HEADERS = \
28 resourcesharpdtm.h \ 28 resourcesharpdtm.h \
29 resourcesharpdtmconfig.h \ 29 resourcesharpdtmconfig.h \
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
@@ -48,48 +48,54 @@ SharpDTMConverter::~SharpDTMConverter()
48 48
49bool SharpDTMConverter::init() 49bool SharpDTMConverter::init()
50{ 50{
51 catDB = new SlCategory::SlCategories(); 51 catDB = new SlCategory::SlCategories();
52 52
53 if (!catDB) 53 if (!catDB)
54 return false; 54 return false;
55 55
56// catDB->load( categoryFileName() ); 56// catDB->load( categoryFileName() );
57 return true; 57 return true;
58} 58}
59 59
60void SharpDTMConverter::deinit() 60void SharpDTMConverter::deinit()
61{ 61{
62 if (catDB) 62 if (catDB)
63 { 63 {
64 delete catDB; 64 delete catDB;
65 catDB = 0; 65 catDB = 0;
66 } 66 }
67} 67}
68 68
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));
75 81
76 addr.setFamilyName( db->readField(ZdbAdrs::LastName) ); 82 addr.setFamilyName( db->readField(ZdbAdrs::LastName) );
77 addr.setGivenName( db->readField(ZdbAdrs::FirstName) ); 83 addr.setGivenName( db->readField(ZdbAdrs::FirstName) );
78 addr.setAdditionalName( db->readField(ZdbAdrs::MiddleName) ); 84 addr.setAdditionalName( db->readField(ZdbAdrs::MiddleName) );
79 addr.setPrefix( db->readField(ZdbAdrs::Title) ); 85 addr.setPrefix( db->readField(ZdbAdrs::Title) );
80 addr.setSuffix( db->readField(ZdbAdrs::Suffix) ); 86 addr.setSuffix( db->readField(ZdbAdrs::Suffix) );
81 87
82 88
83 // email 89 // email
84 QString emailstr = db->readField(ZdbAdrs::Emails); 90 QString emailstr = db->readField(ZdbAdrs::Emails);
85 qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1()); 91 qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1());
86 QStringList emails = QStringList::split(",", emailstr); 92 QStringList emails = QStringList::split(",", emailstr);
87 93
88 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { 94 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) {
89 addr.insertEmail( *it, ((*it) == db->readField(ZdbAdrs::DefaultEmail)) ); 95 addr.insertEmail( *it, ((*it) == db->readField(ZdbAdrs::DefaultEmail)) );
90 } 96 }
91 97
92 if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty()) 98 if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty())
93 addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true); 99 addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true);
94 100
95 // home 101 // home