void QgsFields::extend( const QgsFields &other ) { for ( int i = 0; i < other.count(); ++i ) { append( other.at( i ), other.fieldOrigin( i ), other.fieldOriginIndex( i ) ); } }
void TestQgsFields::fieldOriginIndex() { QgsFields fields; QgsField field( QString( "testfield" ) ); fields.append( field , QgsFields::OriginProvider, 5 ); QCOMPARE( fields.fieldOriginIndex( 0 ), 5 ); QgsField field2( QString( "testfield2" ) ); fields.append( field2, QgsFields::OriginProvider, 10 ); QCOMPARE( fields.fieldOriginIndex( 1 ), 10 ); QgsField field3( QString( "testfield3" ) ); //field origin index not specified with OriginProvider, should be automatic fields.append( field3, QgsFields::OriginProvider ); QCOMPARE( fields.fieldOriginIndex( 2 ), 2 ); QgsField field4( QString( "testfield4" ) ); //field origin index not specified with other than OriginProvider, should remain -1 fields.append( field4, QgsFields::OriginEdit ); QCOMPARE( fields.fieldOriginIndex( 3 ), -1 ); }
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 ); }