Diffstat (limited to 'kaddressbook/xxportmanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kaddressbook/xxportmanager.cpp | 78 |
1 files changed, 27 insertions, 51 deletions
diff --git a/kaddressbook/xxportmanager.cpp b/kaddressbook/xxportmanager.cpp index 6cfa9cb..20cde49 100644 --- a/kaddressbook/xxportmanager.cpp +++ b/kaddressbook/xxportmanager.cpp @@ -16,46 +16,50 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #include <qlayout.h> +#include <qlist.h> #include <kabc/addressbook.h> #include <kabc/resource.h> #include <kdebug.h> #include <kdialogbase.h> #include <klocale.h> #include <kmessagebox.h> #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> #include "kabcore.h" #include "undocmds.h" #include "xxportselectdialog.h" #include "xxportmanager.h" KURL XXPortManager::importURL = KURL(); QString XXPortManager::importData = QString::null; class PreviewDialog : public KDialogBase { public: @@ -159,104 +163,76 @@ void XXPortManager::slotExport( const QString &identifier, const QString &data ) if ( !obj->exportContacts( addrList, data ) ) KMessageBox::error( mCore, i18n( "Unable to export contacts." ) ); else KMessageBox::information( mCore, i18n( "contacts successfully exported." ) ); } void XXPortManager::loadPlugins() { mXXPortObjects.clear(); #ifndef KAB_EMBEDDED KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/XXPort" ); KTrader::OfferList::ConstIterator it; 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; continue; } XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory ); if ( !xxportFactory ) { 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 ) { 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& ) ) ); } } -#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 - } PreviewDialog::PreviewDialog( const KABC::Addressee &addr, QWidget *parent, const char *name ) : KDialogBase( Plain, i18n( "Contact Preview" ), Ok | Cancel, Ok, parent, name, true, true ) { QWidget *page = plainPage(); QVBoxLayout *layout = new QVBoxLayout( page, marginHint(), spacingHint() ); KPIM::AddresseeView *view = new KPIM::AddresseeView( page ); view->setAddressee( addr ); layout->addWidget( view ); |