void TestQgsFields::appendExpressionField() { QgsFields fields; QgsField field( QString( "testfield" ) ); fields.append( field ); QgsField field2( QString( "testfield2" ) ); fields.append( field2 ); QgsField dupeName( QString( "testfield" ) ); QVERIFY( !fields.appendExpressionField( dupeName, 1 ) ); //good name QgsField exprField( QString( "expression" ) ); QVERIFY( fields.appendExpressionField( exprField, 5 ) ); QCOMPARE( fields.count(), 3 ); QCOMPARE( fields.fieldOrigin( 2 ), QgsFields::OriginExpression ); QCOMPARE( fields.fieldOriginIndex( 2 ), 5 ); }
void QgsExpressionFieldBuffer::updateFields( QgsFields &flds ) { int index = 0; const auto constMExpressions = mExpressions; for ( const ExpressionField &fld : constMExpressions ) { flds.appendExpressionField( fld.field, index ); ++index; } }