Skip to content
Permalink
Browse files

[layouts] Fix attribute table filtering not utilising expression context

Fixes #21078
  • Loading branch information
nyalldawson committed Jan 25, 2019
1 parent 009ee57 commit 60f252c2f22d1ab89361d1381b1aacbe544fb756
Showing with 25 additions and 0 deletions.
  1. +1 −0 src/core/layout/qgslayoutitemattributetable.cpp
  2. +24 −0 tests/src/core/testqgslayouttable.cpp
@@ -411,6 +411,7 @@ bool QgsLayoutItemAttributeTable::getTableContents( QgsLayoutTableContents &cont
{
activeFilter = true;
req.setFilterExpression( mFeatureFilter );
req.setExpressionContext( context );
}
}

@@ -240,6 +240,30 @@ void TestQgsLayoutTable::attributeTableFilterFeatures()

//retrieve rows and check
compareTable( table, expectedRows );

table->setFeatureFilter( QStringLiteral( "\"Class\"=@airplane_class" ) );
table->setFilterFeatures( true );
expectedRows.clear();
compareTable( table, expectedRows );

QgsExpressionContextUtils::setLayoutVariable( &l, QStringLiteral( "airplane_class" ), QStringLiteral( "Biplane" ) );

row.clear();
row << QStringLiteral( "Biplane" ) << QStringLiteral( "0" ) << QStringLiteral( "1" ) << QStringLiteral( "3" ) << QStringLiteral( "3" ) << QStringLiteral( "6" );
expectedRows.append( row );
row.clear();
row << QStringLiteral( "Biplane" ) << QStringLiteral( "340" ) << QStringLiteral( "1" ) << QStringLiteral( "3" ) << QStringLiteral( "3" ) << QStringLiteral( "6" );
expectedRows.append( row );
row.clear();
row << QStringLiteral( "Biplane" ) << QStringLiteral( "300" ) << QStringLiteral( "1" ) << QStringLiteral( "3" ) << QStringLiteral( "2" ) << QStringLiteral( "5" );
expectedRows.append( row );
row.clear();
row << QStringLiteral( "Biplane" ) << QStringLiteral( "270" ) << QStringLiteral( "1" ) << QStringLiteral( "3" ) << QStringLiteral( "4" ) << QStringLiteral( "7" );
expectedRows.append( row );
row.clear();
row << QStringLiteral( "Biplane" ) << QStringLiteral( "240" ) << QStringLiteral( "1" ) << QStringLiteral( "3" ) << QStringLiteral( "2" ) << QStringLiteral( "5" );
expectedRows.append( row );
compareTable( table, expectedRows );
}

void TestQgsLayoutTable::attributeTableSetAttributes()

0 comments on commit 60f252c

Please sign in to comment.
You can’t perform that action at this time.