mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
More efficient field calculator iteration
This commit is contained in:
parent
0db9f05789
commit
9f3b90775a
@ -536,6 +536,10 @@ void QgsAttributeTableDialog::runFieldCalculation( QgsVectorLayer *layer, const
|
||||
|
||||
QgsField fld = layer->fields().at( fieldindex );
|
||||
|
||||
QSet< QString >referencedColumns = exp.referencedColumns();
|
||||
referencedColumns.insert( fld.name() ); // need existing column value to store old attribute when changing field values
|
||||
request.setSubsetOfAttributes( referencedColumns, layer->fields() );
|
||||
|
||||
//go through all the features and change the new attributes
|
||||
QgsFeatureIterator fit = layer->getFeatures( request );
|
||||
QgsFeature feature;
|
||||
|
@ -281,6 +281,9 @@ void QgsFieldCalculator::accept()
|
||||
emptyAttribute = QVariant( field.type() );
|
||||
|
||||
QgsFeatureRequest req = QgsFeatureRequest().setFlags( useGeometry ? QgsFeatureRequest::NoFlags : QgsFeatureRequest::NoGeometry );
|
||||
QSet< QString > referencedColumns = exp.referencedColumns();
|
||||
referencedColumns.insert( field.name() ); // need existing column value to store old attribute when changing field values
|
||||
req.setSubsetOfAttributes( referencedColumns, mVectorLayer->fields() );
|
||||
if ( mOnlyUpdateSelectedCheckBox->isChecked() )
|
||||
{
|
||||
req.setFilterFids( mVectorLayer->selectedFeatureIds() );
|
||||
|
Loading…
x
Reference in New Issue
Block a user