author | Michael Krelin <hacker@klever.net> | 2007-07-10 22:34:46 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2007-07-10 22:34:46 (UTC) |
commit | de61d6005b51bc62f01786e06cd964e530c1bf83 (patch) (side-by-side diff) | |
tree | 0d0c3e4adcb0c7858d0556edcefc573bc94ca4bf | |
parent | 8822b171906831b7de71e24f66ca2b07bc3ef92e (diff) | |
download | kdepimpi-de61d6005b51bc62f01786e06cd964e530c1bf83.zip kdepimpi-de61d6005b51bc62f01786e06cd964e530c1bf83.tar.gz kdepimpi-de61d6005b51bc62f01786e06cd964e530c1bf83.tar.bz2 |
load x-adjusted libraries
-rw-r--r-- | microkde/kresources/factory.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/microkde/kresources/factory.cpp b/microkde/kresources/factory.cpp index 4f286d1..1c6c228 100644 --- a/microkde/kresources/factory.cpp +++ b/microkde/kresources/factory.cpp @@ -22,185 +22,185 @@ */ #include <kdebug.h> #include <klocale.h> #include <ksimpleconfig.h> #include <kstandarddirs.h> #include <kstaticdeleter.h> //#ifndef DESKTOP_VERSION #include <klibloader.h> //#endif #include <qfile.h> #include "resource.h" #include "factory.h" #ifdef STATIC_RESOURCES #include <file/resourcefile.h> #include <dir/resourcedir.h> #include <qtopia/resourceqtopia.h> #endif using namespace KRES; Q3Dict<Factory> *Factory::mSelves = 0; static KStaticDeleter< Q3Dict<Factory> > staticDeleter; Factory *Factory::self( const QString& resourceFamily) { Factory *factory = 0; if ( !mSelves ) { mSelves = staticDeleter.setObject( new Q3Dict<Factory> ); } factory = mSelves->find( resourceFamily ); if ( !factory ) { factory = new Factory( resourceFamily); mSelves->insert( resourceFamily, factory ); } return factory; } Factory::Factory( const QString& resourceFamily) : mResourceFamily( resourceFamily ) { //US so far we have three types available for resourceFamily "contact" // and that are "file", "dir", "ldap" /*US KTrader::OfferList plugins = KTrader::self()->query( "KResources/Plugin", QString( "[X-KDE-ResourceFamily] == '%1'" ) .arg( resourceFamily ) ); KTrader::OfferList::ConstIterator it; for ( it = plugins.begin(); it != plugins.end(); ++it ) { QVariant type = (*it)->property( "X-KDE-ResourceType" ); if ( !type.toString().isEmpty() ) mTypeMap.insert( type.toString(), *it ); } */ //US new PluginInfo* info = new PluginInfo; - info->library = "microkabc_file"; + info->library = "xmicrokabc_file"; info->nameLabel = i18n( "file" ); info->descriptionLabel = i18n( "One file" ); mTypeMap.insert( "file", info ); info = new PluginInfo; - info->library = "microkabc_dir"; + info->library = "xmicrokabc_dir"; info->nameLabel = i18n( "dir" ); info->descriptionLabel = i18n( "A directory with many files" ); mTypeMap.insert( "dir", info ); info = new PluginInfo; - info->library = "microkabc_ldap"; + info->library = "xmicrokabc_ldap"; info->nameLabel = i18n( "ldap" ); info->descriptionLabel = i18n( "Connect to a directory server" ); mTypeMap.insert( "ldap", info ); //US add opie plugin only, if the library exists. /*US - QString libname = "microkabc_opie"; + QString libname = "xmicrokabc_opie"; QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) { info = new PluginInfo; info->library = libname; info->nameLabel = i18n( "opie" ); info->descriptionLabel = i18n( "Opie PIM Addressbook." ); mTypeMap.insert( "opie", info ); } */ //US add qtopia plugin only, if the library exists. - QString libname = "microkabc_qtopia"; + QString libname = "xmicrokabc_qtopia"; QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) { info = new PluginInfo; info->library = libname; info->nameLabel = i18n( "qtopia" ); info->descriptionLabel = i18n( "Qtopia PIM Addressbook." ); mTypeMap.insert( "qtopia", info ); } //US add sharp plugin only, if the library exists. - libname = "microkabc_sharpdtm"; + libname = "xmicrokabc_sharpdtm"; path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) { info = new PluginInfo; info->library = libname; info->nameLabel = i18n( "sharp" ); info->descriptionLabel = i18n( "Sharp DTM Addressbook." ); mTypeMap.insert( "sharp", info ); } //LR add ol plugin only, if the library exists. - libname = "microkabc_olaccess"; + libname = "xmicrokabc_olaccess"; path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) { info = new PluginInfo; info->library = libname; info->nameLabel = i18n( "olaccess" ); info->descriptionLabel = i18n( "Outlook Addressbook." ); mTypeMap.insert( "olaccess", info ); } } Factory::~Factory() { } QStringList Factory::typeNames() const { //US method QMap::keys() not available yet. SO collect the data manually //US return mTypeMap.keys(); QStringList result; QMap<QString, PluginInfo*>::ConstIterator it; for( it = mTypeMap.begin(); it != mTypeMap.end(); ++it ) { result << it.key().latin1(); // qDebug("Factory::typeNames() : %s ", it.key().latin1()); } return result; } ConfigWidget *Factory::configWidget( const QString& type, QWidget *parent ) { if ( type.isEmpty() || !mTypeMap.contains( type ) ) return 0; //US KService::Ptr ptr = mTypeMap[ type ]; //US KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() ); PluginInfo* pi = mTypeMap[ type ]; KLibFactory *factory = (KLibFactory *)KLibLoader::self()->factory( pi->library.latin1() ); if ( !factory ) { qDebug("KRES::Factory::configWidget(): Factory creation failed for library %s", pi->library.latin1()); kdDebug() << "KRES::Factory::configWidget(): Factory creation failed" << endl; return 0; } PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory ); if ( !pluginFactory ) { qDebug("KRES::Factory::configWidget(): no plugin factory for library %s", pi->library.latin1()); kdDebug() << "KRES::Factory::configWidget(): no plugin factory." << endl; return 0; } ConfigWidget *wdg = pluginFactory->configWidget( parent ); if ( !wdg ) { //US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl; qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1()); return 0; } return wdg; |