-rw-r--r-- | kaddressbook/xxport/qtopia/qtopia_xxport.cpp | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/kaddressbook/xxport/qtopia/qtopia_xxport.cpp b/kaddressbook/xxport/qtopia/qtopia_xxport.cpp index bf39fdb..c1ed03e 100644 --- a/kaddressbook/xxport/qtopia/qtopia_xxport.cpp +++ b/kaddressbook/xxport/qtopia/qtopia_xxport.cpp @@ -67,135 +67,134 @@ class QtopiaXXPortFactory : public XXPortFactory } }; extern "C" { void *init_microkaddrbk_qtopia_xxport() { return ( new QtopiaXXPortFactory() ); } } QtopiaXXPort::QtopiaXXPort( KABC::AddressBook *ab, QWidget *parent, const char *name ) : XXPortObject( ab, parent, name ) { createImportAction( i18n( "Import Qtopia..." ) ); createExportAction( i18n( "Export Qtopia..." ) ); } bool QtopiaXXPort::exportContacts( const KABC::AddresseeList &list, const QString &data ) { // we can not choose the filename. Therefore use the default to display QString fileName = QDir::homeDirPath() + "/Applications/addressbook/addressbook.xml"; - + AddressBookAccess* access = new AddressBookAccess(); - + if ( !access ) { QString text( i18n( "Unable to access file '%1'." ).arg( fileName ) ); qDebug(text.latin1()); KMessageBox::error( parentWidget(), text ); addressBook()->error( text ); return false; } KABC::QtopiaConverter mConverter; - + bool res = mConverter.init(); if (!res) { QString text( i18n( "Unable to initialize qtopia converter.<br>Most likely a problem with the category file." ) ); qDebug(text); KMessageBox::error( parentWidget(), text ); delete access; - return false; + return false; } - + //Now check if the file has already entries, and ask the user if he wants to delete them first. - { //create a new scope + { //create a new scope AddressBookIterator it(*access); const PimContact* firstcontact = it.toFirst(); if (firstcontact) { QString text( i18n( "Do you want to remove<br>all existing entries from<br>%1<br>before exporting.?" ) ); if ( KMessageBox::questionYesNo( parentWidget(), text.arg( fileName ) ) == KMessageBox::Yes ) { // Clean the database.. AddressBookIterator it2(*access); for (it2.toFirst(); it2.current(); ++it2) { access->removeContact(*it2.current()); } } } } - + KABC::Addressee::List::ConstIterator it; for ( it = list.begin(); it != list.end(); ++it ) { PimContact c; - KABC::Addressee addressee = (*it); - + res = mConverter.addresseeToQtopia( *it, c ); if (res == true) { access->addContact(c); } } - + delete access; - + return true; } KABC::AddresseeList QtopiaXXPort::importContacts( const QString& ) const { KABC::AddresseeList adrlst; - + QString fileName = QDir::homeDirPath() + "/Applications/addressbook/addressbook.xml"; AddressBookAccess* access = new AddressBookAccess(); - + if ( !access ) { QString text( i18n( "Unable to access file '%1'." ).arg( fileName ) ); qDebug(text.latin1()); addressBook()->error( text ); KMessageBox::error( parentWidget(), text ); return KABC::AddresseeList(); } - + KABC::QtopiaConverter mConverter; bool res = mConverter.init(); if (!res) { QString text( i18n( "Unable to initialize qtopia converter.<br>Most likely a problem with the category file." ) ); qDebug(text); KMessageBox::error( parentWidget(), text ); delete access; return KABC::AddresseeList(); } - - - - { //create a new scope + + + + { //create a new scope AddressBookIterator it(*access); for (it.toFirst(); it.current(); ++it) { const PimContact*contact = it.current(); - + KABC::Addressee addressee; - - res = mConverter.qtopiaToAddressee( (*contact), addressee ); - + + res = mConverter.qtopiaToAddressee( (*contact), addressee ); + if ( !addressee.isEmpty() && res ) { adrlst.append( addressee ); } } } - + delete access; //US the deletion of the access object deletes the backend object as well. - + return adrlst; - + } |