mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-31 00:04:24 -05:00
Ignore blocklisted uris when querying all providers for sublayers
This commit is contained in:
parent
ae980c51bc
commit
e57193d6ef
@ -899,6 +899,10 @@ bool QgsProviderRegistry::uriIsBlocklisted( const QString &uri ) const
|
||||
|
||||
QList<QgsProviderSublayerDetails> QgsProviderRegistry::querySublayers( const QString &uri, Qgis::SublayerQueryFlags flags, QgsFeedback *feedback ) const
|
||||
{
|
||||
// never query sublayers for blocklisted uris
|
||||
if ( uriIsBlocklisted( uri ) )
|
||||
return {};
|
||||
|
||||
QList<QgsProviderSublayerDetails> res;
|
||||
for ( auto it = mProviders.begin(); it != mProviders.end(); ++it )
|
||||
{
|
||||
|
||||
@ -17,9 +17,11 @@ from qgis.core import (
|
||||
QgsMapLayerType,
|
||||
QgsProviderMetadata,
|
||||
QgsProviderSublayerDetails,
|
||||
Qgis
|
||||
Qgis,
|
||||
QgsProviderUtils
|
||||
)
|
||||
from qgis.testing import start_app, unittest
|
||||
from utilities import unitTestDataPath
|
||||
|
||||
# Convenience instances in case you may need them
|
||||
# to find the srs.db
|
||||
@ -37,6 +39,8 @@ class TestProviderMetadata(QgsProviderMetadata):
|
||||
def querySublayers(self, uri: str, flags=Qgis.SublayerQueryFlags(), feedback=None):
|
||||
res = QgsProviderSublayerDetails()
|
||||
res.setProviderKey(self.key())
|
||||
res.setUri(uri)
|
||||
res.setName(QgsProviderUtils.suggestLayerNameFromFilePath(uri))
|
||||
return [res]
|
||||
|
||||
|
||||
@ -138,6 +142,10 @@ class TestQgsProviderRegistry(unittest.TestCase):
|
||||
self.assertCountEqual([p.providerKey() for p in QgsProviderRegistry.instance().querySublayers('test_uri')],
|
||||
['p1', 'p2'])
|
||||
|
||||
if QgsProviderRegistry.instance().providerMetadata('ept'):
|
||||
# test querying a uri which should be blocklisted
|
||||
self.assertFalse(QgsProviderRegistry.instance().querySublayers(unitTestDataPath() + '/point_clouds/ept/sunshine-coast/ept-build.json'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user