[QGIS Commit] r13808 - trunk/qgis/src/app
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sat Jun 26 16:17:11 EDT 2010
Author: jef
Date: 2010-06-26 20:17:11 +0000 (Sat, 26 Jun 2010)
New Revision: 13808
Modified:
trunk/qgis/src/app/qgisapp.cpp
Log:
fix #2819
Modified: trunk/qgis/src/app/qgisapp.cpp
===================================================================
--- trunk/qgis/src/app/qgisapp.cpp 2010-06-26 20:10:33 UTC (rev 13807)
+++ trunk/qgis/src/app/qgisapp.cpp 2010-06-26 20:17:11 UTC (rev 13808)
@@ -4490,14 +4490,34 @@
if ( pasteVectorLayer != 0 )
{
pasteVectorLayer->beginEditCommand( tr( "Features pasted" ) );
+ QgsFeatureList features;
if ( mMapCanvas->mapRenderer()->hasCrsTransformEnabled() )
{
- pasteVectorLayer->addFeatures( clipboard()->transformedCopyOf( pasteVectorLayer->srs() ) );
+ features = clipboard()->transformedCopyOf( pasteVectorLayer->srs() );
}
else
{
- pasteVectorLayer->addFeatures( clipboard()->copyOf() );
+ features = clipboard()->copyOf();
}
+
+ QgsAttributeList dstAttr = pasteVectorLayer->pendingAllAttributesList();
+
+ for ( int i = 0; i < features.size(); i++ )
+ {
+ QgsFeature &f = features[i];
+ QgsAttributeMap srcMap = f.attributeMap();
+ QgsAttributeMap dstMap;
+
+ int j = 0;
+ foreach( int id, srcMap.keys() )
+ {
+ dstMap[ dstAttr[j++] ] = srcMap[id];
+ }
+
+ f.setAttributeMap( dstMap );
+ }
+
+ pasteVectorLayer->addFeatures( features );
pasteVectorLayer->endEditCommand();
mMapCanvas->refresh();
}
More information about the QGIS-commit
mailing list