summaryrefslogtreecommitdiffabout
path: root/kabc
Unidiff
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.cpp2
-rw-r--r--kabc/stdaddressbook.cpp14
2 files changed, 13 insertions, 3 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp
index c61b387..47d298a 100644
--- a/kabc/addressbook.cpp
+++ b/kabc/addressbook.cpp
@@ -238,385 +238,385 @@ void AddressBook::init(const QString &config, const QString &family )
238 d->mConfig = new KConfig( locateLocal("config", 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).realName() ) {
431 results.append( *it ); 431 results.append( *it );
432 } 432 }
433 } 433 }
434 434
435 return results; 435 return results;
436} 436}
437 437
438Addressee::List AddressBook::findByEmail( const QString &email ) 438Addressee::List AddressBook::findByEmail( const QString &email )
439{ 439{
440 Addressee::List results; 440 Addressee::List results;
441 QStringList mailList; 441 QStringList mailList;
442 442
443 Iterator it; 443 Iterator it;
444 for ( it = begin(); it != end(); ++it ) { 444 for ( it = begin(); it != end(); ++it ) {
445 mailList = (*it).emails(); 445 mailList = (*it).emails();
446 for ( QStringList::Iterator ite = mailList.begin(); ite != mailList.end(); ++ite ) { 446 for ( QStringList::Iterator ite = mailList.begin(); ite != mailList.end(); ++ite ) {
447 if ( email == (*ite) ) { 447 if ( email == (*ite) ) {
448 results.append( *it ); 448 results.append( *it );
449 } 449 }
450 } 450 }
451 } 451 }
452 452
453 return results; 453 return results;
454} 454}
455 455
456Addressee::List AddressBook::findByCategory( const QString &category ) 456Addressee::List AddressBook::findByCategory( const QString &category )
457{ 457{
458 Addressee::List results; 458 Addressee::List results;
459 459
460 Iterator it; 460 Iterator it;
461 for ( it = begin(); it != end(); ++it ) { 461 for ( it = begin(); it != end(); ++it ) {
462 if ( (*it).hasCategory( category) ) { 462 if ( (*it).hasCategory( category) ) {
463 results.append( *it ); 463 results.append( *it );
464 } 464 }
465 } 465 }
466 466
467 return results; 467 return results;
468} 468}
469 469
470void AddressBook::dump() const 470void AddressBook::dump() const
471{ 471{
472 kdDebug(5700) << "AddressBook::dump() --- begin ---" << endl; 472 kdDebug(5700) << "AddressBook::dump() --- begin ---" << endl;
473 473
474 ConstIterator it; 474 ConstIterator it;
475 for( it = begin(); it != end(); ++it ) { 475 for( it = begin(); it != end(); ++it ) {
476 (*it).dump(); 476 (*it).dump();
477 } 477 }
478 478
479 kdDebug(5700) << "AddressBook::dump() --- end ---" << endl; 479 kdDebug(5700) << "AddressBook::dump() --- end ---" << endl;
480} 480}
481 481
482QString AddressBook::identifier() 482QString AddressBook::identifier()
483{ 483{
484 QStringList identifier; 484 QStringList identifier;
485 485
486 486
487 KRES::Manager<Resource>::ActiveIterator it; 487 KRES::Manager<Resource>::ActiveIterator it;
488 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) { 488 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) {
489 if ( !(*it)->identifier().isEmpty() ) 489 if ( !(*it)->identifier().isEmpty() )
490 identifier.append( (*it)->identifier() ); 490 identifier.append( (*it)->identifier() );
491 } 491 }
492 492
493 return identifier.join( ":" ); 493 return identifier.join( ":" );
494} 494}
495 495
496Field::List AddressBook::fields( int category ) 496Field::List AddressBook::fields( int category )
497{ 497{
498 if ( d->mAllFields.isEmpty() ) { 498 if ( d->mAllFields.isEmpty() ) {
499 d->mAllFields = Field::allFields(); 499 d->mAllFields = Field::allFields();
500 } 500 }
501 501
502 if ( category == Field::All ) return d->mAllFields; 502 if ( category == Field::All ) return d->mAllFields;
503 503
504 Field::List result; 504 Field::List result;
505 Field::List::ConstIterator it; 505 Field::List::ConstIterator it;
506 for( it = d->mAllFields.begin(); it != d->mAllFields.end(); ++it ) { 506 for( it = d->mAllFields.begin(); it != d->mAllFields.end(); ++it ) {
507 if ( (*it)->category() & category ) result.append( *it ); 507 if ( (*it)->category() & category ) result.append( *it );
508 } 508 }
509 509
510 return result; 510 return result;
511} 511}
512 512
513bool AddressBook::addCustomField( const QString &label, int category, 513bool AddressBook::addCustomField( const QString &label, int category,
514 const QString &key, const QString &app ) 514 const QString &key, const QString &app )
515{ 515{
516 if ( d->mAllFields.isEmpty() ) { 516 if ( d->mAllFields.isEmpty() ) {
517 d->mAllFields = Field::allFields(); 517 d->mAllFields = Field::allFields();
518 } 518 }
519//US QString a = app.isNull() ? KGlobal::instance()->instanceName() : app; 519//US QString a = app.isNull() ? KGlobal::instance()->instanceName() : app;
520 QString a = app.isNull() ? KGlobal::getAppName() : app; 520 QString a = app.isNull() ? KGlobal::getAppName() : app;
521 521
522 QString k = key.isNull() ? label : key; 522 QString k = key.isNull() ? label : key;
523 523
524 Field *field = Field::createCustomField( label, category, k, a ); 524 Field *field = Field::createCustomField( label, category, k, a );
525 525
526 if ( !field ) return false; 526 if ( !field ) return false;
527 527
528 d->mAllFields.append( field ); 528 d->mAllFields.append( field );
529 529
530 return true; 530 return true;
531} 531}
532 532
533QDataStream &KABC::operator<<( QDataStream &s, const AddressBook &ab ) 533QDataStream &KABC::operator<<( QDataStream &s, const AddressBook &ab )
534{ 534{
535 if (!ab.d) return s; 535 if (!ab.d) return s;
536 536
537 return s << ab.d->mAddressees; 537 return s << ab.d->mAddressees;
538} 538}
539 539
540QDataStream &KABC::operator>>( QDataStream &s, AddressBook &ab ) 540QDataStream &KABC::operator>>( QDataStream &s, AddressBook &ab )
541{ 541{
542 if (!ab.d) return s; 542 if (!ab.d) return s;
543 543
544 s >> ab.d->mAddressees; 544 s >> ab.d->mAddressees;
545 545
546 return s; 546 return s;
547} 547}
548 548
549bool AddressBook::addResource( Resource *resource ) 549bool AddressBook::addResource( Resource *resource )
550{ 550{
551 if ( !resource->open() ) { 551 if ( !resource->open() ) {
552 kdDebug(5700) << "AddressBook::addResource(): can't add resource" << endl; 552 kdDebug(5700) << "AddressBook::addResource(): can't add resource" << endl;
553 return false; 553 return false;
554 } 554 }
555 555
556 resource->setAddressBook( this ); 556 resource->setAddressBook( this );
557 557
558 d->mManager->add( resource ); 558 d->mManager->add( resource );
559 return true; 559 return true;
560} 560}
561 561
562bool AddressBook::removeResource( Resource *resource ) 562bool AddressBook::removeResource( Resource *resource )
563{ 563{
564 resource->close(); 564 resource->close();
565 565
566 if ( resource == standardResource() ) 566 if ( resource == standardResource() )
567 d->mManager->setStandardResource( 0 ); 567 d->mManager->setStandardResource( 0 );
568 568
569 resource->setAddressBook( 0 ); 569 resource->setAddressBook( 0 );
570 570
571 d->mManager->remove( resource ); 571 d->mManager->remove( resource );
572 return true; 572 return true;
573} 573}
574 574
575QPtrList<Resource> AddressBook::resources() 575QPtrList<Resource> AddressBook::resources()
576{ 576{
577 QPtrList<Resource> list; 577 QPtrList<Resource> list;
578 578
579// qDebug("AddressBook::resources() 1"); 579// qDebug("AddressBook::resources() 1");
580 580
581 KRES::Manager<Resource>::ActiveIterator it; 581 KRES::Manager<Resource>::ActiveIterator it;
582 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) 582 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it )
583 list.append( *it ); 583 list.append( *it );
584 584
585 return list; 585 return list;
586} 586}
587 587
588/*US 588/*US
589void AddressBook::setErrorHandler( ErrorHandler *handler ) 589void AddressBook::setErrorHandler( ErrorHandler *handler )
590{ 590{
591 delete d->mErrorHandler; 591 delete d->mErrorHandler;
592 d->mErrorHandler = handler; 592 d->mErrorHandler = handler;
593} 593}
594*/ 594*/
595 595
596void AddressBook::error( const QString& msg ) 596void AddressBook::error( const QString& msg )
597{ 597{
598/*US 598/*US
599 if ( !d->mErrorHandler ) // create default error handler 599 if ( !d->mErrorHandler ) // create default error handler
600 d->mErrorHandler = new ConsoleErrorHandler; 600 d->mErrorHandler = new ConsoleErrorHandler;
601 601
602 if ( d->mErrorHandler ) 602 if ( d->mErrorHandler )
603 d->mErrorHandler->error( msg ); 603 d->mErrorHandler->error( msg );
604 else 604 else
605 kdError(5700) << "no error handler defined" << endl; 605 kdError(5700) << "no error handler defined" << endl;
606*/ 606*/
607 kdDebug(5700) << "msg" << endl; 607 kdDebug(5700) << "msg" << endl;
608 qDebug(msg); 608 qDebug(msg);
609} 609}
610 610
611void AddressBook::deleteRemovedAddressees() 611void AddressBook::deleteRemovedAddressees()
612{ 612{
613 Addressee::List::Iterator it; 613 Addressee::List::Iterator it;
614 for ( it = d->mRemovedAddressees.begin(); it != d->mRemovedAddressees.end(); ++it ) { 614 for ( it = d->mRemovedAddressees.begin(); it != d->mRemovedAddressees.end(); ++it ) {
615 Resource *resource = (*it).resource(); 615 Resource *resource = (*it).resource();
616 if ( resource && !resource->readOnly() && resource->isOpen() ) 616 if ( resource && !resource->readOnly() && resource->isOpen() )
617 resource->removeAddressee( *it ); 617 resource->removeAddressee( *it );
618 } 618 }
619 619
620 d->mRemovedAddressees.clear(); 620 d->mRemovedAddressees.clear();
621} 621}
622 622
diff --git a/kabc/stdaddressbook.cpp b/kabc/stdaddressbook.cpp
index 760820e..9f38f08 100644
--- a/kabc/stdaddressbook.cpp
+++ b/kabc/stdaddressbook.cpp
@@ -1,226 +1,236 @@
1/* 1/*
2 This file is part of libkabc. 2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21/* 21/*
22Enhanced Version of the file for platform independent KDE tools. 22Enhanced Version of the file for platform independent KDE tools.
23Copyright (c) 2004 Ulf Schenk 23Copyright (c) 2004 Ulf Schenk
24 24
25$Id$ 25$Id$
26*/ 26*/
27 27
28#include <qdir.h> 28#include <qdir.h>
29#include "resource.h" 29#include "resource.h"
30#include <kresources/manager.h> 30#include <kresources/manager.h>
31#include <kdebug.h> 31#include <kdebug.h>
32#include <klocale.h> 32#include <klocale.h>
33#include <kstaticdeleter.h> 33#include <kstaticdeleter.h>
34#include <kstandarddirs.h> 34#include <kstandarddirs.h>
35 35
36#include "stdaddressbook.h" 36#include "stdaddressbook.h"
37 37
38using namespace KABC; 38using namespace KABC;
39 39
40StdAddressBook *StdAddressBook::mSelf = 0; 40StdAddressBook *StdAddressBook::mSelf = 0;
41bool StdAddressBook::mAutomaticSave = true; 41bool StdAddressBook::mAutomaticSave = true;
42 42
43static KStaticDeleter<StdAddressBook> addressBookDeleter; 43static KStaticDeleter<StdAddressBook> addressBookDeleter;
44 44
45QString StdAddressBook::fileName() 45QString StdAddressBook::fileName()
46{ 46{
47 return locateLocal( "data", "kabc/std.vcf" ); 47 return locateLocal( "data", "kabc/std.vcf" );
48} 48}
49 49
50QString StdAddressBook::directoryName() 50QString StdAddressBook::directoryName()
51{ 51{
52 return locateLocal( "data", "kabc/stdvcf" ); 52 return locateLocal( "data", "kabc/stdvcf" );
53} 53}
54 54
55void StdAddressBook::handleCrash() 55void StdAddressBook::handleCrash()
56{ 56{
57 StdAddressBook::self()->cleanUp(); 57 StdAddressBook::self()->cleanUp();
58} 58}
59 59
60StdAddressBook *StdAddressBook::self() 60StdAddressBook *StdAddressBook::self()
61{ 61{
62 62
63 if ( !mSelf ) 63 if ( !mSelf )
64 { 64 {
65 QString appdir = StdAddressBook::setTempAppDir(); 65 QString appdir = StdAddressBook::setTempAppDir();
66 66 qDebug("****************************************************** ");
67 kdDebug(5700) << "StdAddressBook::self()" << endl; 67 qDebug("****************************************************** ");
68 qDebug("****************************************************** ");
69 qDebug("****************************************************** ");
70 qDebug("****************************************************** ");
68// US im am not sure why I have to use the other format here?? 71// US im am not sure why I have to use the other format here??
69#ifdef KAB_EMBEDDED 72#ifdef KAB_EMBEDDED
70 mSelf = addressBookDeleter.setObject( new StdAddressBook ); 73 mSelf = addressBookDeleter.setObject( new StdAddressBook );
71#else //KAB_EMBEDDED 74#else //KAB_EMBEDDED
72 addressBookDeleter.setObject( mSelf, new StdAddressBook ); 75 addressBookDeleter.setObject( mSelf, new StdAddressBook );
73#endif //KAB_EMBEDDED 76#endif //KAB_EMBEDDED
74 KStandardDirs::setAppDir( appdir ); 77 KStandardDirs::setAppDir( appdir );
75 } 78 }
76 79
77 return mSelf; 80 return mSelf;
78} 81}
79 82
80QString StdAddressBook::setTempAppDir() 83QString StdAddressBook::setTempAppDir()
81{ 84{
82 QString appDIR = KStandardDirs::appDir(); 85 QString appDIR = KStandardDirs::appDir();
83#ifdef DESKTOP_VERSION 86#ifdef DESKTOP_VERSION
84 QString appdir = QDir::homeDirPath(); 87 QString appdir = QDir::homeDirPath();
85 if ( appdir.right(1) == "\\" || appdir.right(1) == "/" ) 88 if ( appdir.right(1) == "\\" || appdir.right(1) == "/" )
86 appdir += "kaddressbook/"; 89 appdir += "kaddressbook/";
87 else 90 else
88 appdir += "/kaddressbook/"; 91 appdir += "/kaddressbook/";
89 KStandardDirs::setAppDir( QDir::convertSeparators( appdir )); 92 KStandardDirs::setAppDir( QDir::convertSeparators( appdir ));
90#else 93#else
91 QString appdir = QDir::homeDirPath() + "/kdepim/apps/kaddressbook"; 94 QString appdir = QDir::homeDirPath() + "/kdepim/apps/kaddressbook";
92 95
93 KStandardDirs::setAppDir( appdir ); 96 KStandardDirs::setAppDir( appdir );
94#endif 97#endif
95 98
96 return appDIR; 99 return appDIR;
97} 100}
98StdAddressBook *StdAddressBook::self( bool onlyFastResources ) 101StdAddressBook *StdAddressBook::self( bool onlyFastResources )
99{ 102{
100 103
101 if ( !mSelf ) 104 if ( !mSelf )
102 { 105 {
106 qDebug("++++++++++++++++++++++++++++++++++++++++++++++++ ");
107 qDebug("++++++++++++++++++++++++++++++++++++++++++++++++ ");
108 qDebug("++++++++++++++++++++++++++++++++++++++++++++++++ ");
109 qDebug("++++++++++++++++++++++++++++++++++++++++++++++++ ");
110 qDebug("++++++++++++++++++++++++++++++++++++++++++++++++ ");
111 qDebug("++++++++++++++++++++++++++++++++++++++++++++++++ ");
112 qDebug("++++++++++++++++++++++++++++++++++++++++++++++++ ");
103 QString appdir =StdAddressBook::setTempAppDir(); 113 QString appdir =StdAddressBook::setTempAppDir();
104#ifdef KAB_EMBEDDED 114#ifdef KAB_EMBEDDED
105 mSelf = addressBookDeleter.setObject( new StdAddressBook( onlyFastResources ) ); 115 mSelf = addressBookDeleter.setObject( new StdAddressBook( onlyFastResources ) );
106#else //KAB_EMBEDDED 116#else //KAB_EMBEDDED
107 addressBookDeleter.setObject( mSelf, new StdAddressBook( onlyFastResources ) ); 117 addressBookDeleter.setObject( mSelf, new StdAddressBook( onlyFastResources ) );
108#endif //KAB_EMBEDDED 118#endif //KAB_EMBEDDED
109 KStandardDirs::setAppDir( appdir ); 119 KStandardDirs::setAppDir( appdir );
110 } 120 }
111 return mSelf; 121 return mSelf;
112} 122}
113 123
114StdAddressBook::StdAddressBook() 124StdAddressBook::StdAddressBook()
115 : AddressBook( "kabcrc" ) 125 : AddressBook( "kabcrc" )
116{ 126{
117 127
118 init( false ); 128 init( false );
119} 129}
120 130
121StdAddressBook::StdAddressBook( bool onlyFastResources ) 131StdAddressBook::StdAddressBook( bool onlyFastResources )
122 : AddressBook( "kabcrc" ) 132 : AddressBook( "kabcrc" )
123{ 133{
124 134
125 init( onlyFastResources ); 135 init( onlyFastResources );
126} 136}
127 137
128StdAddressBook::~StdAddressBook() 138StdAddressBook::~StdAddressBook()
129{ 139{
130 if ( mAutomaticSave ) 140 if ( mAutomaticSave )
131 save(); 141 save();
132} 142}
133 143
134void StdAddressBook::init( bool ) 144void StdAddressBook::init( bool )
135{ 145{
136 KRES::Manager<Resource> *manager = resourceManager(); 146 KRES::Manager<Resource> *manager = resourceManager();
137 KRES::Manager<Resource>::ActiveIterator it; 147 KRES::Manager<Resource>::ActiveIterator it;
138 148
139 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { 149 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) {
140 (*it)->setAddressBook( this ); 150 (*it)->setAddressBook( this );
141 if ( !(*it)->open() ) 151 if ( !(*it)->open() )
142 error( QString( "Unable to open resource '%1'!" ).arg( (*it)->resourceName() ) ); 152 error( QString( "Unable to open resource '%1'!" ).arg( (*it)->resourceName() ) );
143 } 153 }
144 154
145 Resource *res = standardResource(); 155 Resource *res = standardResource();
146 if ( !res ) { 156 if ( !res ) {
147 res = manager->createResource( "file" ); 157 res = manager->createResource( "file" );
148 if ( res ) 158 if ( res )
149 { 159 {
150 addResource( res ); 160 addResource( res );
151 } 161 }
152 else 162 else
153 qDebug(" No resource available!!!"); 163 qDebug(" No resource available!!!");
154 } 164 }
155 165
156 setStandardResource( res ); 166 setStandardResource( res );
157 manager->writeConfig(); 167 manager->writeConfig();
158 168
159 load(); 169 load();
160} 170}
161 171
162bool StdAddressBook::save() 172bool StdAddressBook::save()
163{ 173{
164 kdDebug(5700) << "StdAddressBook::save()" << endl; 174 kdDebug(5700) << "StdAddressBook::save()" << endl;
165 175
166 bool ok = true; 176 bool ok = true;
167 AddressBook *ab = self(); 177 AddressBook *ab = self();
168 178
169 ab->deleteRemovedAddressees(); 179 ab->deleteRemovedAddressees();
170 180
171 KRES::Manager<Resource>::ActiveIterator it; 181 KRES::Manager<Resource>::ActiveIterator it;
172 KRES::Manager<Resource> *manager = ab->resourceManager(); 182 KRES::Manager<Resource> *manager = ab->resourceManager();
173 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { 183 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) {
174 if ( !(*it)->readOnly() && (*it)->isOpen() ) { 184 if ( !(*it)->readOnly() && (*it)->isOpen() ) {
175 Ticket *ticket = ab->requestSaveTicket( *it ); 185 Ticket *ticket = ab->requestSaveTicket( *it );
176// qDebug("StdAddressBook::save '%s'", (*it)->resourceName().latin1() ); 186// qDebug("StdAddressBook::save '%s'", (*it)->resourceName().latin1() );
177 if ( !ticket ) { 187 if ( !ticket ) {
178 ab->error( i18n( "Unable to save to resource '%1'. It is locked." ) 188 ab->error( i18n( "Unable to save to resource '%1'. It is locked." )
179 .arg( (*it)->resourceName() ) ); 189 .arg( (*it)->resourceName() ) );
180 return false; 190 return false;
181 } 191 }
182 192
183 if ( !ab->save( ticket ) ) 193 if ( !ab->save( ticket ) )
184 ok = false; 194 ok = false;
185 } 195 }
186 } 196 }
187 197
188 return ok; 198 return ok;
189} 199}
190 200
191void StdAddressBook::close() 201void StdAddressBook::close()
192{ 202{
193//US destructObject is not defined on my system???. Is setObject(0) the same ??? 203//US destructObject is not defined on my system???. Is setObject(0) the same ???
194//US addressBookDeleter.destructObject(); 204//US addressBookDeleter.destructObject();
195 addressBookDeleter.setObject(0); 205 addressBookDeleter.setObject(0);
196 206
197} 207}
198 208
199void StdAddressBook::setAutomaticSave( bool enable ) 209void StdAddressBook::setAutomaticSave( bool enable )
200{ 210{
201 mAutomaticSave = enable; 211 mAutomaticSave = enable;
202} 212}
203 213
204bool StdAddressBook::automaticSave() 214bool StdAddressBook::automaticSave()
205{ 215{
206 return mAutomaticSave; 216 return mAutomaticSave;
207} 217}
208 218
209// should get const for 4.X 219// should get const for 4.X
210Addressee StdAddressBook::whoAmI() 220Addressee StdAddressBook::whoAmI()
211{ 221{
212//US KConfig config( "kabcrc" ); 222//US KConfig config( "kabcrc" );
213 KConfig config( locateLocal("config", "kabcrc") ); 223 KConfig config( locateLocal("config", "kabcrc") );
214 config.setGroup( "General" ); 224 config.setGroup( "General" );
215 225
216 return findByUid( config.readEntry( "WhoAmI" ) ); 226 return findByUid( config.readEntry( "WhoAmI" ) );
217} 227}
218 228
219void StdAddressBook::setWhoAmI( const Addressee &addr ) 229void StdAddressBook::setWhoAmI( const Addressee &addr )
220{ 230{
221//US KConfig config( "kabcrc" ); 231//US KConfig config( "kabcrc" );
222 KConfig config( locateLocal("config", "kabcrc") ); 232 KConfig config( locateLocal("config", "kabcrc") );
223 config.setGroup( "General" ); 233 config.setGroup( "General" );
224 234
225 config.writeEntry( "WhoAmI", addr.uid() ); 235 config.writeEntry( "WhoAmI", addr.uid() );
226} 236}