Skip to content

Commit 4ddd1cc

Browse files
m-kuhn3nids
authored andcommittedFeb 1, 2016
Reflect changes in QgsExpressionFieldWidget when source fields change
1 parent e453c15 commit 4ddd1cc

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed
 

‎src/gui/qgsfieldexpressionwidget.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,17 @@ void QgsFieldExpressionWidget::setLayer( QgsMapLayer *layer )
148148

149149
void QgsFieldExpressionWidget::setLayer( QgsVectorLayer *layer )
150150
{
151+
disconnect( mFieldProxyModel->sourceFieldModel()->layer(), SIGNAL( updatedFields() ), this, SLOT( reloadLayer() ) );
152+
151153
mExpressionContext.reset( new QgsExpressionContext() );
152154
mExpressionContext->appendScope( QgsExpressionContextUtils::globalScope() );
153155
mExpressionContext->appendScope( QgsExpressionContextUtils::projectScope() );
154156
if ( layer )
155157
mExpressionContext->appendScope( QgsExpressionContextUtils::layerScope( layer ) );
156158

157159
mFieldProxyModel->sourceFieldModel()->setLayer( layer );
160+
161+
connect( mFieldProxyModel->sourceFieldModel()->layer(), SIGNAL( updatedFields() ), this, SLOT( reloadLayer() ) );
158162
}
159163

160164
void QgsFieldExpressionWidget::setField( const QString &fieldName )
@@ -231,6 +235,11 @@ void QgsFieldExpressionWidget::changeEvent( QEvent* event )
231235
}
232236
}
233237

238+
void QgsFieldExpressionWidget::reloadLayer()
239+
{
240+
setLayer( mFieldProxyModel->sourceFieldModel()->layer() );
241+
}
242+
234243
void QgsFieldExpressionWidget::currentFieldChanged()
235244
{
236245
updateLineEditStyle();

‎src/gui/qgsfieldexpressionwidget.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ class GUI_EXPORT QgsFieldExpressionWidget : public QWidget
147147
protected:
148148
void changeEvent( QEvent* event ) override;
149149

150+
private slots:
151+
void reloadLayer();
152+
150153
private:
151154
QComboBox* mCombo;
152155
QToolButton* mButton;

0 commit comments

Comments
 (0)
Please sign in to comment.