QgsRelationReferenceWidget::~QgsRelationReferenceWidget() { deleteHighlight(); unsetMapTool(); if ( mMapTool ) delete mMapTool; }
void QgsRelationReferenceWidget::featureIdentified( const QgsFeature &feature ) { if ( mReadOnlySelector ) { QgsExpression expr( mReferencedLayer->displayExpression() ); QgsExpressionContext context( QgsExpressionContextUtils::globalProjectLayerScopes( mReferencedLayer ) ); context.setFeature( feature ); QString title = expr.evaluate( &context ).toString(); if ( expr.hasEvalError() ) { title = feature.attribute( mReferencedFieldIdx ).toString(); } mLineEdit->setText( title ); mForeignKey = feature.attribute( mReferencedFieldIdx ); mFeature = feature; } else { mComboBox->setCurrentIndex( mComboBox->findData( feature.attribute( mReferencedFieldIdx ), QgsFeatureFilterModel::Role::IdentifierValueRole ) ); mFeature = feature; } mRemoveFKButton->setEnabled( mIsEditable ); highlightFeature( feature ); updateAttributeEditorFrame( feature ); emit foreignKeyChanged( foreignKey() ); unsetMapTool(); }
void QgsRelationReferenceWidget::setRelationEditable( bool editable ) { if ( !editable ) unsetMapTool(); mComboBox->setEnabled( editable ); mMapIdentificationButton->setEnabled( editable ); mRemoveFKButton->setEnabled( editable ); mIsEditable = editable; }