From 1c5f416cfea9f92402ac4fa78b7a8336bd2a6253 Mon Sep 17 00:00:00 2001 From: Mathieu Pellerin Date: Sun, 9 Jul 2023 12:14:33 +0700 Subject: [PATCH] Fix the show visible feature(s) action with reprojected layers --- src/core/multifeaturelistmodel.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/core/multifeaturelistmodel.cpp b/src/core/multifeaturelistmodel.cpp index efe12ef9f8..2aac2dec26 100644 --- a/src/core/multifeaturelistmodel.cpp +++ b/src/core/multifeaturelistmodel.cpp @@ -50,7 +50,26 @@ void MultiFeatureListModel::setFeatures( QgsVectorLayer *vl, const QString &filt } if ( !extent.isEmpty() ) { - request.setFilterRect( extent ); + QgsRectangle filterExtent = extent; + if ( QgsProject::instance()->crs() != vl->crs() ) + { + QgsCoordinateTransform transform( QgsProject::instance()->crs(), vl->crs(), QgsProject::instance()->transformContext() ); + try + { + filterExtent = transform.transform( extent ); + } + catch ( const QgsException &e ) + { + Q_UNUSED( e ) + return; + } + catch ( ... ) + { + // catch any other errors + return; + } + } + request.setFilterRect( filterExtent ); } QMap requests( { { vl, request } } ); mSourceModel->setFeatures( requests );