87 QString msg = QObject::tr(
"No QGIS data provider plugins found in:\n%1\n" ).arg(
mLibraryDirectory.path() );
88 msg += QObject::tr(
"No vector layers can be loaded. Check your QGIS installation" );
91 output->
setTitle( QObject::tr(
"No Data Providers" ) );
98 QListIterator<QFileInfo> it( list );
101 while ( it.hasNext() )
105 QLibrary *myLib =
new QLibrary( fi.filePath() );
107 bool loaded = myLib->load();
109 QString myMessage =
"Checking " + myLib->fileName() +
" : " ;
120 if ( !hasType && isProvider )
141 if ( pDatabaseDrivers )
148 if ( pDirectoryDrivers )
155 if ( pProtocolDrivers )
160 if ( pFileVectorFilters )
162 QString vectorFileFilters = pFileVectorFilters();
168 if ( pVectorFileFilters )
172 if ( ! fileVectorFilters.isEmpty() )
175 myMessage += QString(
"... loaded ok (and with %1 file filters)" ).
176 arg( fileVectorFilters.split(
";;" ).count() );
181 myMessage +=
"... loaded ok (0 file filters)";
188 myMessage +=
"... loaded ok (null file filters)";
194 myMessage +=
"...not usable";
201 myMessage +=
"..invalid";
207 myMessage +=
"..invalid (no type)";
212 myMessage +=
"...invalid (lib not loadable): ";
213 myMessage += myLib->errorString();
239 QString
const & providerKey )
241 QgsProviderRegistry::Providers::const_iterator i =
242 metaData.find( providerKey );
244 if ( i != metaData.end() )
269 Providers::const_iterator it =
mProviders.begin();
274 list = QObject::tr(
"No data provider plugins are available. No vector layers can be loaded" );
333 QString
const & dataSource )
339 QString lib =
library( providerKey );
341 #ifdef TESTPROVIDERLIB
342 const char *cLib = lib.toUtf8();
346 void *handle = dlopen( cOgrLib, RTLD_LAZY | RTLD_GLOBAL );
360 QLibrary* myLib =
new QLibrary( lib );
362 QgsDebugMsg(
"Library name is " + myLib->fileName() );
364 bool loaded = myLib->load();
369 QgsDebugMsg(
"Attempting to resolve the classFactory function" );
376 QgsDebugMsg(
"Getting pointer to a dataProvider object from the library" );
387 QgsDebugMsg(
"Instantiated the data provider plugin" );
454 lst.append( it->first );