Example #1
0
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;
  }
}