@@ -5531,14 +5531,7 @@ QgsGeometry* QgisApp::unionGeometries( const QgsVectorLayer* vl, QgsFeatureList&
5531
5531
}
5532
5532
5533
5533
// convert unionGeom to a multipart geometry in case it is necessary to match the layer type
5534
- QGis::WkbType t = vl->wkbType ();
5535
- bool layerIsMultiType = ( t == QGis::WKBMultiPoint ||
5536
- t == QGis::WKBMultiPoint25D ||
5537
- t == QGis::WKBMultiLineString ||
5538
- t == QGis::WKBMultiLineString25D ||
5539
- t == QGis::WKBMultiPolygon ||
5540
- t == QGis::WKBMultiPolygon25D );
5541
- if ( layerIsMultiType && !unionGeom->isMultipart () )
5534
+ if ( QGis::isMultiType ( vl->wkbType () ) && !unionGeom->isMultipart () )
5542
5535
{
5543
5536
unionGeom->convertToMultiType ();
5544
5537
}
@@ -9449,6 +9442,8 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
9449
9442
mActionMergeFeatureAttributes ->setEnabled ( false );
9450
9443
}
9451
9444
9445
+ bool isMultiPart = QGis::isMultiType ( vlayer->wkbType () ) || !dprovider->doesStrictFeatureTypeCheck ();
9446
+
9452
9447
// moving enabled if geometry changes are supported
9453
9448
mActionAddPart ->setEnabled ( isEditable && canChangeGeometry );
9454
9449
mActionDeletePart ->setEnabled ( isEditable && canChangeGeometry );
@@ -9484,7 +9479,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
9484
9479
9485
9480
mActionReshapeFeatures ->setEnabled ( isEditable && canAddFeatures );
9486
9481
mActionSplitFeatures ->setEnabled ( isEditable && canAddFeatures );
9487
- mActionSplitParts ->setEnabled ( isEditable && canAddFeatures );
9482
+ mActionSplitParts ->setEnabled ( isEditable && canChangeGeometry && isMultiPart );
9488
9483
mActionSimplifyFeature ->setEnabled ( isEditable && canAddFeatures );
9489
9484
mActionOffsetCurve ->setEnabled ( isEditable && canAddFeatures && canChangeAttributes );
9490
9485
@@ -9500,7 +9495,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
9500
9495
mActionFillRing ->setEnabled ( isEditable && canChangeGeometry );
9501
9496
mActionReshapeFeatures ->setEnabled ( isEditable && canChangeGeometry );
9502
9497
mActionSplitFeatures ->setEnabled ( isEditable && canAddFeatures );
9503
- mActionSplitParts ->setEnabled ( isEditable && canChangeGeometry );
9498
+ mActionSplitParts ->setEnabled ( isEditable && canChangeGeometry && isMultiPart );
9504
9499
mActionSimplifyFeature ->setEnabled ( isEditable && canChangeGeometry );
9505
9500
mActionDeleteRing ->setEnabled ( isEditable && canChangeGeometry );
9506
9501
mActionOffsetCurve ->setEnabled ( false );
0 commit comments