From ee8967aa97aded409accca990350ab06722830c5 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Fri, 28 Feb 2025 08:53:14 +1000 Subject: [PATCH] Add missing clone method to QgsNominatimLocatorFilter Fixes missing accreditation message when triggering results --- .../gui/auto_generated/qgsgeocoderlocatorfilter.sip.in | 2 ++ python/gui/auto_generated/qgsgeocoderlocatorfilter.sip.in | 2 ++ src/app/locator/qgsnominatimlocatorfilter.cpp | 7 +++++++ src/app/locator/qgsnominatimlocatorfilter.h | 1 + src/gui/qgsgeocoderlocatorfilter.h | 8 ++++++-- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/python/PyQt6/gui/auto_generated/qgsgeocoderlocatorfilter.sip.in b/python/PyQt6/gui/auto_generated/qgsgeocoderlocatorfilter.sip.in index c48a838919ea..186f8fa85b85 100644 --- a/python/PyQt6/gui/auto_generated/qgsgeocoderlocatorfilter.sip.in +++ b/python/PyQt6/gui/auto_generated/qgsgeocoderlocatorfilter.sip.in @@ -49,6 +49,8 @@ filter. virtual QgsLocatorFilter *clone() const /Factory/; + protected: + }; /************************************************************************ diff --git a/python/gui/auto_generated/qgsgeocoderlocatorfilter.sip.in b/python/gui/auto_generated/qgsgeocoderlocatorfilter.sip.in index c48a838919ea..186f8fa85b85 100644 --- a/python/gui/auto_generated/qgsgeocoderlocatorfilter.sip.in +++ b/python/gui/auto_generated/qgsgeocoderlocatorfilter.sip.in @@ -49,6 +49,8 @@ filter. virtual QgsLocatorFilter *clone() const /Factory/; + protected: + }; /************************************************************************ diff --git a/src/app/locator/qgsnominatimlocatorfilter.cpp b/src/app/locator/qgsnominatimlocatorfilter.cpp index 90d2243fa539..d3dad7f4a665 100644 --- a/src/app/locator/qgsnominatimlocatorfilter.cpp +++ b/src/app/locator/qgsnominatimlocatorfilter.cpp @@ -33,6 +33,13 @@ QgsNominatimLocatorFilter::QgsNominatimLocatorFilter( QgsGeocoderInterface *geoc setUseWithoutPrefix( false ); } +QgsNominatimLocatorFilter *QgsNominatimLocatorFilter::clone() const +{ + auto filter = std::make_unique< QgsNominatimLocatorFilter >( geocoder(), mCanvas ); + filter->setFetchResultsDelay( fetchResultsDelay() ); + return filter.release(); +} + void QgsNominatimLocatorFilter::triggerResult( const QgsLocatorResult &result ) { QgsSettings settings; diff --git a/src/app/locator/qgsnominatimlocatorfilter.h b/src/app/locator/qgsnominatimlocatorfilter.h index 5e226a120592..1ce39ba24fb8 100644 --- a/src/app/locator/qgsnominatimlocatorfilter.h +++ b/src/app/locator/qgsnominatimlocatorfilter.h @@ -28,6 +28,7 @@ class APP_EXPORT QgsNominatimLocatorFilter : public QgsGeocoderLocatorFilter public: QgsNominatimLocatorFilter( QgsGeocoderInterface *geocoder, QgsMapCanvas *canvas ); + QgsNominatimLocatorFilter *clone() const override SIP_FACTORY; void triggerResult( const QgsLocatorResult &result ) override; }; diff --git a/src/gui/qgsgeocoderlocatorfilter.h b/src/gui/qgsgeocoderlocatorfilter.h index 1e3c0070bec7..32d78d8313f8 100644 --- a/src/gui/qgsgeocoderlocatorfilter.h +++ b/src/gui/qgsgeocoderlocatorfilter.h @@ -59,10 +59,14 @@ class GUI_EXPORT QgsGeocoderLocatorFilter : public QgsAbstractGeocoderLocatorFil QgsLocatorFilter *clone() const override SIP_FACTORY; + protected: + /** + * Associated map canvas + */ + QgsMapCanvas *mCanvas = nullptr; + private: void handleGeocodeResult( const QgsGeocoderResult &result ) override; - - QgsMapCanvas *mCanvas = nullptr; }; #endif // QGSGEOCODERLOCATORFILTER_H