Skip to content

Commit

Permalink
Reflect changes in QgsExpressionFieldWidget when source fields change
Browse files Browse the repository at this point in the history
  • Loading branch information
m-kuhn authored and 3nids committed Feb 1, 2016
1 parent e453c15 commit 4ddd1cc
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/gui/qgsfieldexpressionwidget.cpp
Expand Up @@ -148,13 +148,17 @@ void QgsFieldExpressionWidget::setLayer( QgsMapLayer *layer )

void QgsFieldExpressionWidget::setLayer( QgsVectorLayer *layer )
{
disconnect( mFieldProxyModel->sourceFieldModel()->layer(), SIGNAL( updatedFields() ), this, SLOT( reloadLayer() ) );

mExpressionContext.reset( new QgsExpressionContext() );
mExpressionContext->appendScope( QgsExpressionContextUtils::globalScope() );
mExpressionContext->appendScope( QgsExpressionContextUtils::projectScope() );
if ( layer )
mExpressionContext->appendScope( QgsExpressionContextUtils::layerScope( layer ) );

mFieldProxyModel->sourceFieldModel()->setLayer( layer );

connect( mFieldProxyModel->sourceFieldModel()->layer(), SIGNAL( updatedFields() ), this, SLOT( reloadLayer() ) );
}

void QgsFieldExpressionWidget::setField( const QString &fieldName )
Expand Down Expand Up @@ -231,6 +235,11 @@ void QgsFieldExpressionWidget::changeEvent( QEvent* event )
}
}

void QgsFieldExpressionWidget::reloadLayer()
{
setLayer( mFieldProxyModel->sourceFieldModel()->layer() );
}

void QgsFieldExpressionWidget::currentFieldChanged()
{
updateLineEditStyle();
Expand Down
3 changes: 3 additions & 0 deletions src/gui/qgsfieldexpressionwidget.h
Expand Up @@ -147,6 +147,9 @@ class GUI_EXPORT QgsFieldExpressionWidget : public QWidget
protected:
void changeEvent( QEvent* event ) override;

private slots:
void reloadLayer();

private:
QComboBox* mCombo;
QToolButton* mButton;
Expand Down

0 comments on commit 4ddd1cc

Please sign in to comment.