Skip to content

Commit

Permalink
Ensure QgsFieldMappingModel uses correct source fields when generatin…
Browse files Browse the repository at this point in the history
…g contexts

(cherry picked from commit d255af7)
  • Loading branch information
nyalldawson committed Jul 27, 2020
1 parent 5ef33a5 commit a193785
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
7 changes: 7 additions & 0 deletions src/gui/qgsfieldmappingmodel.cpp
Expand Up @@ -310,6 +310,8 @@ QString QgsFieldMappingModel::findExpressionForDestinationField( const QgsFieldM
void QgsFieldMappingModel::setSourceFields( const QgsFields &sourceFields )
{
mSourceFields = sourceFields;
if ( mExpressionContextGenerator )
mExpressionContextGenerator->setSourceFields( mSourceFields );
QStringList usedFields;
beginResetModel();
for ( const Field &f : qgis::as_const( mMapping ) )
Expand Down Expand Up @@ -525,3 +527,8 @@ void QgsFieldMappingModel::ExpressionContextGenerator::setBaseExpressionContextG
{
mBaseGenerator = generator;
}

void QgsFieldMappingModel::ExpressionContextGenerator::setSourceFields( const QgsFields &fields )
{
mSourceFields = fields;
}
3 changes: 2 additions & 1 deletion src/gui/qgsfieldmappingmodel.h
Expand Up @@ -165,12 +165,13 @@ class GUI_EXPORT QgsFieldMappingModel: public QAbstractTableModel
// QgsExpressionContextGenerator interface
QgsExpressionContext createExpressionContext() const override;
void setBaseExpressionContextGenerator( const QgsExpressionContextGenerator *generator );
void setSourceFields( const QgsFields &fields );

private:

const QgsExpressionContextGenerator *mBaseGenerator = nullptr;

const QgsFields mSourceFields;
QgsFields mSourceFields;

};

Expand Down

0 comments on commit a193785

Please sign in to comment.