summaryrefslogtreecommitdiffabout
authorulf69 <ulf69>2004-07-16 23:24:05 (UTC)
committer ulf69 <ulf69>2004-07-16 23:24:05 (UTC)
commitb78f5351ef7432aae4104ed306b52975c91eacb0 (patch) (side-by-side diff)
treeb1b797c79174da9265781f15406cb37f00f47fde
parent2670b9dec6a26a22eb6063b0f7837984c935c765 (diff)
downloadkdepimpi-b78f5351ef7432aae4104ed306b52975c91eacb0.zip
kdepimpi-b78f5351ef7432aae4104ed306b52975c91eacb0.tar.gz
kdepimpi-b78f5351ef7432aae4104ed306b52975c91eacb0.tar.bz2
load sharp dtm plugin if the lib is available
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--microkde/kresources/factory.cpp16
1 files changed, 14 insertions, 2 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
@@ -50,120 +50,132 @@ Factory *Factory::self( const QString& resourceFamily )
}
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->nameLabel = i18n( "file" );
info->descriptionLabel = i18n( "Choose one file" );
mTypeMap.insert( "file", info );
info = new PluginInfo;
info->library = "microkabc_dir";
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() )
{
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
+ //US add qtopia plugin only, if the library exists.
libname = "microkabc_qtopia";
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";
+ 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 );
+ }
+
}
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 ) {