Skip to content

Commit 11c2bae

Browse files
committed
vector file writer: scan shape file geometries instead of just assuming multi geometry types (followup 528c4ca, refs #10584, fixes #11542, fixes #11597)
1 parent ef5955a commit 11c2bae

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/core/qgsvectorfilewriter.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1869,7 +1869,20 @@ QgsVectorFileWriter::WriterError QgsVectorFileWriter::writeAsVectorFormat( QgsVe
18691869
// Shapefiles might contain multi types although wkbType() only reports singles
18701870
if ( layer->storageType() == "ESRI Shapefile" )
18711871
{
1872-
wkbType = QGis::multiType( wkbType );
1872+
const QgsFeatureIds &ids = layer->selectedFeaturesIds();
1873+
QgsFeatureIterator fit = layer->getFeatures();
1874+
QgsFeature fet;
1875+
while ( fit.nextFeature( fet ) )
1876+
{
1877+
if ( onlySelected && !ids.contains( fet.id() ) )
1878+
continue;
1879+
1880+
if ( fet.geometry() && fet.geometry()->wkbType() == QGis::multiType( wkbType ) )
1881+
{
1882+
wkbType = QGis::multiType( wkbType );
1883+
break;
1884+
}
1885+
}
18731886
}
18741887
}
18751888

0 commit comments

Comments
 (0)