summaryrefslogtreecommitdiffabout
authorulf69 <ulf69>2004-07-16 23:24:05 (UTC)
committer ulf69 <ulf69>2004-07-16 23:24:05 (UTC)
commitb78f5351ef7432aae4104ed306b52975c91eacb0 (patch) (unidiff)
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;
41 41
42Factory *Factory::self( const QString& resourceFamily ) 42Factory *Factory::self( const QString& resourceFamily )
43{ 43{
44 44
45 45
46 Factory *factory = 0; 46 Factory *factory = 0;
47 if ( !mSelves ) 47 if ( !mSelves )
@@ -54,7 +54,7 @@ Factory *Factory::self( const QString& resourceFamily )
54 if ( !factory ) { 54 if ( !factory ) {
55 factory = new Factory( resourceFamily ); 55 factory = new Factory( resourceFamily );
56 mSelves->insert( resourceFamily, factory ); 56 mSelves->insert( resourceFamily, factory );
57 } 57 }
58 58
59 return factory; 59 return factory;
60} 60}
@@ -64,8 +64,8 @@ Factory::Factory( const QString& resourceFamily ) :
64{ 64{
65//US so far we have three types available for resourceFamily "contact" 65//US so far we have three types available for resourceFamily "contact"
66// and that are "file", "dir", "ldap" 66// and that are "file", "dir", "ldap"
67/*US 67/*US
68 68
69 KTrader::OfferList plugins = KTrader::self()->query( "KResources/Plugin", QString( "[X-KDE-ResourceFamily] == '%1'" ) 69 KTrader::OfferList plugins = KTrader::self()->query( "KResources/Plugin", QString( "[X-KDE-ResourceFamily] == '%1'" )
70 .arg( resourceFamily ) ); 70 .arg( resourceFamily ) );
71 KTrader::OfferList::ConstIterator it; 71 KTrader::OfferList::ConstIterator it;
@@ -74,9 +74,9 @@ Factory::Factory( const QString& resourceFamily ) :
74 if ( !type.toString().isEmpty() ) 74 if ( !type.toString().isEmpty() )
75 mTypeMap.insert( type.toString(), *it ); 75 mTypeMap.insert( type.toString(), *it );
76 } 76 }
77*/ 77*/
78 78
79//US new 79//US new
80 PluginInfo* info = new PluginInfo; 80 PluginInfo* info = new PluginInfo;
81 info->library = "microkabc_file"; 81 info->library = "microkabc_file";
82 info->nameLabel = i18n( "file" ); 82 info->nameLabel = i18n( "file" );
@@ -88,14 +88,14 @@ Factory::Factory( const QString& resourceFamily ) :
88 info->nameLabel = i18n( "dir" ); 88 info->nameLabel = i18n( "dir" );
89 info->descriptionLabel = i18n( "Choose a directory with may files" ); 89 info->descriptionLabel = i18n( "Choose a directory with may files" );
90 mTypeMap.insert( "dir", info ); 90 mTypeMap.insert( "dir", info );
91 91
92 info = new PluginInfo; 92 info = new PluginInfo;
93 info->library = "microkabc_ldap"; 93 info->library = "microkabc_ldap";
94 info->nameLabel = i18n( "ldap" ); 94 info->nameLabel = i18n( "ldap" );
95 info->descriptionLabel = i18n( "No description available" ); 95 info->descriptionLabel = i18n( "No description available" );
96 mTypeMap.insert( "ldap", info ); 96 mTypeMap.insert( "ldap", info );
97 97
98 //US add opie plugin only, if the library exists 98 //US add opie plugin only, if the library exists.
99 QString libname = "microkabc_opie"; 99 QString libname = "microkabc_opie";
100 QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); 100 QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) );
101 if ( !path.isEmpty() ) 101 if ( !path.isEmpty() )
@@ -107,7 +107,7 @@ Factory::Factory( const QString& resourceFamily ) :
107 mTypeMap.insert( "opie", info ); 107 mTypeMap.insert( "opie", info );
108 } 108 }
109 109
110 //US add qtopia plugin only, if the library exists 110 //US add qtopia plugin only, if the library exists.
111 libname = "microkabc_qtopia"; 111 libname = "microkabc_qtopia";
112 path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); 112 path = KLibLoader::findLibrary( QFile::encodeName( libname ) );
113 if ( !path.isEmpty() ) 113 if ( !path.isEmpty() )
@@ -118,7 +118,19 @@ Factory::Factory( const QString& resourceFamily ) :
118 info->descriptionLabel = i18n( "Qtopia PIM Addressbook." ); 118 info->descriptionLabel = i18n( "Qtopia PIM Addressbook." );
119 mTypeMap.insert( "qtopia", info ); 119 mTypeMap.insert( "qtopia", info );
120 } 120 }
121 121
122 //US add sharp plugin only, if the library exists.
123 libname = "microkabc_sharpdtm";
124 path = KLibLoader::findLibrary( QFile::encodeName( libname ) );
125 if ( !path.isEmpty() )
126 {
127 info = new PluginInfo;
128 info->library = libname;
129 info->nameLabel = i18n( "sharp" );
130 info->descriptionLabel = i18n( "Sharp DTM Addressbook." );
131 mTypeMap.insert( "sharp", info );
132 }
133
122 134
123} 135}
124 136
@@ -130,9 +142,9 @@ QStringList Factory::typeNames() const
130{ 142{
131//US method QMap::keys() not available yet. SO collect the data manually 143//US method QMap::keys() not available yet. SO collect the data manually
132//US return mTypeMap.keys(); 144//US return mTypeMap.keys();
133 145
134 QStringList result; 146 QStringList result;
135 147
136 QMap<QString, PluginInfo*>::ConstIterator it; 148 QMap<QString, PluginInfo*>::ConstIterator it;
137 for( it = mTypeMap.begin(); it != mTypeMap.end(); ++it ) { 149 for( it = mTypeMap.begin(); it != mTypeMap.end(); ++it ) {
138 result << it.key().latin1(); 150 result << it.key().latin1();
@@ -172,7 +184,7 @@ ConfigWidget *Factory::configWidget( const QString& type, QWidget *parent )
172 return 0; 184 return 0;
173 } 185 }
174 return wdg; 186 return wdg;
175 187
176} 188}
177 189
178QString Factory::typeName( const QString &type ) const 190QString Factory::typeName( const QString &type ) const
@@ -180,12 +192,12 @@ QString Factory::typeName( const QString &type ) const
180 if ( type.isEmpty() || !mTypeMap.contains( type ) ) 192 if ( type.isEmpty() || !mTypeMap.contains( type ) )
181 return QString(); 193 return QString();
182 194
183 195
184//US KService::Ptr ptr = mTypeMap[ type ]; 196//US KService::Ptr ptr = mTypeMap[ type ];
185//US return ptr->name(); 197//US return ptr->name();
186 PluginInfo* pi = mTypeMap[ type ]; 198 PluginInfo* pi = mTypeMap[ type ];
187 return pi->nameLabel; 199 return pi->nameLabel;
188 200
189} 201}
190 202
191QString Factory::typeDescription( const QString &type ) const 203QString Factory::typeDescription( const QString &type ) const
@@ -201,12 +213,12 @@ QString Factory::typeDescription( const QString &type ) const
201 213
202Resource *Factory::resource( const QString& type, const KConfig *config ) 214Resource *Factory::resource( const QString& type, const KConfig *config )
203{ 215{
204 216
205 217
206 if ( type.isEmpty() || !mTypeMap.contains( type ) ) 218 if ( type.isEmpty() || !mTypeMap.contains( type ) )
207 return 0; 219 return 0;
208 220
209/*US load the lib not dynamicly. !! 221/*US load the lib not dynamicly. !!
210 KService::Ptr ptr = mTypeMap[ type ]; 222 KService::Ptr ptr = mTypeMap[ type ];
211 KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() ); 223 KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() );
212 if ( !factory ) { 224 if ( !factory ) {
@@ -221,7 +233,7 @@ Resource *Factory::resource( const QString& type, const KConfig *config )
221 kdDebug() << "KRES::Factory::resource(): Factory creation failed" << endl; 233 kdDebug() << "KRES::Factory::resource(): Factory creation failed" << endl;
222 return 0; 234 return 0;
223 } 235 }
224 236
225 PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory ); 237 PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory );
226 238
227 if ( !pluginFactory ) { 239 if ( !pluginFactory ) {
@@ -229,15 +241,15 @@ Resource *Factory::resource( const QString& type, const KConfig *config )
229 kdDebug() << "KRES::Factory::resource(): no plugin factory." << endl; 241 kdDebug() << "KRES::Factory::resource(): no plugin factory." << endl;
230 return 0; 242 return 0;
231 } 243 }
232 244
233 Resource *resource = pluginFactory->resource( config ); 245 Resource *resource = pluginFactory->resource( config );
234 if ( !resource ) { 246 if ( !resource ) {
235//US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl; 247//US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl;
236 qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1()); 248 qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1());
237 return 0; 249 return 0;
238 } 250 }
239 251
240 resource->setType( type ); 252 resource->setType( type );
241 253
242 return resource; 254 return resource;
243} 255}