diff --git a/src/gui/attributetable/qgsfeaturelistview.cpp b/src/gui/attributetable/qgsfeaturelistview.cpp index b568c2b229b6..40fa3cec6b84 100644 --- a/src/gui/attributetable/qgsfeaturelistview.cpp +++ b/src/gui/attributetable/qgsfeaturelistview.cpp @@ -230,18 +230,25 @@ void QgsFeatureListView::repaintRequested() void QgsFeatureListView::mouseMoveEvent( QMouseEvent *event ) { - QPoint pos = event->pos(); + if ( mModel ) + { + QPoint pos = event->pos(); - QModelIndex index = indexAt( pos ); + QModelIndex index = indexAt( pos ); - if ( mEditSelectionDrag ) - { - if ( index.isValid() ) - setEditSelection( mModel->mapToMaster( index ), QItemSelectionModel::ClearAndSelect ); + if ( mEditSelectionDrag ) + { + if ( index.isValid() ) + setEditSelection( mModel->mapToMaster( index ), QItemSelectionModel::ClearAndSelect ); + } + else + { + selectRow( index, false ); + } } else { - selectRow( index, false ); + QgsDebugMsg( QStringLiteral( "No model assigned to this view" ) ); } } diff --git a/src/gui/qgsrelationeditorwidget.cpp b/src/gui/qgsrelationeditorwidget.cpp index 21d30d403f87..227b50570c72 100644 --- a/src/gui/qgsrelationeditorwidget.cpp +++ b/src/gui/qgsrelationeditorwidget.cpp @@ -195,7 +195,7 @@ void QgsRelationEditorWidget::setRelationFeature( const QgsRelation &relation, c // If it is already initialized, it has been set visible before and the currently shown feature is changing // and the widget needs updating - if ( mVisible ) + if ( mVisible && mRelation.isValid() ) { QgsFeatureRequest myRequest = mRelation.getRelatedFeaturesRequest( mFeature ); mDualView->init( mRelation.referencingLayer(), mEditorContext.mapCanvas(), myRequest, mEditorContext ); @@ -732,7 +732,7 @@ void QgsRelationEditorWidget::updateUi() mDualView->init( mNmRelation.referencedLayer(), mEditorContext.mapCanvas(), nmRequest, mEditorContext ); } - else + else if ( mRelation.referencingLayer() ) { mDualView->init( mRelation.referencingLayer(), mEditorContext.mapCanvas(), myRequest, mEditorContext ); }