Skip to content

Commit

Permalink
- Fix formLayout to gridLayout
Browse files Browse the repository at this point in the history
- override fetchResults but doesn't get called. Help needed!
  • Loading branch information
uprel committed Feb 25, 2025
1 parent 518bd8d commit c03a524
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
23 changes: 19 additions & 4 deletions src/app/locator/qgsnominatimlocatorfilter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include "moc_qgsnominatimlocatorfilter.cpp"
#include "qgsgeocoder.h"
#include "qgslocatorfilter.h"
#include "qgsnominatimgeocoder.h"
#include "qgssettings.h"
#include "qgsmessagebaritem.h"
#include "qgsmessagebar.h"
Expand All @@ -35,6 +36,17 @@ QgsNominatimLocatorFilter::QgsNominatimLocatorFilter( QgsGeocoderInterface *geoc
setUseWithoutPrefix( false );
}

void QgsNominatimLocatorFilter::fetchResults(const QString &string, const QgsLocatorContext &context, QgsFeedback *feedback)
{
QgsSettings settings;
QString countryCodes = settings.value( "locator_filters/nominatim_geocoder/country_codes", "", QgsSettings::App ).toString().trimmed();

QgsNominatimGeocoder *nominatimGeocoder = dynamic_cast<QgsNominatimGeocoder *>( geocoder() );
nominatimGeocoder->setCountryCodes( countryCodes );

QgsAbstractGeocoderLocatorFilter::fetchResults( string, context, feedback);
}

void QgsNominatimLocatorFilter::triggerResult( const QgsLocatorResult &result )
{
QgsSettings settings;
Expand All @@ -58,17 +70,20 @@ void QgsNominatimLocatorFilter::openConfigWidget( QWidget *parent )
auto dlg = std::make_unique<QDialog>( parent );
dlg->setWindowTitle( "Nominatim Geocoder Country Codes" );

QGridLayout *formLayout = new QGridLayout;
QGridLayout *layout = new QGridLayout;
layout->setSizeConstraint(QLayout::SetFixedSize);
QLabel *label = new QLabel( tr( "Two letter Country Codes (comma-separated)" ) );
QLineEdit *countryCodesEdit = new QLineEdit( dlg.get() );

// Load existing settings
QgsSettings settings;
countryCodesEdit->setText( settings.value( "locator_filters/nominatim_geocoder/country_codes", "", QgsSettings::App ).toString() );

formLayout->addRow( tr( "Two letter Country Codes (comma-separated)" ), countryCodesEdit );
layout->addWidget( label );
layout->addWidget( countryCodesEdit );
QDialogButtonBox *buttonbBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, dlg.get() );
formLayout->addRow( buttonbBox );
dlg->setLayout( formLayout );
layout->addWidget( buttonbBox );
dlg->setLayout( layout );

// Save settings when dialog accepted
connect( buttonbBox, &QDialogButtonBox::accepted, dlg.get(), [&]() {
Expand Down
1 change: 1 addition & 0 deletions src/app/locator/qgsnominatimlocatorfilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ class APP_EXPORT QgsNominatimLocatorFilter : public QgsGeocoderLocatorFilter
public:
QgsNominatimLocatorFilter( QgsGeocoderInterface *geocoder, QgsMapCanvas *canvas );

void fetchResults( const QString &string, const QgsLocatorContext &context, QgsFeedback *feedback ) override;
void triggerResult( const QgsLocatorResult &result ) override;
bool hasConfigWidget() const override { return true; }
void openConfigWidget( QWidget *parent ) override;
Expand Down

0 comments on commit c03a524

Please sign in to comment.