summaryrefslogtreecommitdiffabout
authorulf69 <ulf69>2004-08-03 20:49:15 (UTC)
committer ulf69 <ulf69>2004-08-03 20:49:15 (UTC)
commitbe52d7d03e57620919b23cb0cbb33ac22d0920e0 (patch) (side-by-side diff)
tree34e8e29a221c828424126694f865d702c7635f97
parentd5358380edce9a2c39f3eea4df741a148338880c (diff)
downloadkdepimpi-be52d7d03e57620919b23cb0cbb33ac22d0920e0.zip
kdepimpi-be52d7d03e57620919b23cb0cbb33ac22d0920e0.tar.gz
kdepimpi-be52d7d03e57620919b23cb0cbb33ac22d0920e0.tar.bz2
hopefully last modifications of resource based export/import functionality
for opie, qtopia and sharpdtm
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/plugins/opie/resourceopie.cpp39
-rw-r--r--kabc/plugins/opie/resourceopie.h10
-rw-r--r--kabc/plugins/qtopia/resourceqtopia.cpp49
-rw-r--r--kabc/plugins/qtopia/resourceqtopia.h10
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.cpp30
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.h10
-rw-r--r--kabc/resource.cpp15
-rw-r--r--kabc/resource.h11
-rw-r--r--kabc/tmpaddressbook.cpp14
-rw-r--r--kaddressbook/xxport/opie_xxport.cpp120
-rw-r--r--kaddressbook/xxport/opie_xxport.h4
-rw-r--r--kaddressbook/xxport/qtopia_xxport.cpp225
-rw-r--r--kaddressbook/xxport/sharpdtm_xxport.cpp228
-rw-r--r--kaddressbook/xxport/sharpdtm_xxport.h2
-rw-r--r--kaddressbook/xxportobject.cpp106
-rw-r--r--kaddressbook/xxportobject.h9
16 files changed, 167 insertions, 715 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,13 +64,6 @@ OpieXXPort::OpieXXPort( KABC::AddressBook *ab, QWidget *parent, const char *name
- 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..." ) );
}
@@ -104,7 +71,4 @@ 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,52 +78,3 @@ 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());
- }
-
- 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;
+ return _exportContacts( list, identifier, fileName );
}
@@ -167,9 +82,4 @@ bool OpieXXPort::exportContacts( const KABC::AddresseeList &list, const QString
-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,13 +62,6 @@ QtopiaXXPort::QtopiaXXPort( KABC::AddressBook *ab, QWidget *parent, const char *
- 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..." ) );
}
@@ -99,189 +69,10 @@ QtopiaXXPort::QtopiaXXPort( KABC::AddressBook *ab, QWidget *parent, const char *
-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.<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 );
-
-
-
+ 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.<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,12 +56,6 @@ SharpDTMXXPort::SharpDTMXXPort( KABC::AddressBook *ab, QWidget *parent, const ch
{
- 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..." ) );
}
@@ -93,192 +63,10 @@ SharpDTMXXPort::SharpDTMXXPort( KABC::AddressBook *ab, QWidget *parent, const ch
-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.<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 );
-
-
+ 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.<br>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<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,3 +171,3 @@ bool XXPortResourceObject::isAvailable()
{
- return (mResource != 0);
+ return (mFactory != 0);
}
@@ -170,2 +175,97 @@ bool XXPortResourceObject::isAvailable()
+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;
+}
+
+
+
#ifndef KAB_EMBEDDED
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;
};