author | zautrix <zautrix> | 2004-10-11 10:09:39 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-11 10:09:39 (UTC) |
commit | d3759373291c08d2cde93d85a76d190dc8a33830 (patch) (side-by-side diff) | |
tree | ccc808fbdcd2ef0f38747fa459b2c605948f49a5 | |
parent | 504f6b2a8732d980a88234cdef0a80c201b9c4da (diff) | |
download | kdepimpi-d3759373291c08d2cde93d85a76d190dc8a33830.zip kdepimpi-d3759373291c08d2cde93d85a76d190dc8a33830.tar.gz kdepimpi-d3759373291c08d2cde93d85a76d190dc8a33830.tar.bz2 |
crash fix in saveAB
-rw-r--r-- | kabc/addressbook.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp index ad0f702..19c26eb 100644 --- a/kabc/addressbook.cpp +++ b/kabc/addressbook.cpp @@ -571,147 +571,148 @@ void AddressBook::findNewExtIds( QString fileName, QString currentSyncDevice ) data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); KABC::VCardTool tool; list = tool.parseVCards( data ); KABC::Addressee::List::Iterator it; for ( it = list.begin(); it != list.end(); ++it ) { Iterator ait; for ( ait = begin(); ait != end(); ++ait ) { if ( !(*ait).tagged() ) { if ( (*ait).containsAdr(*it)) { (*ait).setTagged(true); QString id = (*it).custom( "KADDRESSBOOK", "X-ExternalID" ); (*it).setIDStr( ":"); (*it).setID( currentSyncDevice,id ); (*it).setExternalUID( id ); (*it).setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); (*it).setUid( ( (*ait).uid() )); break; } } } if ( ait == end() ) qDebug("ERROR:: no ext ID found for uid: %s", (*it).uid().latin1()); } clear(); for ( it = list.begin(); it != list.end(); ++it ) { insertAddressee( (*it) ); } } bool AddressBook::saveABphone( QString fileName ) { //smplifyAddressees(); qDebug("saveABphone:: saving AB... "); if ( ! export2PhoneFormat( QStringList() ,fileName ) ) return false; qDebug("saveABphone:: writing to phone... "); if ( !PhoneAccess::writeToPhone( fileName) ) { return false; } qDebug("saveABphone:: re-reading from phone... "); if ( !PhoneAccess::readFromPhone( fileName) ) { return false; } return true; } bool AddressBook::saveAB() { bool ok = true; deleteRemovedAddressees(); Iterator ait; for ( ait = begin(); ait != end(); ++ait ) { if ( !(*ait).IDStr().isEmpty() ) { (*ait).insertCustom( "KADDRESSBOOK", "X-ExternalID", (*ait).IDStr() ); } } KRES::Manager<Resource>::ActiveIterator it; KRES::Manager<Resource> *manager = d->mManager; qDebug("SaveAB::saving..." ); for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { qDebug("SaveAB::checking resource..." ); if ( (*it)->readOnly() ) - qDebug("readonly." ); + qDebug("resource is readonly." ); if ( (*it)->isOpen() ) - qDebug("open" ); + qDebug("resource is open" ); if ( !(*it)->readOnly() && (*it)->isOpen() ) { Ticket *ticket = requestSaveTicket( *it ); qDebug("StdAddressBook::save '%s'", (*it)->resourceName().latin1() ); if ( !ticket ) { qDebug( i18n( "Unable to save to resource '%1'. It is locked." ) .arg( (*it)->resourceName() ) ); return false; } //if ( !save( ticket ) ) if ( ticket->resource() ) { + QString name = ticket->resource()->resourceName(); if ( ! ticket->resource()->save( ticket ) ) ok = false; else - qDebug("StdAddressBook::saved '%s'", ticket->resource()->resourceName().latin1() ); + qDebug("StdAddressBook::resource saved '%s'", name.latin1() ); } else ok = false; } } return ok; } AddressBook::Iterator AddressBook::begin() { Iterator it = Iterator(); it.d->mIt = d->mAddressees.begin(); return it; } AddressBook::ConstIterator AddressBook::begin() const { ConstIterator it = ConstIterator(); it.d->mIt = d->mAddressees.begin(); return it; } AddressBook::Iterator AddressBook::end() { Iterator it = Iterator(); it.d->mIt = d->mAddressees.end(); return it; } AddressBook::ConstIterator AddressBook::end() const { ConstIterator it = ConstIterator(); it.d->mIt = d->mAddressees.end(); return it; } void AddressBook::clear() { d->mAddressees.clear(); } Ticket *AddressBook::requestSaveTicket( Resource *resource ) { kdDebug(5700) << "AddressBook::requestSaveTicket()" << endl; if ( !resource ) { qDebug("AddressBook::requestSaveTicket no resource" ); resource = standardResource(); } KRES::Manager<Resource>::ActiveIterator it; for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) { if ( (*it) == resource ) { if ( (*it)->readOnly() || !(*it)->isOpen() ) return 0; else return (*it)->requestSaveTicket(); } } return 0; } |