Skip to content

Commit

Permalink
Make use of implicitly shared geometry
Browse files Browse the repository at this point in the history
  • Loading branch information
m-kuhn committed Sep 30, 2018
1 parent 6a5a602 commit 10b83d6
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 9 deletions.
Expand Up @@ -45,7 +45,7 @@ the Free Software Foundation; either version 2 of the License, or *
const QgsGeometryCheck *check() const;
const QString &layerId() const;
QgsFeatureId featureId() const;
const QgsAbstractGeometry *geometry() const;
QgsGeometry geometry() const;
virtual QgsRectangle affectedAreaBBox() const;
virtual QString description() const;
const QgsPointXY &location() const;
Expand Down
Expand Up @@ -78,9 +78,9 @@ QgsGeometryCheckError::QgsGeometryCheckError( const QgsGeometryCheck *check,
}
}

const QgsAbstractGeometry *QgsGeometryCheckError::geometry() const
QgsGeometry QgsGeometryCheckError::geometry() const
{
return mGeometry.constGet();
return mGeometry;
}

QgsRectangle QgsGeometryCheckError::affectedAreaBBox() const
Expand Down
Expand Up @@ -47,7 +47,7 @@ class ANALYSIS_EXPORT QgsGeometryCheckError
const QString &layerId() const { return mLayerId; }
QgsFeatureId featureId() const { return mFeatureId; }
// In map units
const QgsAbstractGeometry *geometry() const;
QgsGeometry geometry() const;
// In map units
virtual QgsRectangle affectedAreaBBox() const;
virtual QString description() const { return mCheck->description(); }
Expand Down
3 changes: 2 additions & 1 deletion src/analysis/vector/geometry_checker/qgsgeometrygapcheck.cpp
Expand Up @@ -161,7 +161,8 @@ bool QgsGeometryGapCheck::mergeWithNeighbor( const QMap<QString, QgsFeaturePool
QgsFeature mergeFeature;
int mergePartIdx = -1;

const QgsAbstractGeometry *errGeometry = QgsGeometryCheckerUtils::getGeomPart( err->geometry(), 0 );
const QgsGeometry geometry = err->geometry();
const QgsAbstractGeometry *errGeometry = QgsGeometryCheckerUtils::getGeomPart( geometry.constGet(), 0 );

const auto layerIds = err->neighbors().keys();
// Search for touching neighboring geometries
Expand Down
Expand Up @@ -53,7 +53,7 @@ class ANALYSIS_EXPORT QgsGeometryTypeCheck : public QgsSingleGeometryCheck
QStringList resolutionMethods() const override;
QString description() const override;
QString id() const override;
QgsGeometryCheck::CheckType checkType() const override { return factoryCheckType(); }
QgsGeometryCheck::CheckType checkType() const override;

static QList<QgsWkbTypes::GeometryType> factoryCompatibleGeometryTypes() SIP_SKIP {return {QgsWkbTypes::PointGeometry, QgsWkbTypes::LineGeometry, QgsWkbTypes::PolygonGeometry}; }
static bool factoryIsCompatible( QgsVectorLayer *layer ) SIP_SKIP { return factoryCompatibleGeometryTypes().contains( layer->geometryType() ); }
Expand Down
5 changes: 2 additions & 3 deletions src/plugins/geometry_checker/qgsgeometrycheckerresulttab.cpp
Expand Up @@ -343,11 +343,10 @@ void QgsGeometryCheckerResultTab::highlightErrors( bool current )
{
QgsGeometryCheckError *error = ui.tableWidgetErrors->item( item->row(), 0 )->data( Qt::UserRole ).value<QgsGeometryCheckError *>();

const QgsAbstractGeometry *geometry = error->geometry();
if ( ui.checkBoxHighlight->isChecked() && geometry )
const QgsGeometry geom = error->geometry();
if ( ui.checkBoxHighlight->isChecked() && !geom.isNull() )
{
QgsRubberBand *featureRubberBand = new QgsRubberBand( mIface->mapCanvas() );
QgsGeometry geom( geometry->clone() );
featureRubberBand->addGeometry( geom, nullptr );
featureRubberBand->setWidth( 5 );
featureRubberBand->setColor( Qt::yellow );
Expand Down

0 comments on commit 10b83d6

Please sign in to comment.