Skip to content

Commit d4ac9a7

Browse files
3nidsm-kuhn
authored andcommitted
do not zoom to feature if no extent
1 parent 579c97e commit d4ac9a7

File tree

7 files changed

+11
-8
lines changed

7 files changed

+11
-8
lines changed

python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheck.sip.in

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111

1212

13-
1413
class QgsGeometryCheck
1514
{
1615
%Docstring

src/analysis/vector/geometry_checker/qgsgeometrycheck.h

-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131
class QgsGeometryCheckError;
3232
class QgsFeaturePool;
3333

34-
#define FEATUREID_NULL std::numeric_limits<QgsFeatureId>::min()
35-
3634
class ANALYSIS_EXPORT QgsGeometryCheck
3735
{
3836
Q_GADGET

src/analysis/vector/geometry_checker/qgsgeometrygapcheck.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include "qgsgeometrycheck.h"
2222
#include "qgsgeometrycheckerror.h"
23+
#include "qgsfeatureid.h"
2324

2425
class ANALYSIS_EXPORT QgsGeometryGapCheckError : public QgsGeometryCheckError
2526
{
@@ -30,7 +31,7 @@ class ANALYSIS_EXPORT QgsGeometryGapCheckError : public QgsGeometryCheckError
3031
const QMap<QString, QgsFeatureIds> &neighbors,
3132
double area,
3233
const QgsRectangle &gapAreaBBox )
33-
: QgsGeometryCheckError( check, layerId, FEATUREID_NULL, geometry, geometry.constGet()->centroid(), QgsVertexId(), area, ValueArea )
34+
: QgsGeometryCheckError( check, layerId, FID_NULL, geometry, geometry.constGet()->centroid(), QgsVertexId(), area, ValueArea )
3435
, mNeighbors( neighbors )
3536
, mGapAreaBBox( gapAreaBBox )
3637
{

src/app/qgsgeometryvalidationdock.cpp

+5-2
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,11 @@ void QgsGeometryValidationDock::zoomToFeature()
110110
return;
111111

112112
QgsRectangle featureExtent = currentIndex().data( QgsGeometryValidationModel::FeatureExtentRole ).value<QgsRectangle>();
113-
QgsRectangle mapExtent = mLayerTransform.transform( featureExtent );
114-
mMapCanvas->zoomToFeatureExtent( mapExtent );
113+
if ( !featureExtent.isEmpty() )
114+
{
115+
QgsRectangle mapExtent = mLayerTransform.transform( featureExtent );
116+
mMapCanvas->zoomToFeatureExtent( mapExtent );
117+
}
115118
}
116119

117120
void QgsGeometryValidationDock::triggerTopologyChecks()

src/app/qgsgeometryvalidationmodel.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ QVariant QgsGeometryValidationModel::data( const QModelIndex &index, int role )
7474
case FeatureExtentRole:
7575
{
7676
const QgsFeatureId fid = topologyError->featureId();
77+
if ( FID_IS_NULL( fid ) )
78+
return QgsRectangle();
7779
const QgsFeature feature = mCurrentLayer->getFeature( fid ); // TODO: this should be cached!
7880
return feature.geometry().boundingBox();
7981
}

src/plugins/geometry_checker/qgsgeometrycheckerfixsummarydialog.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ void QgsGeometryCheckerFixSummaryDialog::addError( QTableWidget *table, QgsGeome
8181
table->insertRow( row );
8282
table->setItem( row, 0, new QTableWidgetItem( !error->layerId().isEmpty() ? mChecker->featurePools()[error->layerId()]->layer()->name() : "" ) );
8383
QTableWidgetItem *idItem = new QTableWidgetItem();
84-
idItem->setData( Qt::EditRole, error->featureId() != FEATUREID_NULL ? QVariant( error->featureId() ) : QVariant() );
84+
idItem->setData( Qt::EditRole, error->featureId() != FID_NULL ? QVariant( error->featureId() ) : QVariant() );
8585
table->setItem( row, 1, idItem );
8686
table->setItem( row, 2, new QTableWidgetItem( error->description() ) );
8787
table->setItem( row, 3, new QTableWidgetItem( posStr ) );

src/plugins/geometry_checker/qgsgeometrycheckerresulttab.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ void QgsGeometryCheckerResultTab::addError( QgsGeometryCheckError *error )
151151

152152
ui.tableWidgetErrors->insertRow( row );
153153
QTableWidgetItem *idItem = new QTableWidgetItem();
154-
idItem->setData( Qt::EditRole, error->featureId() != FEATUREID_NULL ? QVariant( error->featureId() ) : QVariant() );
154+
idItem->setData( Qt::EditRole, error->featureId() != FID_NULL ? QVariant( error->featureId() ) : QVariant() );
155155
ui.tableWidgetErrors->setItem( row, 0, new QTableWidgetItem( !error->layerId().isEmpty() ? mChecker->featurePools()[error->layerId()]->layer()->name() : "" ) );
156156
ui.tableWidgetErrors->setItem( row, 1, idItem );
157157
ui.tableWidgetErrors->setItem( row, 2, new QTableWidgetItem( error->description() ) );

0 commit comments

Comments
 (0)