summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/xxportmanager.cpp78
-rw-r--r--kaddressbook/xxportobject.h20
2 files changed, 27 insertions, 71 deletions
diff --git a/kaddressbook/xxportmanager.cpp b/kaddressbook/xxportmanager.cpp
index 6cfa9cb..20cde49 100644
--- a/kaddressbook/xxportmanager.cpp
+++ b/kaddressbook/xxportmanager.cpp
@@ -29,6 +29,7 @@ $Id$
*/
#include <qlayout.h>
+#include <qlist.h>
#include <kabc/addressbook.h>
#include <kabc/resource.h>
@@ -40,9 +41,12 @@ $Id$
#ifndef KAB_EMBEDDED
#include <ktrader.h>
#else //KAB_EMBEDDED
-#include "xxport/csv_xxport.h"
-#include "xxport/kde2_xxport.h"
-#include "xxport/vcard_xxport.h"
+extern "C"
+{
+ void* init_kaddrbk_csv_xxport();
+ void* init_kaddrbk_kde2_xxport();
+ void* init_kaddrbk_vcard_xxport();
+}
#endif //KAB_EMBEDDED
#include <libkdepim/addresseeview.h>
@@ -172,7 +176,7 @@ void XXPortManager::loadPlugins()
for ( it = plugins.begin(); it != plugins.end(); ++it ) {
if ( !(*it)->hasServiceType( "KAddressBook/XXPort" ) )
continue;
-
+
KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() );
if ( !factory ) {
kdDebug(5720) << "XXPortManager::loadExtensions(): Factory creation failed" << endl;
@@ -185,6 +189,25 @@ void XXPortManager::loadPlugins()
kdDebug(5720) << "XXPortManager::loadExtensions(): Cast failed" << endl;
continue;
}
+
+#else //KAB_EMBEDDED
+ QList<XXPortFactory> factorylist;
+ factorylist.append(static_cast<XXPortFactory*>(init_kaddrbk_csv_xxport()));
+ factorylist.append(static_cast<XXPortFactory*>(init_kaddrbk_kde2_xxport()));
+ factorylist.append(static_cast<XXPortFactory*>(init_kaddrbk_vcard_xxport()));
+
+ //now add the opie import library dynamically
+ KLibFactory *factory = KLibLoader::self()->factory( "kaddrbk_opie_xxport" );
+ if ( factory ) {
+ XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory );
+ factorylist.append(xxportFactory);
+ }
+
+ QListIterator<XXPortFactory> it(factorylist);
+ for ( ; it.current(); ++it )
+ {
+ XXPortFactory *xxportFactory = it.current();
+#endif //KAB_EMBEDDED
XXPortObject *obj = xxportFactory->xxportObject( mCore->addressBook(), mCore );
if ( obj ) {
@@ -197,53 +220,6 @@ void XXPortManager::loadPlugins()
}
}
-#else //KAB_EMBEDDED
-//lets load the export/import stubs directly. Is dynamic loading necessary for KA/Pi?
-
- // CVS import/export
- XXPortFactory *xxportFactory = new CSVXXPortFactory();
-
- XXPortObject *obj = xxportFactory->xxportObject( mCore->addressBook(), mCore );
- if ( obj ) {
- mCore->addGUIClient( obj );
- mXXPortObjects.insert( obj->identifier(), obj );
- connect( obj, SIGNAL( exportActivated( const QString&, const QString& ) ),
- this, SLOT( slotExport( const QString&, const QString& ) ) );
- connect( obj, SIGNAL( importActivated( const QString&, const QString& ) ),
- this, SLOT( slotImport( const QString&, const QString& ) ) );
- }
-
-
-
- // KDE2 import/export
- xxportFactory = new KDE2XXPortFactory();
-
- obj = xxportFactory->xxportObject( mCore->addressBook(), mCore );
- if ( obj ) {
- mCore->addGUIClient( obj );
- mXXPortObjects.insert( obj->identifier(), obj );
- connect( obj, SIGNAL( exportActivated( const QString&, const QString& ) ),
- this, SLOT( slotExport( const QString&, const QString& ) ) );
- connect( obj, SIGNAL( importActivated( const QString&, const QString& ) ),
- this, SLOT( slotImport( const QString&, const QString& ) ) );
- }
-
-
-
- // VCARD import/export
- xxportFactory = new VCardXXPortFactory();
-
- obj = xxportFactory->xxportObject( mCore->addressBook(), mCore );
- if ( obj ) {
- mCore->addGUIClient( obj );
- mXXPortObjects.insert( obj->identifier(), obj );
- connect( obj, SIGNAL( exportActivated( const QString&, const QString& ) ),
- this, SLOT( slotExport( const QString&, const QString& ) ) );
- connect( obj, SIGNAL( importActivated( const QString&, const QString& ) ),
- this, SLOT( slotImport( const QString&, const QString& ) ) );
- }
-#endif //KAB_EMBEDDED
-
}
diff --git a/kaddressbook/xxportobject.h b/kaddressbook/xxportobject.h
index d697700..fddc219 100644
--- a/kaddressbook/xxportobject.h
+++ b/kaddressbook/xxportobject.h
@@ -36,9 +36,7 @@ $Id$
#include <kabc/addressbook.h>
#include <kabc/addresseelist.h>
#include <kxmlguiclient.h>
-#ifndef KAB_EMBEDDED
#include <klibloader.h>
-#endif //KAB_EMBEDDED
class XXPortObject : public QObject, virtual public KXMLGUIClient
@@ -122,7 +120,6 @@ class XXPortObject : public QObject, virtual public KXMLGUIClient
XXPortObjectPrivate *d;
};
-#ifndef KAB_EMBEDDED
class XXPortFactory : public KLibFactory
{
public:
@@ -137,21 +134,4 @@ class XXPortFactory : public KLibFactory
}
};
-#else //KAB_EMBEDDED
-class XXPortFactory
-{
- public:
- virtual XXPortObject *xxportObject( KABC::AddressBook *ab, QWidget *parent,
- const char *name = 0 ) = 0;
-
- protected:
- virtual QObject* createObject( QObject*, const char*, const char*,
- const QStringList & )
- {
- return 0;
- }
-};
-#endif //KAB_EMBEDDED
-
-
#endif