-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 @@ -42,5 +42,5 @@ static KStaticDeleter< QDict<Factory> > staticDeleter; Factory *Factory::self( const QString& resourceFamily ) { - + Factory *factory = 0; @@ -55,5 +55,5 @@ Factory *Factory::self( const QString& resourceFamily ) factory = new Factory( resourceFamily ); mSelves->insert( resourceFamily, factory ); - } + } return factory; @@ -65,6 +65,6 @@ 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 ) ); @@ -75,7 +75,7 @@ Factory::Factory( const QString& resourceFamily ) : mTypeMap.insert( type.toString(), *it ); } -*/ +*/ -//US new +//US new PluginInfo* info = new PluginInfo; info->library = "microkabc_file"; @@ -89,5 +89,5 @@ Factory::Factory( const QString& resourceFamily ) : info->descriptionLabel = i18n( "Choose a directory with may files" ); mTypeMap.insert( "dir", info ); - + info = new PluginInfo; info->library = "microkabc_ldap"; @@ -96,5 +96,5 @@ Factory::Factory( const QString& resourceFamily ) : 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 ) ); @@ -108,5 +108,5 @@ Factory::Factory( const QString& resourceFamily ) : } - //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 ) ); @@ -119,5 +119,17 @@ Factory::Factory( const QString& resourceFamily ) : 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 ); + } + } @@ -131,7 +143,7 @@ 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 ) { @@ -173,5 +185,5 @@ ConfigWidget *Factory::configWidget( const QString& type, QWidget *parent ) } return wdg; - + } @@ -181,10 +193,10 @@ QString Factory::typeName( const QString &type ) const return QString(); - + //US KService::Ptr ptr = mTypeMap[ type ]; //US return ptr->name(); PluginInfo* pi = mTypeMap[ type ]; return pi->nameLabel; - + } @@ -202,10 +214,10 @@ 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() ); @@ -222,5 +234,5 @@ Resource *Factory::resource( const QString& type, const KConfig *config ) return 0; } - + PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory ); @@ -230,7 +242,7 @@ Resource *Factory::resource( const QString& type, const KConfig *config ) 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()); @@ -239,5 +251,5 @@ Resource *Factory::resource( const QString& type, const KConfig *config ) resource->setType( type ); - + return resource; } |