- insertRow( pos++, QgsAction::GenericPython, tr( "Duplicate selected feature" ), QStringLiteral( "from qgis.PyQt import QtWidgets\n\nproject = QgsProject.instance()\nlayer = QgsProject.instance().mapLayer(\"[% @layer_id %]\")\nlayer.startEditing()\nfeature_count=0\nchildren_info=\"\"\nfor f in layer.selectedFeatures():\n result=QgsVectorLayerUtils.duplicateFeature(layer, f, project, 0 );\n feature_count+=1\n for ch_layer in result[1].layers():\n children_info+=\"{number_of_children} children on layer {children_layer}\\n\".format( number_of_children=str( len( result[1].duplicatedFeatures(ch_layer) ) ), children_layer=ch_layer.name() )\n\nqgis.utils.iface.messageBar().pushMessage( \"{number_of_features} features on layer {layer} duplicated with\\n{children_info}\".format( number_of_features=str( feature_count ), layer=layer.name(), children_info=children_info ) )" ), QLatin1String( "" ), false, tr( "Duplicate" ), QSet<QString>() << QStringLiteral( "Canvas" ) << QStringLiteral( "Layer" ) << QStringLiteral( "Feature" ), QString() );
0 commit comments