Skip to content

Commit 9c5c065

Browse files
committed
copy/paste: do not transform if layer has unknown geometry
1 parent 1d8faf2 commit 9c5c065

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

src/app/qgisapp.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5624,23 +5624,23 @@ void QgisApp::editPaste( QgsMapLayer *destinationLayer )
56245624
if ( featureIt->geometry() )
56255625
{
56265626
// convert geometry to match destination layer
5627-
QgsGeometry* newGeometry = featureIt->geometry()->convertToType( pasteVectorLayer->geometryType(), QGis::isMultiType( pasteVectorLayer->wkbType() ) );
5628-
if ( newGeometry )
5627+
QGis::GeometryType destType = pasteVectorLayer->geometryType();
5628+
bool destIsMulti = QGis::isMultiType( pasteVectorLayer->wkbType() );
5629+
if ( destType != QGis::UnknownGeometry )
56295630
{
5630-
// avoid intersection if enabled in digitize settings
5631+
QgsGeometry* newGeometry = featureIt->geometry()->convertToType( destType, destIsMulti );
5632+
if ( !newGeometry )
5633+
{
5634+
featureIt = features.erase( featureIt );
5635+
continue;
5636+
}
56315637
featureIt->setGeometry( newGeometry );
5632-
featureIt->geometry()->avoidIntersections();
5633-
++featureIt;
5634-
}
5635-
else
5636-
{
5637-
featureIt = features.erase( featureIt );
56385638
}
5639+
// avoid intersection if enabled in digitize settings
5640+
featureIt->geometry()->avoidIntersections();
56395641
}
5640-
else
5641-
{
5642-
++featureIt;
5643-
}
5642+
5643+
++featureIt;
56445644
}
56455645

56465646
pasteVectorLayer->addFeatures( features );

0 commit comments

Comments
 (0)