mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-30 00:29:39 -05:00
If a sublayer has the skippedContainerScan flag set, then
the sublayer details are incomplete
This commit is contained in:
parent
e28a0b7258
commit
f6540193c5
@ -29,7 +29,8 @@ bool QgsProviderUtils::sublayerDetailsAreIncomplete( const QList<QgsProviderSubl
|
||||
switch ( sublayer.type() )
|
||||
{
|
||||
case QgsMapLayerType::VectorLayer:
|
||||
if ( ( !ignoreUnknownGeometryTypes && sublayer.wkbType() == QgsWkbTypes::Unknown )
|
||||
if ( sublayer.skippedContainerScan()
|
||||
|| ( !ignoreUnknownGeometryTypes && sublayer.wkbType() == QgsWkbTypes::Unknown )
|
||||
|| ( !ignoreUnknownFeatureCount &&
|
||||
( sublayer.featureCount() == static_cast< long long >( Qgis::FeatureCountState::Uncounted )
|
||||
|| sublayer.featureCount() == static_cast< long long >( Qgis::FeatureCountState::UnknownCount ) ) ) )
|
||||
|
||||
@ -14,7 +14,9 @@ from qgis.core import (
|
||||
Qgis,
|
||||
QgsWkbTypes,
|
||||
QgsProviderRegistry,
|
||||
QgsProviderUtils
|
||||
QgsProviderUtils,
|
||||
QgsProviderSublayerDetails,
|
||||
QgsMapLayerType
|
||||
)
|
||||
from qgis.testing import (
|
||||
unittest,
|
||||
@ -112,6 +114,26 @@ class TestQgsProviderUtils(unittest.TestCase):
|
||||
self.assertEqual(sublayers[3].name(), 'lines')
|
||||
self.assertEqual(sublayers[3].featureCount(), 6)
|
||||
|
||||
# test with sublayer with skippedContainerScan flag
|
||||
sl1 = QgsProviderSublayerDetails()
|
||||
sl1.setProviderKey('ogr')
|
||||
sl1.setType(QgsMapLayerType.VectorLayer)
|
||||
sl1.setWkbType(QgsWkbTypes.Point)
|
||||
sl1.setFeatureCount(1)
|
||||
sl1.setSkippedContainerScan(False)
|
||||
self.assertFalse(QgsProviderUtils.sublayerDetailsAreIncomplete([sl1], True))
|
||||
self.assertFalse(QgsProviderUtils.sublayerDetailsAreIncomplete([sl1], False))
|
||||
sl2 = QgsProviderSublayerDetails()
|
||||
sl2.setProviderKey('ogr')
|
||||
sl2.setType(QgsMapLayerType.VectorLayer)
|
||||
sl2.setWkbType(QgsWkbTypes.Point)
|
||||
sl2.setFeatureCount(1)
|
||||
sl2.setSkippedContainerScan(True)
|
||||
self.assertTrue(QgsProviderUtils.sublayerDetailsAreIncomplete([sl2], True))
|
||||
self.assertTrue(QgsProviderUtils.sublayerDetailsAreIncomplete([sl2], False))
|
||||
self.assertTrue(QgsProviderUtils.sublayerDetailsAreIncomplete([sl1, sl2], True))
|
||||
self.assertTrue(QgsProviderUtils.sublayerDetailsAreIncomplete([sl1, sl2], False))
|
||||
|
||||
def test_suggestLayerNameFromFilePath(self):
|
||||
"""
|
||||
test suggestLayerNameFromFilePath
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user