-rw-r--r-- | kabc/plugins/opie/resourceopie.cpp | 39 | ||||
-rw-r--r-- | kabc/plugins/opie/resourceopie.h | 10 | ||||
-rw-r--r-- | kabc/plugins/qtopia/resourceqtopia.cpp | 49 | ||||
-rw-r--r-- | kabc/plugins/qtopia/resourceqtopia.h | 10 | ||||
-rw-r--r-- | kabc/plugins/sharpdtm/resourcesharpdtm.cpp | 30 | ||||
-rw-r--r-- | kabc/plugins/sharpdtm/resourcesharpdtm.h | 10 | ||||
-rw-r--r-- | kabc/resource.cpp | 15 | ||||
-rw-r--r-- | kabc/resource.h | 11 | ||||
-rw-r--r-- | kabc/tmpaddressbook.cpp | 14 | ||||
-rw-r--r-- | kaddressbook/xxport/opie_xxport.cpp | 116 | ||||
-rw-r--r-- | kaddressbook/xxport/opie_xxport.h | 4 | ||||
-rw-r--r-- | kaddressbook/xxport/qtopia_xxport.cpp | 221 | ||||
-rw-r--r-- | kaddressbook/xxport/sharpdtm_xxport.cpp | 224 | ||||
-rw-r--r-- | kaddressbook/xxport/sharpdtm_xxport.h | 2 | ||||
-rw-r--r-- | kaddressbook/xxportobject.cpp | 106 | ||||
-rw-r--r-- | kaddressbook/xxportobject.h | 9 |
16 files changed, 161 insertions, 709 deletions
diff --git a/kabc/plugins/opie/resourceopie.cpp b/kabc/plugins/opie/resourceopie.cpp index 5559827..9dfd473 100644 --- a/kabc/plugins/opie/resourceopie.cpp +++ b/kabc/plugins/opie/resourceopie.cpp @@ -89,2 +89,3 @@ void ResourceOpie::init( const QString &fileName ) { + qDebug("ResourceOpie::init()"); @@ -256,3 +257,7 @@ bool ResourceOpie::lock( const QString &lockfileName ) - if (QFile::exists( lockName )) return false; + if (QFile::exists( lockName )) + { + qDebug("ResourceOpie::lock: lockfile %s already exists. (Delete it before continuing if nobody else is accessing the resourcefile %s)", lockName.latin1(), fileName().latin1()); + return false; + } @@ -342,34 +347,2 @@ void ResourceOpie::cleanUp() -/** - * This method returns the number of elements that are currently in the resource. - */ -int ResourceOpie::count() const -{ - qDebug("ResourceOpie::count: %x", mAccess); - - if (mAccess != 0) - { - OContactAccess::List contactList = mAccess->allRecords(); - return contactList.count(); - } - else - return 0; -} - - -/** - * This method removes all elements from the resource!! (Not from the addressbook) - */ -bool ResourceOpie::clear() -{ - if (mAccess != 0) { - mAccess->clear(); - return true; - } - else - return false; -} - - - //US #include "resourceopie.moc" diff --git a/kabc/plugins/opie/resourceopie.h b/kabc/plugins/opie/resourceopie.h index ca30fee..d5b4ebd 100644 --- a/kabc/plugins/opie/resourceopie.h +++ b/kabc/plugins/opie/resourceopie.h @@ -124,12 +124,2 @@ public: - /** - * This method returns the number of elements that are currently in the resource. - */ - virtual int count() const; - - /** - * This method removes all elements from the resource!! (Not from the addressbook) - */ - virtual bool clear(); - diff --git a/kabc/plugins/qtopia/resourceqtopia.cpp b/kabc/plugins/qtopia/resourceqtopia.cpp index 4a35f19..242e0c6 100644 --- a/kabc/plugins/qtopia/resourceqtopia.cpp +++ b/kabc/plugins/qtopia/resourceqtopia.cpp @@ -235,3 +235,7 @@ bool ResourceQtopia::lock( const QString &lockfileName ) - if (QFile::exists( lockName )) return false; + if (QFile::exists( lockName )) + { + qDebug("ResourceOpie::lock: lockfile %s already exists. (Delete it before continuing if nobody else is accessing the resourcefile %s)", lockName.latin1(), fileName()); + return false; + } @@ -314,45 +318,2 @@ void ResourceQtopia::cleanUp() - - -/** - * This method returns the number of elements that are currently in the resource. - */ -int ResourceQtopia::count() const -{ - if (mAccess != 0) - { - int counter = 0; - AddressBookIterator it2(*mAccess); - for (it2.toFirst(); it2.current(); ++it2) { - counter++; - } - - return counter; - } - else - return 0; -} - - -/** - * This method removes all elements from the resource!! (Not from the addressbook) - */ -bool ResourceQtopia::clear() -{ - if (mAccess != 0) - { - AddressBookIterator it2(*mAccess); - for (it2.toFirst(); it2.current(); ++it2) { - mAccess->removeContact(*it2.current()); - } - return true; - } - else - return false; -} - - - - - //US #include "resourceqtopia.moc" diff --git a/kabc/plugins/qtopia/resourceqtopia.h b/kabc/plugins/qtopia/resourceqtopia.h index 90ab1f4..eace280 100644 --- a/kabc/plugins/qtopia/resourceqtopia.h +++ b/kabc/plugins/qtopia/resourceqtopia.h @@ -124,12 +124,2 @@ public: - /** - * This method returns the number of elements that are currently in the resource. - */ - virtual int count() const; - - /** - * This method removes all elements from the resource!! (Not from the addressbook) - */ - virtual bool clear(); - protected slots: diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp index 14f272d..70c3718 100644 --- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp +++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp @@ -251,3 +251,8 @@ bool ResourceSharpDTM::lock( const QString &lockfileName ) - if (QFile::exists( lockName )) return false; + if (QFile::exists( lockName )) + { + qDebug("ResourceSharpDTM::lock: lockfile %s already exists. (Delete it before continuing if nobody else is accessing the resourcefile %s)", lockName.latin1(), fileName()); + return false; + } + @@ -330,25 +335,2 @@ void ResourceSharpDTM::cleanUp() -/** - * This method returns the number of elements that are currently in the resource. - */ -int ResourceSharpDTM::count() const -{ - if (mAccess != 0) - return mAccess->count(); - else - return 0; -} - - -/** - * This method removes all elements from the resource!! (Not from the addressbook) - */ -bool ResourceSharpDTM::clear() -{ - if (mAccess != 0) - return mAccess->deleteCard(0, SlZDataBase::AllCard ); - else - return false; -} - diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.h b/kabc/plugins/sharpdtm/resourcesharpdtm.h index 60d38a1..f386e69 100644 --- a/kabc/plugins/sharpdtm/resourcesharpdtm.h +++ b/kabc/plugins/sharpdtm/resourcesharpdtm.h @@ -124,12 +124,2 @@ public: - /** - * This method returns the number of elements that are currently in the resource. - */ - virtual int count() const; - - /** - * This method removes all elements from the resource!! (Not from the addressbook) - */ - virtual bool clear(); - diff --git a/kabc/resource.cpp b/kabc/resource.cpp index 9632a3f..2f03927 100644 --- a/kabc/resource.cpp +++ b/kabc/resource.cpp @@ -115,17 +115,2 @@ bool Resource::isSyncable() const -/** - * This method returns the number of elements that are currently in the resource. - */ -int Resource::count() const -{ - return 0; -} - -/** - * This method removes all elements from the resource!! (Not from the addressbook) - */ -bool Resource::clear() -{ - return false; -} diff --git a/kabc/resource.h b/kabc/resource.h index db806a6..7d42f81 100644 --- a/kabc/resource.h +++ b/kabc/resource.h @@ -131,13 +131,2 @@ public: - - /** - * This method returns the number of elements that are currently in the resource. - */ - virtual int count() const; - - /** - * This method removes all elements from the resource!! (Not from the addressbook) - */ - virtual bool clear(); - /** diff --git a/kabc/tmpaddressbook.cpp b/kabc/tmpaddressbook.cpp index e6699df..ca47ca4 100644 --- a/kabc/tmpaddressbook.cpp +++ b/kabc/tmpaddressbook.cpp @@ -26,2 +26,3 @@ $Id$ */ +#include <qptrlist.h> @@ -31,2 +32,4 @@ using namespace KABC; +#include "resource.h" + TmpAddressBook::TmpAddressBook() @@ -37,3 +40,3 @@ TmpAddressBook::TmpAddressBook() TmpAddressBook::TmpAddressBook( const QString &config ) - : AddressBook( config, "tmpcontact" ) + : AddressBook( config, "tmpcontract" ) { @@ -43,2 +46,11 @@ TmpAddressBook::~TmpAddressBook() { + //remove all possible resources. This should cleanup the configfile. + QPtrList<KABC::Resource> mResources = resources(); + + QPtrListIterator<KABC::Resource> it(mResources); + for ( ; it.current(); ++it ) { + KABC::Resource *res = it.current(); + removeResource(res); } +} + 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 @@ -33,31 +33,5 @@ $Id$ #include <kfiledialog.h> -#include <kmessagebox.h> - -//US #include <opie/ocontactaccess.h> -//US #include <opie/ocontactaccessbackend_xml.h> - -//US #include "stdaddressbook.h" -#include "resource.h" -#include "tmpaddressbook.h" - -/*US -#include <qfile.h> -#include <qtextstream.h> - -#include <kabc/vcardconverter.h> -#ifndef KAB_EMBEDDED -#include <kio/netaccess.h> -#endif //KAB_EMBEDDED - -#include <klocale.h> -#include <kmessagebox.h> -#include <ktempfile.h> -#include <kurl.h> -*/ - -#include <factory.h> - +#include "addressee.h" #include "xxportmanager.h" - #include "opie_xxport.h" @@ -90,9 +64,3 @@ OpieXXPort::OpieXXPort( KABC::AddressBook *ab, QWidget *parent, const char *name - KRES::Factory* mFactory = KRES::Factory::self( "contact" ); - - if ( mFactory ) - { - mResource = (KABC::Resource*)(mFactory->resource( "opie", 0, false )); - - if ( mResource ) + if ( mFactory && !mFactory->typeName( "opie" ).isEmpty() ) { @@ -102,9 +70,5 @@ OpieXXPort::OpieXXPort( KABC::AddressBook *ab, QWidget *parent, const char *name } -} -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() ); @@ -114,62 +78,8 @@ bool OpieXXPort::exportContacts( const KABC::AddresseeList &list, const QString - 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()); + return _exportContacts( list, identifier, fileName ); } - if (it2 != tmpAB.end()) - { - 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.. - tmpAB.clear(); - } - } - qDebug("22222"); - -//US debug - QPtrList<KABC::Resource> kabcResources = tmpAB.resources(); - QPtrListIterator<KABC::Resource> 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; -} - - -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() ); @@ -179,17 +89,3 @@ KABC::AddresseeList OpieXXPort::importContacts( const QString& ) const - 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 @@ -48,4 +48,4 @@ class OpieXXPort : public XXPortResourceObject 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; 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 @@ -32,27 +32,4 @@ $Id$ -#include <kfiledialog.h> -#include <kmessagebox.h> - -//US #include <qpe/pim/addressbookaccess.h> - -#include "addressbook.h" - -/*US -#include <qfile.h> -#include <qtextstream.h> - -#include <kabc/vcardconverter.h> -#ifndef KAB_EMBEDDED -#include <kio/netaccess.h> -#endif //KAB_EMBEDDED - -#include <klocale.h> -#include <kmessagebox.h> -#include <ktempfile.h> -#include <kurl.h> -*/ - +#include "addressee.h" #include "xxportmanager.h" -//US #include "qtopiaconverter.h" - #include "qtopia_xxport.h" @@ -85,9 +62,3 @@ QtopiaXXPort::QtopiaXXPort( KABC::AddressBook *ab, QWidget *parent, const char * - KRES::Factory* mFactory = KRES::Factory::self( "contact" ); - - if ( mFactory ) - { - mResource = (KABC::Resource*)(mFactory->resource( "qtopia", 0, false )); - - if ( mResource ) + if ( mFactory && !mFactory->typeName( "qtopia" ).isEmpty() ) { @@ -97,191 +68,11 @@ QtopiaXXPort::QtopiaXXPort( KABC::AddressBook *ab, QWidget *parent, const char * } -} - -bool QtopiaXXPort::exportContacts( const KABC::AddresseeList &list, const QString &data ) -{ -/*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.<br>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<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; - - 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<br>all existing entries from<br>%1<br>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<KABC::Resource> kabcResources = tmpAB.resources(); - QPtrListIterator<KABC::Resource> 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 ); - - -} - -KABC::AddresseeList QtopiaXXPort::importContacts( const QString& ) const +bool QtopiaXXPort::exportContacts( const KABC::AddresseeList &list, const QString &identifier ) { -/*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(); + return _exportContacts( list, identifier, defaultFileName ); } - KABC::QtopiaConverter mConverter; - - bool res = mConverter.init(); - if (!res) +KABC::AddresseeList QtopiaXXPort::importContacts( const QString &identifier ) const { - 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 - 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<KABC::Resource> kabcResources = tmpAB.resources(); - QPtrListIterator<KABC::Resource> 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 @@ -30,28 +30,4 @@ $Id$ -#include <qdir.h> - -#include <kfiledialog.h> -#include <kmessagebox.h> - -//US #include <sl/slzdb.h> - -#include "addressbook.h" - -/*US -#include <qfile.h> -#include <qtextstream.h> - -#include <kabc/vcardconverter.h> -#ifndef KAB_EMBEDDED -#include <kio/netaccess.h> -#endif //KAB_EMBEDDED - -#include <klocale.h> -#include <kmessagebox.h> -#include <ktempfile.h> -#include <kurl.h> -*/ - +#include "addressee.h" #include "xxportmanager.h" - #include "sharpdtm_xxport.h" @@ -80,8 +56,3 @@ SharpDTMXXPort::SharpDTMXXPort( KABC::AddressBook *ab, QWidget *parent, const ch { - KRES::Factory* mFactory = KRES::Factory::self( "contact" ); - - if ( mFactory ) - { - mResource = (KABC::Resource*)(mFactory->resource( "sharpdtm", 0, false )); - if ( mResource ) + if ( mFactory && !mFactory->typeName( "sharpdtm" ).isEmpty() ) { @@ -91,194 +62,11 @@ SharpDTMXXPort::SharpDTMXXPort( KABC::AddressBook *ab, QWidget *parent, const ch } -} - -bool SharpDTMXXPort::exportContacts( const KABC::AddresseeList &list, const QString &data ) -{ -/*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.<br>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<br>all existing entries from<br>%1<br>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<br>all existing entries from<br>%1<br>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<KABC::Resource> kabcResources = tmpAB.resources(); - QPtrListIterator<KABC::Resource> 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 ); - - -} - -KABC::AddresseeList SharpDTMXXPort::importContacts( const QString& ) 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) +bool SharpDTMXXPort::exportContacts( const KABC::AddresseeList &list, const QString &identifier ) { - QString text( i18n( "Unable to initialize sharp converter.<br>Most likely a problem with the category file." ) ); - qDebug(text); - KMessageBox::error( parentWidget(), text ); - delete access; - return KABC::AddresseeList(); + return _exportContacts( list, identifier, QString::null ); } - - { //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 ) +KABC::AddresseeList SharpDTMXXPort::importContacts( const QString &identifier ) const { - 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<KABC::Resource> kabcResources = tmpAB.resources(); - QPtrListIterator<KABC::Resource> 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 @@ -42,3 +42,3 @@ class SharpDTMXXPort : public XXPortResourceObject - QString identifier() const { return "qtopia"; } + QString identifier() const { return "sharpdtm"; } diff --git a/kaddressbook/xxportobject.cpp b/kaddressbook/xxportobject.cpp index bb985a6..4351753 100644 --- a/kaddressbook/xxportobject.cpp +++ b/kaddressbook/xxportobject.cpp @@ -35,7 +35,10 @@ $Id$ #include <kmessagebox.h> +#include <factory.h> #include "kabcore.h" - +#include "addressee.h" +#include "tmpaddressbook.h" #include "xxportobject.h" + class XXPortObject::XXPortObjectPrivate @@ -156,4 +159,5 @@ XXPortResourceObject::XXPortResourceObject( KABC::AddressBook *ab, QWidget *pare const char *name ) - : XXPortObject( ab, parent, name ), mResource(0) + : XXPortObject( ab, parent, name ), mFactory(0) { + mFactory = KRES::Factory::self( "tmpcontact" ); } @@ -162,2 +166,3 @@ XXPortResourceObject::~XXPortResourceObject() { + //do not delete the factory. It is a singleton, and selfcontained } @@ -166,5 +171,100 @@ bool XXPortResourceObject::isAvailable() { - return (mResource != 0); + return (mFactory != 0); +} + + +bool XXPortResourceObject::_exportContacts( const KABC::AddresseeList &list, const QString& identifier, const QString& fileName ) +{ + //create new resource + KABC::Resource* mResource = (KABC::Resource*)(mFactory->resource( this->identifier(), 0, false )); + + if (mResource == 0) + return false; + + if (fileName != QString::null) + mResource->setFileName( fileName ); + + + KABC::TmpAddressBook tmpAB; + + bool res = tmpAB.addResource( mResource ); + if (res == false) + { + delete mResource; + return false; + } + + res = tmpAB.load(); + if (res == false) + { + //removeResource deletes also the resource object, if the linkcount is 0 + tmpAB.removeResource( mResource ); + return false; + } + + + //Now check if the file has already entries, and ask the user if he wants to delete them first. + if (tmpAB.begin() != tmpAB.end()) + { + 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.. + tmpAB.clear(); + } + } + + + KABC::Addressee::List::ConstIterator it; + for ( it = list.begin(); it != list.end(); ++it ) { + tmpAB.insertAddressee(*it); + } + + KABC::Ticket * ticket = tmpAB.requestSaveTicket(mResource); + + res = false; + if (ticket != 0) + res = tmpAB.save( ticket ); + + //removeResource deletes also the resource object, if the linkcount is 0 + tmpAB.removeResource( mResource ); + + return res; +} + + +KABC::AddresseeList XXPortResourceObject::_importContacts( const QString& identifier, const QString& fileName ) const +{ + + + KABC::Resource* mResource = (KABC::Resource*)(mFactory->resource( this->identifier(), 0, false )); + + if (mResource == 0) + return KABC::AddresseeList(); + + KABC::AddresseeList adrlst; + + if (fileName != QString::null) + mResource->setFileName( fileName ); + + + KABC::TmpAddressBook tmpAB; + + bool res = tmpAB.addResource( mResource ); + if (res == false) + { + delete mResource; + return KABC::AddresseeList(); } + res = tmpAB.load(); + + adrlst = tmpAB.allAddressees(); + + //remove resource deletes also the Resourceobject, if the linkcount is 0 + tmpAB.removeResource( mResource ); + + return adrlst; +} + + diff --git a/kaddressbook/xxportobject.h b/kaddressbook/xxportobject.h index d547855..de39b9f 100644 --- a/kaddressbook/xxportobject.h +++ b/kaddressbook/xxportobject.h @@ -42,3 +42,3 @@ $Id$ - +class KRES::Factory; @@ -148,4 +148,9 @@ class XXPortResourceObject : public XXPortObject virtual bool isAvailable(); + + protected: + bool _exportContacts( const KABC::AddresseeList &list, const QString& identifier, const QString& fileName ); + KABC::AddresseeList _importContacts( const QString& identifier, const QString& fileName ) const; + protected: - KABC::Resource* mResource; + KRES::Factory* mFactory; }; |