summaryrefslogtreecommitdiffabout
path: root/kabc/addressbook.cpp
Unidiff
Diffstat (limited to 'kabc/addressbook.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp
index 20310a0..c61b387 100644
--- a/kabc/addressbook.cpp
+++ b/kabc/addressbook.cpp
@@ -46,385 +46,385 @@ $Id$
46#include "resource.h" 46#include "resource.h"
47 47
48//US #include "addressbook.moc" 48//US #include "addressbook.moc"
49 49
50using namespace KABC; 50using namespace KABC;
51 51
52struct AddressBook::AddressBookData 52struct AddressBook::AddressBookData
53{ 53{
54 Addressee::List mAddressees; 54 Addressee::List mAddressees;
55 Addressee::List mRemovedAddressees; 55 Addressee::List mRemovedAddressees;
56 Field::List mAllFields; 56 Field::List mAllFields;
57 KConfig *mConfig; 57 KConfig *mConfig;
58 KRES::Manager<Resource> *mManager; 58 KRES::Manager<Resource> *mManager;
59//US ErrorHandler *mErrorHandler; 59//US ErrorHandler *mErrorHandler;
60}; 60};
61 61
62struct AddressBook::Iterator::IteratorData 62struct AddressBook::Iterator::IteratorData
63{ 63{
64 Addressee::List::Iterator mIt; 64 Addressee::List::Iterator mIt;
65}; 65};
66 66
67struct AddressBook::ConstIterator::ConstIteratorData 67struct AddressBook::ConstIterator::ConstIteratorData
68{ 68{
69 Addressee::List::ConstIterator mIt; 69 Addressee::List::ConstIterator mIt;
70}; 70};
71 71
72AddressBook::Iterator::Iterator() 72AddressBook::Iterator::Iterator()
73{ 73{
74 d = new IteratorData; 74 d = new IteratorData;
75} 75}
76 76
77AddressBook::Iterator::Iterator( const AddressBook::Iterator &i ) 77AddressBook::Iterator::Iterator( const AddressBook::Iterator &i )
78{ 78{
79 d = new IteratorData; 79 d = new IteratorData;
80 d->mIt = i.d->mIt; 80 d->mIt = i.d->mIt;
81} 81}
82 82
83AddressBook::Iterator &AddressBook::Iterator::operator=( const AddressBook::Iterator &i ) 83AddressBook::Iterator &AddressBook::Iterator::operator=( const AddressBook::Iterator &i )
84{ 84{
85 if( this == &i ) return *this; // guard against self assignment 85 if( this == &i ) return *this; // guard against self assignment
86 delete d; // delete the old data the Iterator was completely constructed before 86 delete d; // delete the old data the Iterator was completely constructed before
87 d = new IteratorData; 87 d = new IteratorData;
88 d->mIt = i.d->mIt; 88 d->mIt = i.d->mIt;
89 return *this; 89 return *this;
90} 90}
91 91
92AddressBook::Iterator::~Iterator() 92AddressBook::Iterator::~Iterator()
93{ 93{
94 delete d; 94 delete d;
95} 95}
96 96
97const Addressee &AddressBook::Iterator::operator*() const 97const Addressee &AddressBook::Iterator::operator*() const
98{ 98{
99 return *(d->mIt); 99 return *(d->mIt);
100} 100}
101 101
102Addressee &AddressBook::Iterator::operator*() 102Addressee &AddressBook::Iterator::operator*()
103{ 103{
104 return *(d->mIt); 104 return *(d->mIt);
105} 105}
106 106
107Addressee *AddressBook::Iterator::operator->() 107Addressee *AddressBook::Iterator::operator->()
108{ 108{
109 return &(*(d->mIt)); 109 return &(*(d->mIt));
110} 110}
111 111
112AddressBook::Iterator &AddressBook::Iterator::operator++() 112AddressBook::Iterator &AddressBook::Iterator::operator++()
113{ 113{
114 (d->mIt)++; 114 (d->mIt)++;
115 return *this; 115 return *this;
116} 116}
117 117
118AddressBook::Iterator &AddressBook::Iterator::operator++(int) 118AddressBook::Iterator &AddressBook::Iterator::operator++(int)
119{ 119{
120 (d->mIt)++; 120 (d->mIt)++;
121 return *this; 121 return *this;
122} 122}
123 123
124AddressBook::Iterator &AddressBook::Iterator::operator--() 124AddressBook::Iterator &AddressBook::Iterator::operator--()
125{ 125{
126 (d->mIt)--; 126 (d->mIt)--;
127 return *this; 127 return *this;
128} 128}
129 129
130AddressBook::Iterator &AddressBook::Iterator::operator--(int) 130AddressBook::Iterator &AddressBook::Iterator::operator--(int)
131{ 131{
132 (d->mIt)--; 132 (d->mIt)--;
133 return *this; 133 return *this;
134} 134}
135 135
136bool AddressBook::Iterator::operator==( const Iterator &it ) 136bool AddressBook::Iterator::operator==( const Iterator &it )
137{ 137{
138 return ( d->mIt == it.d->mIt ); 138 return ( d->mIt == it.d->mIt );
139} 139}
140 140
141bool AddressBook::Iterator::operator!=( const Iterator &it ) 141bool AddressBook::Iterator::operator!=( const Iterator &it )
142{ 142{
143 return ( d->mIt != it.d->mIt ); 143 return ( d->mIt != it.d->mIt );
144} 144}
145 145
146 146
147AddressBook::ConstIterator::ConstIterator() 147AddressBook::ConstIterator::ConstIterator()
148{ 148{
149 d = new ConstIteratorData; 149 d = new ConstIteratorData;
150} 150}
151 151
152AddressBook::ConstIterator::ConstIterator( const AddressBook::ConstIterator &i ) 152AddressBook::ConstIterator::ConstIterator( const AddressBook::ConstIterator &i )
153{ 153{
154 d = new ConstIteratorData; 154 d = new ConstIteratorData;
155 d->mIt = i.d->mIt; 155 d->mIt = i.d->mIt;
156} 156}
157 157
158AddressBook::ConstIterator &AddressBook::ConstIterator::operator=( const AddressBook::ConstIterator &i ) 158AddressBook::ConstIterator &AddressBook::ConstIterator::operator=( const AddressBook::ConstIterator &i )
159{ 159{
160 if( this == &i ) return *this; // guard for self assignment 160 if( this == &i ) return *this; // guard for self assignment
161 delete d; // delete the old data because the Iterator was really constructed before 161 delete d; // delete the old data because the Iterator was really constructed before
162 d = new ConstIteratorData; 162 d = new ConstIteratorData;
163 d->mIt = i.d->mIt; 163 d->mIt = i.d->mIt;
164 return *this; 164 return *this;
165} 165}
166 166
167AddressBook::ConstIterator::~ConstIterator() 167AddressBook::ConstIterator::~ConstIterator()
168{ 168{
169 delete d; 169 delete d;
170} 170}
171 171
172const Addressee &AddressBook::ConstIterator::operator*() const 172const Addressee &AddressBook::ConstIterator::operator*() const
173{ 173{
174 return *(d->mIt); 174 return *(d->mIt);
175} 175}
176 176
177const Addressee* AddressBook::ConstIterator::operator->() const 177const Addressee* AddressBook::ConstIterator::operator->() const
178{ 178{
179 return &(*(d->mIt)); 179 return &(*(d->mIt));
180} 180}
181 181
182AddressBook::ConstIterator &AddressBook::ConstIterator::operator++() 182AddressBook::ConstIterator &AddressBook::ConstIterator::operator++()
183{ 183{
184 (d->mIt)++; 184 (d->mIt)++;
185 return *this; 185 return *this;
186} 186}
187 187
188AddressBook::ConstIterator &AddressBook::ConstIterator::operator++(int) 188AddressBook::ConstIterator &AddressBook::ConstIterator::operator++(int)
189{ 189{
190 (d->mIt)++; 190 (d->mIt)++;
191 return *this; 191 return *this;
192} 192}
193 193
194AddressBook::ConstIterator &AddressBook::ConstIterator::operator--() 194AddressBook::ConstIterator &AddressBook::ConstIterator::operator--()
195{ 195{
196 (d->mIt)--; 196 (d->mIt)--;
197 return *this; 197 return *this;
198} 198}
199 199
200AddressBook::ConstIterator &AddressBook::ConstIterator::operator--(int) 200AddressBook::ConstIterator &AddressBook::ConstIterator::operator--(int)
201{ 201{
202 (d->mIt)--; 202 (d->mIt)--;
203 return *this; 203 return *this;
204} 204}
205 205
206bool AddressBook::ConstIterator::operator==( const ConstIterator &it ) 206bool AddressBook::ConstIterator::operator==( const ConstIterator &it )
207{ 207{
208 return ( d->mIt == it.d->mIt ); 208 return ( d->mIt == it.d->mIt );
209} 209}
210 210
211bool AddressBook::ConstIterator::operator!=( const ConstIterator &it ) 211bool AddressBook::ConstIterator::operator!=( const ConstIterator &it )
212{ 212{
213 return ( d->mIt != it.d->mIt ); 213 return ( d->mIt != it.d->mIt );
214} 214}
215 215
216 216
217AddressBook::AddressBook() 217AddressBook::AddressBook()
218{ 218{
219 init(0, "contact"); 219 init(0, "contact");
220} 220}
221 221
222AddressBook::AddressBook( const QString &config ) 222AddressBook::AddressBook( const QString &config )
223{ 223{
224 init(config, "contact"); 224 init(config, "contact");
225} 225}
226 226
227AddressBook::AddressBook( const QString &config, const QString &family ) 227AddressBook::AddressBook( const QString &config, const QString &family )
228{ 228{
229 init(config, family); 229 init(config, family);
230 230
231} 231}
232 232
233// the default family is "contact" 233// the default family is "contact"
234void AddressBook::init(const QString &config, const QString &family ) 234void AddressBook::init(const QString &config, const QString &family )
235{ 235{
236 d = new AddressBookData; 236 d = new AddressBookData;
237 if (config != 0) { 237 if (config != 0) {
238 d->mConfig = new KConfig( config ); 238 d->mConfig = new KConfig( locateLocal("config", config) );
239// qDebug("AddressBook::init 1 config=%s",config.latin1() ); 239// qDebug("AddressBook::init 1 config=%s",config.latin1() );
240 } 240 }
241 else { 241 else {
242 d->mConfig = 0; 242 d->mConfig = 0;
243// qDebug("AddressBook::init 1 config=0"); 243// qDebug("AddressBook::init 1 config=0");
244 } 244 }
245 245
246//US d->mErrorHandler = 0; 246//US d->mErrorHandler = 0;
247 d->mManager = new KRES::Manager<Resource>( family, false ); 247 d->mManager = new KRES::Manager<Resource>( family, false );
248 d->mManager->readConfig( d->mConfig ); 248 d->mManager->readConfig( d->mConfig );
249} 249}
250 250
251AddressBook::~AddressBook() 251AddressBook::~AddressBook()
252{ 252{
253 delete d->mConfig; d->mConfig = 0; 253 delete d->mConfig; d->mConfig = 0;
254 delete d->mManager; d->mManager = 0; 254 delete d->mManager; d->mManager = 0;
255//US delete d->mErrorHandler; d->mErrorHandler = 0; 255//US delete d->mErrorHandler; d->mErrorHandler = 0;
256 delete d; d = 0; 256 delete d; d = 0;
257} 257}
258 258
259bool AddressBook::load() 259bool AddressBook::load()
260{ 260{
261 261
262 262
263 clear(); 263 clear();
264 264
265 KRES::Manager<Resource>::ActiveIterator it; 265 KRES::Manager<Resource>::ActiveIterator it;
266 bool ok = true; 266 bool ok = true;
267 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) 267 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it )
268 if ( !(*it)->load() ) { 268 if ( !(*it)->load() ) {
269 error( i18n("Unable to load resource '%1'").arg( (*it)->resourceName() ) ); 269 error( i18n("Unable to load resource '%1'").arg( (*it)->resourceName() ) );
270 ok = false; 270 ok = false;
271 } 271 }
272 272
273 // mark all addressees as unchanged 273 // mark all addressees as unchanged
274 Addressee::List::Iterator addrIt; 274 Addressee::List::Iterator addrIt;
275 for ( addrIt = d->mAddressees.begin(); addrIt != d->mAddressees.end(); ++addrIt ) 275 for ( addrIt = d->mAddressees.begin(); addrIt != d->mAddressees.end(); ++addrIt )
276 (*addrIt).setChanged( false ); 276 (*addrIt).setChanged( false );
277 277
278 return ok; 278 return ok;
279} 279}
280 280
281bool AddressBook::save( Ticket *ticket ) 281bool AddressBook::save( Ticket *ticket )
282{ 282{
283 kdDebug(5700) << "AddressBook::save()"<< endl; 283 kdDebug(5700) << "AddressBook::save()"<< endl;
284 284
285 if ( ticket->resource() ) { 285 if ( ticket->resource() ) {
286 deleteRemovedAddressees(); 286 deleteRemovedAddressees();
287 287
288 return ticket->resource()->save( ticket ); 288 return ticket->resource()->save( ticket );
289 } 289 }
290 290
291 return false; 291 return false;
292} 292}
293 293
294AddressBook::Iterator AddressBook::begin() 294AddressBook::Iterator AddressBook::begin()
295{ 295{
296 Iterator it = Iterator(); 296 Iterator it = Iterator();
297 it.d->mIt = d->mAddressees.begin(); 297 it.d->mIt = d->mAddressees.begin();
298 return it; 298 return it;
299} 299}
300 300
301AddressBook::ConstIterator AddressBook::begin() const 301AddressBook::ConstIterator AddressBook::begin() const
302{ 302{
303 ConstIterator it = ConstIterator(); 303 ConstIterator it = ConstIterator();
304 it.d->mIt = d->mAddressees.begin(); 304 it.d->mIt = d->mAddressees.begin();
305 return it; 305 return it;
306} 306}
307 307
308AddressBook::Iterator AddressBook::end() 308AddressBook::Iterator AddressBook::end()
309{ 309{
310 Iterator it = Iterator(); 310 Iterator it = Iterator();
311 it.d->mIt = d->mAddressees.end(); 311 it.d->mIt = d->mAddressees.end();
312 return it; 312 return it;
313} 313}
314 314
315AddressBook::ConstIterator AddressBook::end() const 315AddressBook::ConstIterator AddressBook::end() const
316{ 316{
317 ConstIterator it = ConstIterator(); 317 ConstIterator it = ConstIterator();
318 it.d->mIt = d->mAddressees.end(); 318 it.d->mIt = d->mAddressees.end();
319 return it; 319 return it;
320} 320}
321 321
322void AddressBook::clear() 322void AddressBook::clear()
323{ 323{
324 d->mAddressees.clear(); 324 d->mAddressees.clear();
325} 325}
326 326
327Ticket *AddressBook::requestSaveTicket( Resource *resource ) 327Ticket *AddressBook::requestSaveTicket( Resource *resource )
328{ 328{
329 kdDebug(5700) << "AddressBook::requestSaveTicket()" << endl; 329 kdDebug(5700) << "AddressBook::requestSaveTicket()" << endl;
330 330
331 if ( !resource ) 331 if ( !resource )
332 { 332 {
333 qDebug("AddressBook::requestSaveTicket no resource" ); 333 qDebug("AddressBook::requestSaveTicket no resource" );
334 resource = standardResource(); 334 resource = standardResource();
335 } 335 }
336 336
337 KRES::Manager<Resource>::ActiveIterator it; 337 KRES::Manager<Resource>::ActiveIterator it;
338 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) { 338 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) {
339 if ( (*it) == resource ) { 339 if ( (*it) == resource ) {
340 if ( (*it)->readOnly() || !(*it)->isOpen() ) 340 if ( (*it)->readOnly() || !(*it)->isOpen() )
341 return 0; 341 return 0;
342 else 342 else
343 return (*it)->requestSaveTicket(); 343 return (*it)->requestSaveTicket();
344 } 344 }
345 } 345 }
346 346
347 return 0; 347 return 0;
348} 348}
349 349
350void AddressBook::insertAddressee( const Addressee &a ) 350void AddressBook::insertAddressee( const Addressee &a )
351{ 351{
352 Addressee::List::Iterator it; 352 Addressee::List::Iterator it;
353 for ( it = d->mAddressees.begin(); it != d->mAddressees.end(); ++it ) { 353 for ( it = d->mAddressees.begin(); it != d->mAddressees.end(); ++it ) {
354 if ( a.uid() == (*it).uid() ) { 354 if ( a.uid() == (*it).uid() ) {
355 bool changed = false; 355 bool changed = false;
356 Addressee addr = a; 356 Addressee addr = a;
357 if ( addr != (*it) ) 357 if ( addr != (*it) )
358 changed = true; 358 changed = true;
359 359
360 (*it) = a; 360 (*it) = a;
361 if ( (*it).resource() == 0 ) 361 if ( (*it).resource() == 0 )
362 (*it).setResource( standardResource() ); 362 (*it).setResource( standardResource() );
363 363
364 if ( changed ) { 364 if ( changed ) {
365 (*it).setRevision( QDateTime::currentDateTime() ); 365 (*it).setRevision( QDateTime::currentDateTime() );
366 (*it).setChanged( true ); 366 (*it).setChanged( true );
367 } 367 }
368 368
369 return; 369 return;
370 } 370 }
371 } 371 }
372 d->mAddressees.append( a ); 372 d->mAddressees.append( a );
373 Addressee& addr = d->mAddressees.last(); 373 Addressee& addr = d->mAddressees.last();
374 if ( addr.resource() == 0 ) 374 if ( addr.resource() == 0 )
375 addr.setResource( standardResource() ); 375 addr.setResource( standardResource() );
376 376
377 addr.setChanged( true ); 377 addr.setChanged( true );
378} 378}
379 379
380void AddressBook::removeAddressee( const Addressee &a ) 380void AddressBook::removeAddressee( const Addressee &a )
381{ 381{
382 Iterator it; 382 Iterator it;
383 for ( it = begin(); it != end(); ++it ) { 383 for ( it = begin(); it != end(); ++it ) {
384 if ( a.uid() == (*it).uid() ) { 384 if ( a.uid() == (*it).uid() ) {
385 removeAddressee( it ); 385 removeAddressee( it );
386 return; 386 return;
387 } 387 }
388 } 388 }
389} 389}
390 390
391void AddressBook::removeAddressee( const Iterator &it ) 391void AddressBook::removeAddressee( const Iterator &it )
392{ 392{
393 d->mRemovedAddressees.append( (*it) ); 393 d->mRemovedAddressees.append( (*it) );
394 d->mAddressees.remove( it.d->mIt ); 394 d->mAddressees.remove( it.d->mIt );
395} 395}
396 396
397AddressBook::Iterator AddressBook::find( const Addressee &a ) 397AddressBook::Iterator AddressBook::find( const Addressee &a )
398{ 398{
399 Iterator it; 399 Iterator it;
400 for ( it = begin(); it != end(); ++it ) { 400 for ( it = begin(); it != end(); ++it ) {
401 if ( a.uid() == (*it).uid() ) { 401 if ( a.uid() == (*it).uid() ) {
402 return it; 402 return it;
403 } 403 }
404 } 404 }
405 return end(); 405 return end();
406} 406}
407 407
408Addressee AddressBook::findByUid( const QString &uid ) 408Addressee AddressBook::findByUid( const QString &uid )
409{ 409{
410 Iterator it; 410 Iterator it;
411 for ( it = begin(); it != end(); ++it ) { 411 for ( it = begin(); it != end(); ++it ) {
412 if ( uid == (*it).uid() ) { 412 if ( uid == (*it).uid() ) {
413 return *it; 413 return *it;
414 } 414 }
415 } 415 }
416 return Addressee(); 416 return Addressee();
417} 417}
418 418
419Addressee::List AddressBook::allAddressees() 419Addressee::List AddressBook::allAddressees()
420{ 420{
421 return d->mAddressees; 421 return d->mAddressees;
422} 422}
423 423
424Addressee::List AddressBook::findByName( const QString &name ) 424Addressee::List AddressBook::findByName( const QString &name )
425{ 425{
426 Addressee::List results; 426 Addressee::List results;
427 427
428 Iterator it; 428 Iterator it;
429 for ( it = begin(); it != end(); ++it ) { 429 for ( it = begin(); it != end(); ++it ) {
430 if ( name == (*it).name() ) { 430 if ( name == (*it).name() ) {