Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
migrate locator filters
  • Loading branch information
3nids committed Jan 16, 2023
1 parent 57cd231 commit 8d525ee
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 17 deletions.
8 changes: 4 additions & 4 deletions src/app/locator/qgslocatoroptionswidget.cpp
Expand Up @@ -330,26 +330,26 @@ void QgsLocatorFiltersModel::commitChanges()
if ( !activePrefix.isEmpty() && activePrefix != filter->prefix() )
{
filter->setActivePrefix( activePrefix );
QgsLocator::settingsLocatorFilterPrefix.setValue( activePrefix, filter->name() );
QgsLocator::settingsLocatorFilterPrefix->setValue( activePrefix, filter->name() );
}
else
{
filter->setActivePrefix( QString() );
QgsLocator::settingsLocatorFilterPrefix.remove( filter->name() );
QgsLocator::settingsLocatorFilterPrefix->remove( filter->name() );
}
}
QHash< QgsLocatorFilter *, bool >::const_iterator it = mEnabledChanges.constBegin();
for ( ; it != mEnabledChanges.constEnd(); ++it )
{
QgsLocatorFilter *filter = it.key();
QgsLocator::settingsLocatorFilterEnabled.setValue( it.value(), filter->name() );
QgsLocator::settingsLocatorFilterEnabled->setValue( it.value(), filter->name() );
filter->setEnabled( it.value() );
}
it = mDefaultChanges.constBegin();
for ( ; it != mDefaultChanges.constEnd(); ++it )
{
QgsLocatorFilter *filter = it.key();
QgsLocator::settingsLocatorFilterDefault.setValue( it.value(), filter->name() );
QgsLocator::settingsLocatorFilterDefault->setValue( it.value(), filter->name() );
filter->setUseWithoutPrefix( it.value() );
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/core/locator/qgslocator.cpp
Expand Up @@ -96,9 +96,9 @@ void QgsLocator::registerFilter( QgsLocatorFilter *filter )
filter->setParent( this );

// restore settings
bool enabled = QgsLocator::settingsLocatorFilterEnabled.value( filter->name() );
bool byDefault = QgsLocator::settingsLocatorFilterDefault.valueWithDefaultOverride( filter->useWithoutPrefix(), filter->name() );
QString prefix = QgsLocator::settingsLocatorFilterPrefix.valueWithDefaultOverride( filter->prefix(), filter->name() );
bool enabled = QgsLocator::settingsLocatorFilterEnabled->value( filter->name() );
bool byDefault = QgsLocator::settingsLocatorFilterDefault->valueWithDefaultOverride( filter->useWithoutPrefix(), filter->name() );
QString prefix = QgsLocator::settingsLocatorFilterPrefix->valueWithDefaultOverride( filter->prefix(), filter->name() );
if ( prefix.isEmpty() )
{
prefix = filter->prefix();
Expand Down
8 changes: 5 additions & 3 deletions src/core/locator/qgslocator.h
Expand Up @@ -154,12 +154,14 @@ class CORE_EXPORT QgsLocator : public QObject
QStringList completionList() const {return mAutocompletionList;}

#ifndef SIP_RUN
static inline QgsSettingsTreeNamedListElement *sTreeLocatorFilters = QgsSettings::sTreeQgis->createNamedListElement( QStringLiteral( "locator-filters" ) );

//! Settings entry locator filter enabled
static const inline QgsSettingsEntryBool settingsLocatorFilterEnabled = QgsSettingsEntryBool( QStringLiteral( "enabled_%1" ), QgsSettings::Prefix::GUI_LOCATORFILTERS, true, QObject::tr( "Locator filter enabled" ) );
static inline QgsSettingsEntryBool *settingsLocatorFilterEnabled = new QgsSettingsEntryBool( QStringLiteral( "enabled" ), sTreeLocatorFilters, true, QObject::tr( "Locator filter enabled" ) );
//! Settings entry locator filter default value
static const inline QgsSettingsEntryBool settingsLocatorFilterDefault = QgsSettingsEntryBool( QStringLiteral( "default_%1" ), QgsSettings::Prefix::GUI_LOCATORFILTERS, false, QObject::tr( "Locator filter default value" ) );
static inline QgsSettingsEntryBool *settingsLocatorFilterDefault = new QgsSettingsEntryBool( QStringLiteral( "default" ), sTreeLocatorFilters, false, QObject::tr( "Locator filter default value" ) );
//! Settings entry locator filter prefix
static const inline QgsSettingsEntryString settingsLocatorFilterPrefix = QgsSettingsEntryString( QStringLiteral( "prefix_%1" ), QgsSettings::Prefix::GUI_LOCATORFILTERS, QString(), QObject::tr( "Locator filter prefix" ) );
static inline QgsSettingsEntryString *settingsLocatorFilterPrefix = new QgsSettingsEntryString( QStringLiteral( "prefix" ), sTreeLocatorFilters, QString(), QObject::tr( "Locator filter prefix" ) );
#endif

signals:
Expand Down
1 change: 0 additions & 1 deletion src/core/settings/qgssettings.h
Expand Up @@ -125,7 +125,6 @@ class CORE_EXPORT QgsSettings : public QObject
static const inline char *CORE_LAYOUT = "core/Layout";
static const inline char *GEOMETRYVALIDATION = "geometry_validation";
static const inline char *GPS = "gps";
static const inline char *GUI_LOCATORFILTERS = "gui/locator_filters";
static const inline char *GUI_QGIS = "gui/qgis";
static const inline char *LOCALE = "locale";
static const inline char *MAP = "Map";
Expand Down
30 changes: 24 additions & 6 deletions src/core/settings/qgssettingsregistrycore.cpp
Expand Up @@ -40,10 +40,6 @@ QgsSettingsRegistryCore::QgsSettingsRegistryCore()
{
addSettingsEntry( &QgsLayout::settingsSearchPathForTemplates );

addSettingsEntry( &QgsLocator::settingsLocatorFilterEnabled );
addSettingsEntry( &QgsLocator::settingsLocatorFilterDefault );
addSettingsEntry( &QgsLocator::settingsLocatorFilterPrefix );

addSettingsEntry( &QgsNetworkAccessManager::settingsNetworkTimeout );

addSettingsEntry( &QgsNewsFeedParser::settingsFeedLastFetchTime );
Expand Down Expand Up @@ -141,6 +137,19 @@ void QgsSettingsRegistryCore::migrateOldSettings()
// single settings - added in 3.30
settingsDigitizingLineColor->copyValueFromKeys( QStringLiteral( "qgis/digitizing/line_color_red" ), QStringLiteral( "qgis/digitizing/line_color_green" ), QStringLiteral( "qgis/digitizing/line_color_blue" ), QStringLiteral( "qgis/digitizing/line_color_alpha" ) );

// locator filters - added in 3.30
{
QgsSettings settings;
settings.beginGroup( QStringLiteral( "gui/locator_filters" ) );
const QStringList filters = settings.childGroups();
for ( const QString &filter : filters )
{
QgsLocator::settingsLocatorFilterEnabled->copyValueFromKey( QStringLiteral( "gui/locator_filters/enabled_%1" ), {filter}, true );
QgsLocator::settingsLocatorFilterDefault->copyValueFromKey( QStringLiteral( "gui/locator_filters/default_%1" ), {filter}, true );
QgsLocator::settingsLocatorFilterPrefix->copyValueFromKey( QStringLiteral( "gui/locator_filters/prefix_%1" ), {filter}, true );
}
}

// connections settings - added in 3.30
const QStringList services = {QStringLiteral( "WMS" ), QStringLiteral( "WFS" ), QStringLiteral( "WCS" ), QStringLiteral( "GeoNode" )};
for ( const QString &service : services )
Expand Down Expand Up @@ -253,6 +262,17 @@ void QgsSettingsRegistryCore::backwardCompatibility()
// single settings - added in 3.30
settingsDigitizingLineColor->copyValueToKeys( QStringLiteral( "qgis/digitizing/line_color_red" ), QStringLiteral( "qgis/digitizing/line_color_green" ), QStringLiteral( "qgis/digitizing/line_color_blue" ), QStringLiteral( "qgis/digitizing/line_color_alpha" ) );

// locator filters - added in 3.30
{
const QStringList filters = QgsLocator::sTreeLocatorFilters->items();
for ( const QString &filter : filters )
{
QgsLocator::settingsLocatorFilterEnabled->copyValueToKey( QStringLiteral( "gui/locator_filters/enabled_%1" ), {filter} );
QgsLocator::settingsLocatorFilterDefault->copyValueToKey( QStringLiteral( "gui/locator_filters/default_%1" ), {filter} );
QgsLocator::settingsLocatorFilterPrefix->copyValueToKey( QStringLiteral( "gui/locator_filters/prefix_%1" ), {filter} );
}
}

// OWS connections settings - added in 3.30
{
const QStringList services = {QStringLiteral( "WMS" ), QStringLiteral( "WFS" ), QStringLiteral( "WCS" ), QStringLiteral( "GeoNode" )};
Expand Down Expand Up @@ -306,8 +326,6 @@ void QgsSettingsRegistryCore::backwardCompatibility()
for ( const QString &connection : connections )
{
// do not overwrite already set setting
if ( QgsVectorTileProviderConnection::settingsUrl->exists( connection ) )
continue;
QgsVectorTileProviderConnection::settingsUrl->copyValueToKey( QStringLiteral( "qgis/connections-vector-tile/%1/url" ), {connection} );
QgsVectorTileProviderConnection::settingsZmin->copyValueToKey( QStringLiteral( "qgis/connections-vector-tile/%1/zmin" ), {connection} );
QgsVectorTileProviderConnection::settingsZmax->copyValueToKey( QStringLiteral( "qgis/connections-vector-tile/%1/zmax" ), {connection} );
Expand Down

0 comments on commit 8d525ee

Please sign in to comment.