Skip to content

Commit 0f20c13

Browse files
authoredMar 21, 2019
Merge pull request #9576 from m-kuhn/geometry_validation_invalid_feature_master
Only change map extent when manually changing the active error
2 parents 7cb1695 + 4f2a78b commit 0f20c13

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed
 

‎src/app/qgsgeometryvalidationdock.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ void QgsGeometryValidationDock::setGeometryValidationModel( QgsGeometryValidatio
8585
mErrorListView->setModel( mGeometryValidationModel );
8686

8787
connect( mErrorListView->selectionModel(), &QItemSelectionModel::currentChanged, this, &QgsGeometryValidationDock::onCurrentErrorChanged );
88+
connect( mErrorListView->selectionModel(), &QItemSelectionModel::currentChanged, this, [this]() { updateMapCanvasExtent(); } );
8889
connect( mGeometryValidationModel, &QgsGeometryValidationModel::dataChanged, this, &QgsGeometryValidationDock::onDataChanged );
8990
connect( mGeometryValidationModel, &QgsGeometryValidationModel::rowsRemoved, this, &QgsGeometryValidationDock::updateCurrentError );
9091
connect( mGeometryValidationModel, &QgsGeometryValidationModel::rowsInserted, this, &QgsGeometryValidationDock::onRowsInserted );
@@ -243,7 +244,10 @@ void QgsGeometryValidationDock::onCurrentErrorChanged( const QModelIndex &curren
243244

244245
bool hasFeature = !FID_IS_NULL( current.data( QgsGeometryValidationModel::ErrorFeatureIdRole ) );
245246
mZoomToFeatureButton->setEnabled( hasFeature );
247+
}
246248

249+
void QgsGeometryValidationDock::updateMapCanvasExtent()
250+
{
247251
if ( !mPreventZoomToError )
248252
{
249253
switch ( mLastZoomToAction )

‎src/app/qgsgeometryvalidationdock.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class QgsGeometryValidationDock : public QgsDockWidget, public Ui_QgsGeometryVal
4646
private slots:
4747
void updateCurrentError();
4848
void onCurrentErrorChanged( const QModelIndex &current, const QModelIndex &previous );
49+
void updateMapCanvasExtent();
4950
void onCurrentLayerChanged( QgsMapLayer *layer );
5051
void onLayerEditingStatusChanged();
5152
void onLayerDestroyed( QObject *layer );

‎src/app/qgsgeometryvalidationmodel.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,12 +184,18 @@ QVariant QgsGeometryValidationModel::data( const QModelIndex &index, int role )
184184

185185
case ErrorLocationGeometryRole:
186186
{
187+
if ( featureItem.errors.empty() )
188+
return QVariant();
189+
187190
QgsSingleGeometryCheckError *error = featureItem.errors.first().get();
188191
return error->errorLocation();
189192
}
190193

191194
case ProblemExtentRole:
192195
{
196+
if ( featureItem.errors.empty() )
197+
return QVariant();
198+
193199
QgsSingleGeometryCheckError *error = featureItem.errors.first().get();
194200
return error->errorLocation().boundingBox();
195201
}

0 commit comments

Comments
 (0)
Please sign in to comment.