Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Merge pull request #42411 from rldhont/vector-xml-extent-dp-has-metadata
[Vector] Use XML Extent even if data provider has metadata
- Loading branch information
|
@@ -846,7 +846,7 @@ QgsRectangle QgsVectorLayer::extent() const |
|
|
if ( !isSpatial() ) |
|
|
return rect; |
|
|
|
|
|
if ( !mValidExtent && mLazyExtent && mDataProvider && !mDataProvider->hasMetadata() && mReadExtentFromXml && !mXmlExtent.isNull() ) |
|
|
if ( !mValidExtent && mLazyExtent && mReadExtentFromXml && !mXmlExtent.isNull() ) |
|
|
{ |
|
|
mExtent = mXmlExtent; |
|
|
mValidExtent = true; |
|
|
|
@@ -2046,13 +2046,23 @@ def testReadExtentOnTable(self): |
|
|
self.assertEqual(vl1.extent(), originalExtent) |
|
|
|
|
|
# read xml with custom extent with readExtent option. Extent read from |
|
|
# xml document should NOT be used because we don't have a view or a |
|
|
# xml document should be used even if we don't have a view or a |
|
|
# materialized view |
|
|
vl2 = QgsVectorLayer() |
|
|
vl2.setReadExtentFromXml(True) |
|
|
vl2.readLayerXml(elem, QgsReadWriteContext()) |
|
|
self.assertTrue(vl2.isValid()) |
|
|
|
|
|
self.assertEqual(vl2.extent(), customExtent) |
|
|
|
|
|
# but a force update on extent should allow retrieveing the data |
|
|
# provider extent |
|
|
vl2.updateExtents() |
|
|
vl2.readLayerXml(elem, QgsReadWriteContext()) |
|
|
self.assertEqual(vl2.extent(), customExtent) |
|
|
|
|
|
vl2.updateExtents(force=True) |
|
|
vl2.readLayerXml(elem, QgsReadWriteContext()) |
|
|
self.assertEqual(vl2.extent(), originalExtent) |
|
|
|
|
|
def testDeterminePkey(self): |
|
|