-rw-r--r-- | microkde/kresources/factory.cpp | 54 |
1 files changed, 33 insertions, 21 deletions
diff --git a/microkde/kresources/factory.cpp b/microkde/kresources/factory.cpp index 2253de4..f82e94c 100644 --- a/microkde/kresources/factory.cpp +++ b/microkde/kresources/factory.cpp @@ -41,7 +41,7 @@ static KStaticDeleter< QDict<Factory> > staticDeleter; Factory *Factory::self( const QString& resourceFamily ) { - + Factory *factory = 0; if ( !mSelves ) @@ -54,7 +54,7 @@ Factory *Factory::self( const QString& resourceFamily ) if ( !factory ) { factory = new Factory( resourceFamily ); mSelves->insert( resourceFamily, factory ); - } + } return factory; } @@ -64,8 +64,8 @@ Factory::Factory( const QString& resourceFamily ) : { //US so far we have three types available for resourceFamily "contact" // and that are "file", "dir", "ldap" -/*US - +/*US + KTrader::OfferList plugins = KTrader::self()->query( "KResources/Plugin", QString( "[X-KDE-ResourceFamily] == '%1'" ) .arg( resourceFamily ) ); KTrader::OfferList::ConstIterator it; @@ -74,9 +74,9 @@ Factory::Factory( const QString& resourceFamily ) : if ( !type.toString().isEmpty() ) mTypeMap.insert( type.toString(), *it ); } -*/ +*/ -//US new +//US new PluginInfo* info = new PluginInfo; info->library = "microkabc_file"; info->nameLabel = i18n( "file" ); @@ -88,14 +88,14 @@ Factory::Factory( const QString& resourceFamily ) : info->nameLabel = i18n( "dir" ); info->descriptionLabel = i18n( "Choose a directory with may files" ); mTypeMap.insert( "dir", info ); - + info = new PluginInfo; info->library = "microkabc_ldap"; info->nameLabel = i18n( "ldap" ); info->descriptionLabel = i18n( "No description available" ); mTypeMap.insert( "ldap", info ); - //US add opie plugin only, if the library exists + //US add opie plugin only, if the library exists. QString libname = "microkabc_opie"; QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) @@ -107,7 +107,7 @@ Factory::Factory( const QString& resourceFamily ) : mTypeMap.insert( "opie", info ); } - //US add qtopia plugin only, if the library exists + //US add qtopia plugin only, if the library exists. libname = "microkabc_qtopia"; path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) @@ -118,7 +118,19 @@ Factory::Factory( const QString& resourceFamily ) : info->descriptionLabel = i18n( "Qtopia PIM Addressbook." ); mTypeMap.insert( "qtopia", info ); } - + + //US add sharp plugin only, if the library exists. + libname = "microkabc_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 ); + } + } @@ -130,9 +142,9 @@ 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(); @@ -172,7 +184,7 @@ ConfigWidget *Factory::configWidget( const QString& type, QWidget *parent ) return 0; } return wdg; - + } QString Factory::typeName( const QString &type ) const @@ -180,12 +192,12 @@ QString Factory::typeName( const QString &type ) const if ( type.isEmpty() || !mTypeMap.contains( type ) ) return QString(); - + //US KService::Ptr ptr = mTypeMap[ type ]; //US return ptr->name(); PluginInfo* pi = mTypeMap[ type ]; return pi->nameLabel; - + } QString Factory::typeDescription( const QString &type ) const @@ -201,12 +213,12 @@ QString Factory::typeDescription( const QString &type ) const Resource *Factory::resource( const QString& type, const KConfig *config ) { - + if ( type.isEmpty() || !mTypeMap.contains( type ) ) return 0; -/*US load the lib not dynamicly. !! +/*US load the lib not dynamicly. !! KService::Ptr ptr = mTypeMap[ type ]; KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() ); if ( !factory ) { @@ -221,7 +233,7 @@ Resource *Factory::resource( const QString& type, const KConfig *config ) kdDebug() << "KRES::Factory::resource(): Factory creation failed" << endl; return 0; } - + PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory ); if ( !pluginFactory ) { @@ -229,15 +241,15 @@ Resource *Factory::resource( const QString& type, const KConfig *config ) kdDebug() << "KRES::Factory::resource(): no plugin factory." << endl; return 0; } - + Resource *resource = pluginFactory->resource( config ); - if ( !resource ) { + if ( !resource ) { //US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl; qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1()); return 0; } resource->setType( type ); - + return resource; } |