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) (ignore whitespace changes)
-rw-r--r--microkde/kresources/factory.cpp54
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;
}