From be52d7d03e57620919b23cb0cbb33ac22d0920e0 Mon Sep 17 00:00:00 2001 From: ulf69 Date: Tue, 03 Aug 2004 20:49:15 +0000 Subject: hopefully last modifications of resource based export/import functionality for opie, qtopia and sharpdtm --- (limited to 'kaddressbook/xxport') diff --git a/kaddressbook/xxport/opie_xxport.cpp b/kaddressbook/xxport/opie_xxport.cpp index 192b803..7b29b0a 100644 --- a/kaddressbook/xxport/opie_xxport.cpp +++ b/kaddressbook/xxport/opie_xxport.cpp @@ -31,35 +31,9 @@ $Id$ #include #include -#include - -//US #include -//US #include - -//US #include "stdaddressbook.h" -#include "resource.h" -#include "tmpaddressbook.h" - -/*US -#include -#include - -#include -#ifndef KAB_EMBEDDED -#include -#endif //KAB_EMBEDDED - -#include -#include -#include -#include -*/ - -#include - +#include "addressee.h" #include "xxportmanager.h" - #include "opie_xxport.h" /*US @@ -88,108 +62,30 @@ OpieXXPort::OpieXXPort( KABC::AddressBook *ab, QWidget *parent, const char *name { defaultFileName = QDir::homeDirPath() + "/Applications/addressbook/addressbook.xml"; - KRES::Factory* mFactory = KRES::Factory::self( "contact" ); - - if ( mFactory ) + if ( mFactory && !mFactory->typeName( "opie" ).isEmpty() ) { - mResource = (KABC::Resource*)(mFactory->resource( "opie", 0, false )); - - if ( mResource ) - { - createImportAction( i18n( "Import Opie..." ) ); - createExportAction( i18n( "Export Opie..." ) ); - } + createImportAction( i18n( "Import Opie..." ) ); + createExportAction( i18n( "Export Opie..." ) ); } } -bool OpieXXPort::exportContacts( const KABC::AddresseeList &list, const QString &data ) +bool OpieXXPort::exportContacts( const KABC::AddresseeList &list, const QString &identifier ) { - if (mResource == 0) - return false; - QString fileName = KFileDialog::getSaveFileName( defaultFileName, i18n("Save file"), parentWidget() ); if ( fileName.isEmpty() ) return false; - mResource->setFileName( fileName ); - - - KABC::TmpAddressBook tmpAB; - - tmpAB.addResource( mResource ); - - qDebug("11111"); - - //Now check if the file has already entries, and ask the user if he wants to delete them first. - KABC::AddressBook::Iterator it2 = tmpAB.begin(); - for ( it2 = tmpAB.begin(); it2 != tmpAB.end(); ++it2 ) { - KABC::Addressee addressee = (*it2); - qDebug("found %s", addressee.formattedName().latin1()); - } - - if (it2 != tmpAB.end()) - { - QString text( i18n( "Do you want to remove
all existing entries from
%1
before exporting.?" ) ); - if ( KMessageBox::questionYesNo( parentWidget(), text.arg( fileName ) ) == KMessageBox::Yes ) { - // Clean the database.. - tmpAB.clear(); - } - } - qDebug("22222"); - -//US debug - QPtrList kabcResources = tmpAB.resources(); - QPtrListIterator resIt( kabcResources ); - KABC::Resource *resource; - while ( ( resource = resIt.current() ) != 0 ) { - ++resIt; - qDebug("tmpAB has resource: %s", resource->identifier().latin1()); - } - - - KABC::Addressee::List::ConstIterator it; - for ( it = list.begin(); it != list.end(); ++it ) { - tmpAB.insertAddressee(*it); - } - - bool res = false; - KABC::Ticket * ticket = tmpAB.requestSaveTicket(mResource); - - if (ticket != 0) - res = tmpAB.save( ticket ); - - tmpAB.removeResource( mResource ); - - return res; + return _exportContacts( list, identifier, fileName ); } -KABC::AddresseeList OpieXXPort::importContacts( const QString& ) const +KABC::AddresseeList OpieXXPort::importContacts( const QString &identifier ) const { - if (mResource == 0) - return KABC::AddresseeList(); - - KABC::AddresseeList adrlst; - QString fileName = KFileDialog::getOpenFileName( defaultFileName, i18n("Load file"), parentWidget() ); if ( fileName.isEmpty() ) return KABC::AddresseeList(); - mResource->setFileName( fileName ); - - - KABC::TmpAddressBook tmpAB; - - tmpAB.addResource( mResource ); - - bool res = tmpAB.load(); - - adrlst = tmpAB.allAddressees(); - - tmpAB.removeResource( mResource ); - - return adrlst; - + return _importContacts( identifier, fileName ); } diff --git a/kaddressbook/xxport/opie_xxport.h b/kaddressbook/xxport/opie_xxport.h index 106f38b..d2b55cd 100644 --- a/kaddressbook/xxport/opie_xxport.h +++ b/kaddressbook/xxport/opie_xxport.h @@ -46,8 +46,8 @@ class OpieXXPort : public XXPortResourceObject QString identifier() const { return "opie"; } public slots: - bool exportContacts( const KABC::AddresseeList &list, const QString &data ); - KABC::AddresseeList importContacts( const QString &data ) const; + bool exportContacts( const KABC::AddresseeList &list, const QString &identifier ); + KABC::AddresseeList importContacts( const QString &identifier ) const; private: QString defaultFileName; diff --git a/kaddressbook/xxport/qtopia_xxport.cpp b/kaddressbook/xxport/qtopia_xxport.cpp index 8377cd5..0cf6546 100644 --- a/kaddressbook/xxport/qtopia_xxport.cpp +++ b/kaddressbook/xxport/qtopia_xxport.cpp @@ -30,31 +30,8 @@ $Id$ #include -#include -#include - -//US #include - -#include "addressbook.h" - -/*US -#include -#include - -#include -#ifndef KAB_EMBEDDED -#include -#endif //KAB_EMBEDDED - -#include -#include -#include -#include -*/ - +#include "addressee.h" #include "xxportmanager.h" -//US #include "qtopiaconverter.h" - #include "qtopia_xxport.h" /*US @@ -83,205 +60,19 @@ QtopiaXXPort::QtopiaXXPort( KABC::AddressBook *ab, QWidget *parent, const char * { defaultFileName = QDir::homeDirPath() + "/Applications/addressbook/addressbook.xml"; - KRES::Factory* mFactory = KRES::Factory::self( "contact" ); - - if ( mFactory ) + if ( mFactory && !mFactory->typeName( "qtopia" ).isEmpty() ) { - mResource = (KABC::Resource*)(mFactory->resource( "qtopia", 0, false )); - - if ( mResource ) - { - createImportAction( i18n( "Import Qtopia..." ) ); - createExportAction( i18n( "Export Qtopia..." ) ); - } + createImportAction( i18n( "Import Qtopia..." ) ); + createExportAction( i18n( "Export Qtopia..." ) ); } } -bool QtopiaXXPort::exportContacts( const KABC::AddresseeList &list, const QString &data ) +bool QtopiaXXPort::exportContacts( const KABC::AddresseeList &list, const QString &identifier ) { -/*US - // 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.
Most likely a problem with the category file." ) ); - qDebug(text); - KMessageBox::error( parentWidget(), text ); - delete access; - 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 - AddressBookIterator it(*access); - const PimContact* firstcontact = it.toFirst(); - if (firstcontact) - { - QString text( i18n( "Do you want to remove
all existing entries from
%1
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; - - res = mConverter.addresseeToQtopia( *it, c ); - if (res == true) - { - access->addContact(c); - } - } - - delete access; - - return true; -*/ - - if (mResource == 0) - return false; - - QString fileName = defaultFileName; - - - mResource->setFileName( fileName ); - - //Now check if the file has already entries, and ask the user if he wants to delete them first. - if (mResource->count() > 0) - { - QString text( i18n( "Do you want to remove
all existing entries from
%1
before exporting.?" ) ); - if ( KMessageBox::questionYesNo( parentWidget(), text.arg( fileName ) ) == KMessageBox::Yes ) { - // Clean the database. - mResource->clear(); - } - } - - KABC::AddressBook tmpAB; - - tmpAB.addResource( mResource ); - -//US debug - QPtrList kabcResources = tmpAB.resources(); - QPtrListIterator resIt( kabcResources ); - KABC::Resource *resource; - while ( ( resource = resIt.current() ) != 0 ) { - ++resIt; - qDebug("tmpAB has resource: %s", resource->identifier().latin1()); - } - - - KABC::Addressee::List::ConstIterator it; - for ( it = list.begin(); it != list.end(); ++it ) { - tmpAB.insertAddressee(*it); - } - - KABC::Ticket * ticket = mResource->requestSaveTicket(); - return tmpAB.save( ticket ); - - - + return _exportContacts( list, identifier, defaultFileName ); } -KABC::AddresseeList QtopiaXXPort::importContacts( const QString& ) const +KABC::AddresseeList QtopiaXXPort::importContacts( const QString &identifier ) const { -/*US - 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.
Most likely a problem with the category file." ) ); - qDebug(text); - KMessageBox::error( parentWidget(), text ); - delete access; - return KABC::AddresseeList(); - } - - - - { //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 ); - - if ( !addressee.isEmpty() && res ) - { - adrlst.append( addressee ); - } - } - } - - delete access; -//US the deletion of the access object deletes the backend object as well. - - return adrlst; -*/ - - if (mResource == 0) - return KABC::AddresseeList(); - - KABC::AddresseeList adrlst; - - QString fileName = defaultFileName; - - mResource->setFileName( fileName ); - - - KABC::AddressBook tmpAB; - - tmpAB.addResource( mResource ); - -//US debug - QPtrList kabcResources = tmpAB.resources(); - QPtrListIterator resIt( kabcResources ); - KABC::Resource *resource; - while ( ( resource = resIt.current() ) != 0 ) { - ++resIt; - qDebug("tmpAB has resource: %s", resource->identifier().latin1()); - } - - bool res = tmpAB.load(); - - return tmpAB.allAddressees(); - + return _importContacts( identifier, defaultFileName ); } diff --git a/kaddressbook/xxport/sharpdtm_xxport.cpp b/kaddressbook/xxport/sharpdtm_xxport.cpp index 8c2e07a..130bc00 100644 --- a/kaddressbook/xxport/sharpdtm_xxport.cpp +++ b/kaddressbook/xxport/sharpdtm_xxport.cpp @@ -28,32 +28,8 @@ Copyright (c) 2004 Ulf Schenk $Id$ */ -#include - -#include -#include - -//US #include - -#include "addressbook.h" - -/*US -#include -#include - -#include -#ifndef KAB_EMBEDDED -#include -#endif //KAB_EMBEDDED - -#include -#include -#include -#include -*/ - +#include "addressee.h" #include "xxportmanager.h" - #include "sharpdtm_xxport.h" /*US @@ -78,207 +54,19 @@ extern "C" SharpDTMXXPort::SharpDTMXXPort( KABC::AddressBook *ab, QWidget *parent, const char *name ) : XXPortResourceObject( ab, parent, name ) { - KRES::Factory* mFactory = KRES::Factory::self( "contact" ); - - if ( mFactory ) + if ( mFactory && !mFactory->typeName( "sharpdtm" ).isEmpty() ) { - mResource = (KABC::Resource*)(mFactory->resource( "sharpdtm", 0, false )); - if ( mResource ) - { - createImportAction( i18n( "Import Sharp..." ) ); - createExportAction( i18n( "Export Sharp..." ) ); - } + createImportAction( i18n( "Import Sharp..." ) ); + createExportAction( i18n( "Export Sharp..." ) ); } } -bool SharpDTMXXPort::exportContacts( const KABC::AddresseeList &list, const QString &data ) +bool SharpDTMXXPort::exportContacts( const KABC::AddresseeList &list, const QString &identifier ) { -/*US - // we can not choose the filename. Therefore use the default to display - QString fileName = SlZDataBase::addressbookFileName(); - - SlZDataBase* access = new SlZDataBase(fileName, - SlZDataBase::addressbookItems()); - - 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::SharpDTMConverter mConverter; - - bool res = mConverter.init(); - if (!res) - { - QString text( i18n( "Unable to initialize sharpdtm converter.
Most likely a problem with the category file." ) ); - qDebug(text); - KMessageBox::error( parentWidget(), text ); - delete access; - return false; - } - - //Now check if the file has already entries, and ask the user if he wants to delete them first. - if (access->count() > 0) - { - QString text( i18n( "Do you want to remove
all existing entries from
%1
before exporting.?" ) ); - if ( KMessageBox::questionYesNo( parentWidget(), text.arg( fileName ) ) == KMessageBox::Yes ) { - // Clean the database.. - access->deleteCard(0, SlZDataBase::AllCard ); - } - } - - KABC::Addressee::List::ConstIterator it; - for ( it = list.begin(); it != list.end(); ++it ) { - CardId c; - res = access->editNewCard(); - - if (res == true) - { - res = mConverter.addresseeToSharp( *it, access, c ); - - if (res == true) - access->finishEditCard(&c); - else - access->cancelEditCard(); - } - } - - delete access; - - return true; -*/ - - if (mResource == 0) - return false; - - // we can not choose the filename. Therefore use the default to display - QString fileName = mResource->fileName(); - - if ( fileName.isEmpty() ) - return false; - - //Now check if the file has already entries, and ask the user if he wants to delete them first. - if (mResource->count() > 0) - { - QString text( i18n( "Do you want to remove
all existing entries from
%1
before exporting.?" ) ); - if ( KMessageBox::questionYesNo( parentWidget(), text.arg( fileName ) ) == KMessageBox::Yes ) { - // Clean the database.. - mResource->clear(); - } - } - - KABC::AddressBook tmpAB; - - tmpAB.addResource( mResource ); - -//US debug - QPtrList kabcResources = tmpAB.resources(); - QPtrListIterator resIt( kabcResources ); - KABC::Resource *resource; - while ( ( resource = resIt.current() ) != 0 ) { - ++resIt; - qDebug("tmpAB has resource: %s", resource->identifier().latin1()); - } - - - KABC::Addressee::List::ConstIterator it; - for ( it = list.begin(); it != list.end(); ++it ) { - tmpAB.insertAddressee(*it); - } - - KABC::Ticket * ticket = mResource->requestSaveTicket(); - return tmpAB.save( ticket ); - - + return _exportContacts( list, identifier, QString::null ); } -KABC::AddresseeList SharpDTMXXPort::importContacts( const QString& ) const +KABC::AddresseeList SharpDTMXXPort::importContacts( const QString &identifier ) const { -/*US - KABC::AddresseeList adrlst; - - QString fileName = SlZDataBase::addressbookFileName(); - - // the last parameter in the SlZDataBase constructor means "readonly" - SlZDataBase* access = new SlZDataBase(fileName, - SlZDataBase::addressbookItems(), NULL, true); - - - 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::SharpDTMConverter mConverter; - - bool res = mConverter.init(); - if (!res) - { - QString text( i18n( "Unable to initialize sharp converter.
Most likely a problem with the category file." ) ); - qDebug(text); - KMessageBox::error( parentWidget(), text ); - delete access; - return KABC::AddresseeList(); - } - - - { //create a new scope - CardId id; - - for (bool res=access->first(); res == true; res=access->next()) { - id = access->cardId(); - - KABC::Addressee addressee; - - res = mConverter.sharpToAddressee( id, access, addressee ); - - if ( !addressee.isEmpty() && res ) - { - adrlst.append( addressee ); - } - } - } - - delete access; - - return adrlst; -*/ - - if (mResource == 0) - return KABC::AddresseeList(); - - KABC::AddresseeList adrlst; - - QString fileName = mResource->fileName(); - - if ( fileName.isEmpty() ) - return KABC::AddresseeList(); - - mResource->setFileName( fileName ); - - - KABC::AddressBook tmpAB; - - tmpAB.addResource( mResource ); - -//US debug - QPtrList kabcResources = tmpAB.resources(); - QPtrListIterator resIt( kabcResources ); - KABC::Resource *resource; - while ( ( resource = resIt.current() ) != 0 ) { - ++resIt; - qDebug("tmpAB has resource: %s", resource->identifier().latin1()); - } - - bool res = tmpAB.load(); - - return tmpAB.allAddressees(); - - + return _importContacts( identifier, QString::null ); } diff --git a/kaddressbook/xxport/sharpdtm_xxport.h b/kaddressbook/xxport/sharpdtm_xxport.h index 43fd434..0797b01 100644 --- a/kaddressbook/xxport/sharpdtm_xxport.h +++ b/kaddressbook/xxport/sharpdtm_xxport.h @@ -40,7 +40,7 @@ class SharpDTMXXPort : public XXPortResourceObject public: SharpDTMXXPort( KABC::AddressBook *ab, QWidget *parent, const char *name = 0 ); - QString identifier() const { return "qtopia"; } + QString identifier() const { return "sharpdtm"; } public slots: bool exportContacts( const KABC::AddresseeList &list, const QString &data ); -- cgit v0.9.0.2