Skip to content

Commit 39e1f89

Browse files
committed
[evis] Fix crash when layer contains virtual fields
Fixes #19792
1 parent 4f2f9f7 commit 39e1f89

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/plugins/evis/eventbrowser/evisgenericeventbrowsergui.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ bool eVisGenericEventBrowserGui::initBrowser()
230230
//verify that the active layer is a vector layer
231231
if ( QgsMapLayer::VectorLayer == mInterface->activeLayer()->type() )
232232
{
233-
mVectorLayer = ( QgsVectorLayer * )mInterface->activeLayer();
233+
mVectorLayer = qobject_cast< QgsVectorLayer * >( mInterface->activeLayer() );
234234
mCanvas = mInterface->mapCanvas();
235235
}
236236
else
@@ -254,7 +254,7 @@ bool eVisGenericEventBrowserGui::initBrowser()
254254
//verify that the active layer is a vector layer
255255
if ( QgsMapLayer::VectorLayer == mCanvas->currentLayer()->type() )
256256
{
257-
mVectorLayer = ( QgsVectorLayer * )mCanvas->currentLayer();
257+
mVectorLayer = qobject_cast< QgsVectorLayer * >( mCanvas->currentLayer() );
258258
}
259259
else
260260
{
@@ -305,7 +305,7 @@ bool eVisGenericEventBrowserGui::initBrowser()
305305
return false;
306306
}
307307

308-
QgsFields myFields = mDataProvider->fields();
308+
QgsFields myFields = mVectorLayer->fields();
309309
mIgnoreEvent = true; //Ignore indexChanged event when adding items to combo boxes
310310
for ( int x = 0; x < myFields.count(); x++ )
311311
{
@@ -589,7 +589,7 @@ QgsFeature *eVisGenericEventBrowserGui::featureAtId( QgsFeatureId id )
589589
{
590590
//This method was originally necessary because delimited text data provider did not support featureAtId()
591591
//It has mostly been stripped down now
592-
if ( mDataProvider && mFeatureIds.size() != 0 )
592+
if ( mVectorLayer && mFeatureIds.size() != 0 )
593593
{
594594
if ( !mVectorLayer->getFeatures( QgsFeatureRequest().setFilterFid( id ) ).nextFeature( mFeature ) )
595595
{
@@ -617,7 +617,7 @@ void eVisGenericEventBrowserGui::loadRecord()
617617
QString myCompassBearingField = cboxCompassBearingField->currentText();
618618
QString myCompassOffsetField = cboxCompassOffsetField->currentText();
619619
QString myEventImagePathField = cboxEventImagePathField->currentText();
620-
QgsFields myFields = mDataProvider->fields();
620+
QgsFields myFields = mVectorLayer->fields();
621621
QgsAttributes myAttrs = myFeature->attributes();
622622
//loop through the attributes and display their contents
623623
for ( int i = 0; i < myAttrs.count(); ++i )
@@ -859,7 +859,7 @@ void eVisGenericEventBrowserGui::cboxEventImagePathField_currentIndexChanged( in
859859
{
860860
mConfiguration.setEventImagePathField( cboxEventImagePathField->currentText() );
861861

862-
QgsFields myFields = mDataProvider->fields();
862+
QgsFields myFields = mVectorLayer->fields();
863863
QgsFeature *myFeature = featureAtId( mFeatureIds.at( mCurrentFeatureIndex ) );
864864

865865
if ( !myFeature )
@@ -887,7 +887,7 @@ void eVisGenericEventBrowserGui::cboxCompassBearingField_currentIndexChanged( in
887887
{
888888
mConfiguration.setCompassBearingField( cboxCompassBearingField->currentText() );
889889

890-
QgsFields myFields = mDataProvider->fields();
890+
QgsFields myFields = mVectorLayer->fields();
891891
QgsFeature *myFeature = featureAtId( mFeatureIds.at( mCurrentFeatureIndex ) );
892892

893893
if ( !myFeature )
@@ -915,7 +915,7 @@ void eVisGenericEventBrowserGui::cboxCompassOffsetField_currentIndexChanged( int
915915
{
916916
mConfiguration.setCompassOffsetField( cboxCompassOffsetField->currentText() );
917917

918-
QgsFields myFields = mDataProvider->fields();
918+
QgsFields myFields = mVectorLayer->fields();
919919
QgsFeature *myFeature = featureAtId( mFeatureIds.at( mCurrentFeatureIndex ) );
920920

921921
if ( !myFeature )

0 commit comments

Comments
 (0)