35#include "qgsogrproviderutils.h"
57using namespace Qt::StringLiterals;
218void QgsSettingsRegistryCore::migrateOldSettings()
262 settingsDefaultCanvasColor->copyValueFromKeys( u
"qgis/default_canvas_color_red"_s, u
"qgis/default_canvas_color_green"_s, u
"qgis/default_canvas_color_blue"_s, QString(),
true );
263 settingsDefaultCanvasColor->copyValueFromKeys( u
"/qgis/default_canvas_color_red"_s, u
"/qgis/default_canvas_color_green"_s, u
"/qgis/default_canvas_color_blue"_s, QString(),
true );
265 ->copyValueFromKeys( u
"qgis/default_selection_color_red"_s, u
"qgis/default_selection_color_green"_s, u
"qgis/default_selection_color_blue"_s, u
"qgis/default_selection_color_alpha"_s,
true );
267 ->copyValueFromKeys( u
"/qgis/default_selection_color_red"_s, u
"/qgis/default_selection_color_green"_s, u
"/qgis/default_selection_color_blue"_s, u
"/qgis/default_selection_color_alpha"_s,
true );
269#if defined( HAVE_QTSERIALPORT )
270 QgsGpsDetector::settingsGpsStopBits->copyValueFromKey( u
"core/gps/stop_bits"_s,
true );
271 QgsGpsDetector::settingsGpsFlowControl->copyValueFromKey( u
"core/gps/flow_control"_s,
true );
272 QgsGpsDetector::settingsGpsDataBits->copyValueFromKey( u
"core/gps/data_bits"_s,
true );
273 QgsGpsDetector::settingsGpsParity->copyValueFromKey( u
"core/gps/parity"_s,
true );
300 QgsOgrProviderUtils::settingsWalForSqlite3->copyValueFromKey( u
"qgis/walForSqlite3"_s,
true );
325 settingsDigitizingLineColor->copyValueFromKeys( u
"qgis/digitizing/line_color_red"_s, u
"qgis/digitizing/line_color_green"_s, u
"qgis/digitizing/line_color_blue"_s, u
"qgis/digitizing/line_color_alpha"_s,
true );
326 settingsDigitizingFillColor->copyValueFromKeys( u
"qgis/digitizing/fill_color_red"_s, u
"qgis/digitizing/fill_color_green"_s, u
"qgis/digitizing/fill_color_blue"_s, u
"qgis/digitizing/fill_color_alpha"_s,
true );
331 QString name = setting->name();
336 name = u
"reuseLastValues"_s;
340 name.replace(
'-',
'_' );
342 setting->copyValueFromKey( QString(
"qgis/digitizing/%1" ).arg( name ),
true );
349 locatorSettings.beginGroup( u
"gui/locator_filters"_s );
350 const QStringList childKeys = locatorSettings.childKeys();
351 locatorSettings.endGroup();
352 for (
const QString &childKey : childKeys )
354 if ( childKey.startsWith(
"enabled"_L1 ) )
356 QString filter = childKey;
357 filter.remove( u
"enabled_"_s );
366 const QStringList services = { u
"WMS"_s, u
"WFS"_s, u
"WCS"_s };
367 for (
const QString &service : services )
369 QgsSettings settings;
370 settings.
beginGroup( u
"qgis/connections-%1"_s.arg( service.toLower() ) );
371 const QStringList connections = settings.
childGroups();
372 if ( connections.count() == 0 )
374 for (
const QString &connection : connections )
376 if ( settings.
value( u
"%1/url"_s.arg( connection ) ).toString().isEmpty() )
397 settings.
remove( u
"http-header"_s );
405 if ( settings.
contains( u
"selected"_s ) )
411 QgsSettings settings;
412 settings.
beginGroup( u
"qgis/connections-vector-tile"_s );
413 const QStringList connections = settings.
childGroups();
414 for (
const QString &connection : connections )
416 if ( settings.
value( u
"%1/url"_s.arg( connection ) ).toString().isEmpty() )
419 QgsVectorTileProviderConnection::settingsUrl->copyValueFromKey( u
"qgis/connections-vector-tile/%1/url"_s, { connection }, true );
420 QgsVectorTileProviderConnection::settingsZmin->copyValueFromKey( u
"qgis/connections-vector-tile/%1/zmin"_s, { connection }, true );
421 QgsVectorTileProviderConnection::settingsZmax->copyValueFromKey( u
"qgis/connections-vector-tile/%1/zmax"_s, { connection }, true );
422 QgsVectorTileProviderConnection::settingsAuthcfg->copyValueFromKey( u
"qgis/connections-vector-tile/%1/authcfg"_s, { connection }, true );
423 QgsVectorTileProviderConnection::settingsUsername->copyValueFromKey( u
"qgis/connections-vector-tile/%1/username"_s, { connection }, true );
424 QgsVectorTileProviderConnection::settingsPassword->copyValueFromKey( u
"qgis/connections-vector-tile/%1/password"_s, { connection }, true );
425 QgsVectorTileProviderConnection::settingsStyleUrl->copyValueFromKey( u
"qgis/connections-vector-tile/%1/styleUrl"_s, { connection }, true );
426 QgsVectorTileProviderConnection::settingsServiceType->copyValueFromKey( u
"qgis/connections-vector-tile/%1/serviceType"_s, { connection }, true );
429 QgsVectorTileProviderConnection::settingsHeaders->setValue( QgsHttpHeaders( settings ).headers(), connection );
430 settings.
remove( u
"http-header"_s );
438 QgsSettings settings;
439 settings.
beginGroup( u
"qgis/connections-xyz"_s );
440 const QStringList connections = settings.
childGroups();
441 for (
const QString &connection : connections )
443 if ( settings.
value( u
"%1/url"_s.arg( connection ) ).toString().isEmpty() )
458 settings.
remove( u
"http-header"_s );
467 const QStringList serviceKeys = { u
"qgis/connections-arcgisfeatureserver"_s, u
"qgis/connections-arcgismapserver"_s };
468 QgsSettings settings;
469 for (
const QString &serviceKey : serviceKeys )
472 const QStringList connections = settings.
childGroups();
473 for (
const QString &connection : connections )
484 settings.
remove( u
"http-header"_s );
488 settings.
remove( serviceKey );
498 for (
const QString &device : deviceNames )
539void QgsSettingsRegistryCore::backwardCompatibility()
SettingsOption
Settings options.
static const Qgis::MapToolUnit DEFAULT_SNAP_UNITS
Default snapping distance units.
@ Pixels
Pixels unit of tolerance.
static const double DEFAULT_Z_COORDINATE
Default Z coordinate value.
LayerTreeInsertionMethod
Layer tree insertion methods.
@ AboveInsertionPoint
Layers are added in the tree above the insertion point.
static const double DEFAULT_SNAP_TOLERANCE
Default snapping distance tolerance.
static const double DEFAULT_M_COORDINATE
Default M coordinate value.
static QString defaultProjectScales()
A string with default project scales.
@ Round
Use rounded joins.
CadMeasurementDisplayType
Advanced digitizing measurement display types.
@ Hidden
Hide measurement.
EmbeddedScriptMode
Authorisation to run script embedded in projects.
@ Ask
User is prompted before running scripts.
@ AllLayers
On all vector layers.
static const QgsSettingsEntryString * settingsNullRepresentation
static const QgsSettingsEntryString * settingsUsername
static const QgsSettingsEntryString * settingsUrl
static const QgsSettingsEntryString * settingsPassword
static const QgsSettingsEntryVariantMap * settingsHeaders
static const QgsSettingsEntryString * settingsContentEndpoint
static const QgsSettingsEntryString * settingsAuthcfg
static const QgsSettingsEntryString * settingsCommunityEndpoint
static const QgsSettingsEntryBool * settingsPasswordHelperInsecureFallback
static const QgsSettingsEntryBool * settingsPasswordHelperLogging
static const QgsSettingsEntryBool * settingsUsePasswordHelper
static const QgsSettingsEntryStringList * settingsRecentProjectionsProj4
static const QgsSettingsEntryStringList * settingsRecentProjectionsWkt
static const QgsSettingsEntryStringList * settingsRecentProjectionsAuthId
static const QgsSettingsEntryString * settingsCptCityArchiveName
static const QgsSettingsEntryString * settingsCptCityBaseDir
static const QgsSettingsEntryVariant * settingsPaletteLabels
static const QgsSettingsEntryVariant * settingsPaletteColors
static const QgsSettingsEntryBool * settingsMonitorDirectoriesInBrowser
static const QgsSettingsEntryString * settingsScanItemsInBrowser
static const QgsSettingsEntryInteger * settingsMaxImageCacheSize
static const QgsSettingsEntryDouble * settingsGridOffsetX
static const QgsSettingsEntryColor * settingsGridColor
static const QgsSettingsEntryDouble * settingsGridResolution
static const QgsSettingsEntryDouble * settingsGridOffsetY
static const QgsSettingsEntryString * settingsGridStyle
static const QgsSettingsEntryInteger * settingsSnapTolerance
static const QgsSettingsEntryString * settingsLayoutDefaultNorthArrow
Settings entry for the default north arrow SVG path.
static const QgsSettingsEntryStringList * settingsSearchPathForTemplates
Settings entry search path for templates.
static const QgsSettingsEntryString * settingsLayoutDefaultFont
Settings entry for the default font family used for new layout items.
static const QgsSettingsEntryBool * settingsLocatorFilterDefault
Settings entry locator filter default value.
static const QgsSettingsEntryBool * settingsLocatorFilterEnabled
Settings entry locator filter enabled.
static const QgsSettingsEntryString * settingsLocatorFilterPrefix
Settings entry locator filter prefix.
static const QgsSettingsEntryString * settingsProxyAuthCfg
Settings entry for proxy authentication configuration.
static const QgsSettingsEntryInteger * settingsNetworkTimeout
Settings entry network timeout.
static const QgsSettingsEntryString * settingsProxyUser
Settings entry for proxy user.
static const QgsSettingsEntryString * settingsProxyHost
Settings entry for proxy host.
static const QgsSettingsEntryString * settingsProxyPort
Settings entry for proxy port.
static const QgsSettingsEntryString * settingsProxyExcludedUrls
Settings entry for proxy excluded URLs (legacy, falls back to system proxy for these).
static const QgsSettingsEntryString * settingsUserAgent
Settings entry for user agent string.
static const QgsSettingsEntryBool * settingsProxyEnabled
Settings entry for whether proxy is enabled.
static const QgsSettingsEntryString * settingsProxyPassword
Settings entry for proxy password.
static const QgsSettingsEntryStringList * settingsNoProxyUrls
Settings entry for no-proxy URLs.
static const QgsSettingsEntryString * settingsProxyType
Settings entry for proxy type.
static const QgsSettingsEntryBool * settingsOpenClEnabled
static const QgsSettingsEntryString * settingsOpenClDefaultDevice
static const QgsSettingsEntryBool * settingsPreferCoordinatesForWfsT11
static const QgsSettingsEntryString * settingsPagingEnabled
static const QgsSettingsEntryString * settingsMaxNumFeatures
static QgsSettingsTreeNamedListNode * sTreeOwsConnections
static const QgsSettingsEntryBool * settingsIgnoreGetFeatureInfoURI
static const QgsSettingsEntryString * settingsPassword
static const QgsSettingsEntryBool * settingsReportedLayerExtents
static const QgsSettingsEntryEnumFlag< Qgis::DpiMode > * settingsDpiMode
static const QgsSettingsEntryBool * settingsIgnoreAxisOrientation
static const QgsSettingsEntryBool * settingsInvertAxisOrientation
static const QgsSettingsEntryString * settingsVersion
static const QgsSettingsEntryString * settingsPagesize
static const QgsSettingsEntryString * settingsAuthCfg
static const QgsSettingsEntryEnumFlag< Qgis::TilePixelRatio > * settingsTilePixelRatio
static const QgsSettingsEntryVariantMap * settingsHeaders
static const QgsSettingsEntryString * settingsUsername
static const QgsSettingsEntryBool * settingsSmoothPixmapTransform
static const QgsSettingsEntryString * settingsUrl
static const QgsSettingsEntryBool * settingsIgnoreGetMapURI
static const QgsSettingsEntryString * settingsTempPath
Settings entry temp path.
static const QgsSettingsEntryBool * settingsPreferFilenameAsLayerName
Settings entry prefer filename as layer name.
static const QgsSettingsEntryBool * settingsRasterDefaultEarlyResampling
static const QgsSettingsEntryDouble * settingsRasterDefaultOversampling
static const QgsSettingsEntryString * settingsRasterDefaultZoomedInResampling
static const QgsSettingsEntryString * settingsRasterDefaultZoomedOutResampling
static const QgsSettingsEntryDouble * settingsCumulativeCutUpper
static const QgsSettingsEntryDouble * settingsCumulativeCutLower
static const QgsSettingsEntryInteger * settingsDefaultGreenBand
static const QgsSettingsEntryBool * settingsUseStandardDeviation
static const QgsSettingsEntryDouble * settingsDefaultStandardDeviation
static const QgsSettingsEntryInteger * settingsDefaultRedBand
static const QgsSettingsEntryInteger * settingsDefaultBlueBand
bool setValue(const T &value, const QString &dynamicKeyPart=QString()) const
Set settings value.
bool copyValueFromKey(const QString &key, bool removeSettingAtKey=false) const
Copies the value from a given key if it exists.
static QSettings & userSettings()
Returns a reference to the thread-local QSettings instance used internally by all QgsSettingsEntry op...
A boolean settings entry.
bool copyValueFromKeys(const QString &redKey, const QString &greenKey, const QString &blueKey, const QString &alphaKey=QString(), bool removeSettingAtKey=false) const
Copies the value from the given keys if they exist.
A template class for enum and flag settings entry.
A 64 bits integer (long long) settings entry.
An integer settings entry.
A string list settings entry.
static const QgsSettingsEntryDouble * settingsDigitizingSearchRadiusVertexEdit
Settings entry digitizing search radius vertex edit.
static const QgsSettingsEntryBool * settingsDigitizingDefaultSnapEnabled
Settings entry digitizing default snap enabled.
static const QgsSettingsEntryEnumFlag< Qgis::MapToolUnit > * settingsDigitizingDefaultSnappingToleranceUnit
Settings entry digitizing default snapping tolerance unit.
static const QgsSettingsEntryDouble * settingsDigitizingOffsetMiterLimit
Settings entry digitizing offset miter limit.
static const QgsSettingsEntryStringList * settingsCodeExecutionTrustedProjectsFolders
Settings entry for projects and folders that are allowed execution of embedded scripts across session...
static const QgsSettingsEntryEnumFlag< Qgis::JoinStyle > * settingsDigitizingOffsetJoinStyle
Settings entry digitizing offset join style.
static const QgsSettingsEntryDouble * settingsDigitizingMarkerSizeMm
Settings entry digitizing marker size mm.
static const QgsSettingsEntryEnumFlag< Qgis::MapToolUnit > * settingsDigitizingSearchRadiusVertexEditUnit
Settings entry digitizing search radius vertex edit unit.
static const QgsSettingsEntryBool * settingsLayerTreeShowFeatureCountForNewLayers
Settings entry show feature counts for newly added layers by default.
static const QgsSettingsEntryInteger * settingsDigitizingTracingMaxFeatureCount
Settings entry digitizing tracing max feature count.
static const QgsSettingsEntryColor * settingsDigitizingFillColor
Settings entry digitizing fill color.
static const QgsSettingsEntryBool * settingsMeasureKeepBaseUnit
Settings entry for whether to keep base measurement units.
static const QgsSettingsEntryBool * settingsDigitizingDisableEnterAttributeValuesDialog
Settings entry digitizing disable enter attribute values dialog.
static const QgsSettingsEntryStringList * settingsCodeExecutionUntrustedProjectsFolders
Settings entry for projects and folders that are denied execution of embedded scripts across sessions...
static const QgsSettingsEntryDouble * settingsDigitizingDefaultSnappingTolerance
Settings entry digitizing default snapping tolerance.
static const QgsSettingsEntryInteger * settingsDigitizingLineWidth
Settings entry digitizing line width.
static const QgsSettingsEntryString * settingsScanZipInBrowser
Settings entry for zip scanning behavior in browser.
static const QgsSettingsEntryColor * settingsDefaultCanvasColor
Settings entry for default canvas background color.
static const QgsSettingsEntryInteger * settingsDigitizingStreamTolerance
Settings entry digitizing stream tolerance.
static const QgsSettingsEntryEnumFlag< Qgis::CadMeasurementDisplayType > * settingsDigitizingStatusBarTotalLengthDisplay
Settings entry digitizing status bar perimeter/total length display.
static const QgsSettingsEntryBool * settingsDigitizingSnapTooltip
Settings entry digitizing snap tooltip.
static const QgsSettingsEntryEnumFlag< Qgis::SnappingMode > * settingsDigitizingDefaultSnapMode
Settings entry digitizing default snap type.
static const QgsSettingsEntryInteger64 * settingsNetworkCacheSize
Settings entry network cache directory.
static const QgsSettingsEntryBool * settingsDigitizingSnapInvisibleFeature
Settings entry digitizing snap invisible feature.
static const QgsSettingsEntryDouble * settingsDigitizingLineColorAlphaScale
Settings entry digitizing line color alpha scale.
static const QgsSettingsEntryDouble * settingsDigitizingDefaultMValue
Settings entry digitizing default m value.
static const QgsSettingsEntryBool * settingsDigitizingLineGhost
Settings entry digitizing line ghost.
static const QgsSettingsEntryBool * settingsDigitizingMarkerOnlyForSelected
Settings entry digitizing marker only for selected.
static const QgsSettingsEntryColor * settingsDigitizingSnapColor
Settings entry digitizing snap color.
static const QgsSettingsEntryInteger * settingsDigitizingNurbsDegree
Settings entry digitizing NURBS curve degree.
static const QgsSettingsEntryDouble * settingsDigitizingConvertToCurveAngleTolerance
Settings entry digitizing convert to curve angle tolerance.
static const QgsSettingsEntryString * settingsGpsBabelPath
Settings entry path to GPSBabel executable.
static const QgsSettingsEntryDouble * settingsDigitizingConvertToCurveDistanceTolerance
Settings entry digitizing convert to curve distance tolerance.
static const QgsSettingsEntryInteger * settingsDigitizingValidateGeometries
Settings entry digitizing validate geometries.
static const QgsSettingsEntryInteger * settingsMeasureDecimalPlaces
Settings entry for number of decimal places for measurements.
static const QgsSettingsEntryColor * settingsDigitizingLineColor
Settings entry digitizing line color.
static const QgsSettingsEntryStringList * settingsScanItemsFastScanUris
Settings entry for fast scan URIs in browser.
static const QgsSettingsEntryEnumFlag< Qgis::LayerTreeInsertionMethod > * settingsLayerTreeInsertionMethod
Settings entry for layer tree insertion method.
static const QgsSettingsEntryInteger * settingsLayerParallelLoadingMaxCount
Settings entry maximum thread count used to load layer in parallel.
QgsSettingsRegistryCore()
static const QgsSettingsEntryBool * settingsDigitizingReuseLastValues
Settings entry digitizing reuseLastValues.
static const QgsSettingsEntryStringList * settingsMapScales
static const QgsSettingsEntryBool * settingsLayerParallelLoading
Settings entry whether layer are loading in parallel.
static const QgsSettingsEntryBool * settingsLayerTreeShowIdInLayerTooltips
Settings entry for hidden ID in layer tooltips.
static const QgsSettingsEntryEnumFlag< Qgis::CadMeasurementDisplayType > * settingsDigitizingStatusBarAreaDisplay
Settings entry digitizing status bar area display.
static const QgsSettingsEntryBool * settingsLayerTreeShowLegendClassifiers
Settings entry for showing legend classifiers (classification attribute name) in layer tree.
static const QgsSettingsEntryInteger * settingsSymbolsListGroupsIndex
Settings entry for symbols list groups index.
static const QgsSettingsEntryBool * settingsEnableWMSTilePrefetching
Settings entry enable WMS tile prefetching.
static const QgsSettingsEntryColor * settingsDefaultSelectionColor
Settings entry for default selection color.
static const QgsSettingsEntryEnumFlag< Qgis::EndCapStyle > * settingsDigitizingOffsetCapStyle
Settings entry digitizing offset cap style.
static const QgsSettingsEntryEnumFlag< Qgis::SnappingType > * settingsDigitizingDefaultSnapType
Settings entry digitizing default snap type.
static const QgsSettingsEntryBool * settingsDigitizingConvertToCurve
Settings entry digitizing convert to curve.
static const QgsSettingsEntryDouble * settingsDigitizingDefaultZValue
Settings entry digitizing default z value.
static const QgsSettingsEntryBool * settingsMeasurePlanimetric
Settings entry for whether measurements should be planimetric (ellipsoid off) or use the ellipsoid.
static const QgsSettingsEntryString * settingsDigitizingMarkerStyle
Settings entry digitizing marker style.
static const QgsSettingsEntryBool * settingsDigitizingOffsetShowAdvanced
Settings entry digitizing offset show advanced.
static const QgsSettingsEntryInteger * settingsDigitizingOffsetQuadSeg
Settings entry digitizing offset quad seg.
static const QgsSettingsEntryEnumFlag< Qgis::EmbeddedScriptMode > * settingsCodeExecutionBehaviorUndeterminedProjects
Settings entry for behavior handling embedded scripts within projects.
static const QgsSettingsEntryString * settingsNetworkCacheDirectory
Settings entry network cache directory.
static const QgsSettingsEntryString * settingsMeasureDisplayUnits
Settings entry for distance display units.
~QgsSettingsRegistryCore() override
friend class QgsSettingsEntryBase
void setSelectedItem(const QString &item, const QStringList &parentsNamedItems=QStringList())
Sets the selected named item from the named list node.
QList< const QgsSettingsEntryBase * > childrenSettings() const
Returns the children settings.
static QgsSettingsTreeNode * sTreeDigitizing
static QgsSettingsTreeNode * sTreeWms
static QgsSettingsTreeNode * sTreeLayerTree
static QgsSettingsTreeNode * sTreeMeasure
static QgsSettingsTreeNode * sTreeNetworkCache
static QgsSettingsTreeNode * sTreeGps
static QgsSettingsTreeNode * sTreeQgis
static QgsSettingsTreeNode * sTreeMap
static QgsSettingsTreeNode * sTreeCore
QStringList childGroups(Qgis::SettingsOrigin origin=Qgis::SettingsOrigin::Any) const
Returns a list of all key top-level groups that contain keys that can be read using the QSettings obj...
void endGroup()
Resets the group to what it was before the corresponding beginGroup() call.
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key.
bool contains(const QString &key, QgsSettings::Section section=QgsSettings::NoSection) const
Returns true if there exists a setting called key; returns false otherwise.
void beginGroup(const QString &prefix, QgsSettings::Section section=QgsSettings::NoSection)
Appends prefix to the current group.
void remove(const QString &key, QgsSettings::Section section=QgsSettings::NoSection)
Removes the setting key and any sub-settings of key in a section.
static const QgsSettingsEntryDouble * settingsLegendSymbolMaximumSize
static const QgsSettingsEntryDouble * settingsLegendSymbolMinimumSize
static const QgsSettingsEntryStringList * settingsShowInMenuList
static const QgsSettingsEntryString * settingsDefaultEncoding
static const QgsSettingsEntryString * settingsPassword
static const QgsSettingsEntryDouble * settingsTilePixelRatio
static const QgsSettingsEntryString * settingsInterpretation
static const QgsSettingsEntryString * settingsUsername
static const QgsSettingsEntryString * settingsAuthcfg
static const QgsSettingsEntryInteger * settingsZmin
static const QgsSettingsEntryBool * settingsHidden
static const QgsSettingsEntryInteger * settingsZmax
static const QgsSettingsEntryString * settingsUrl
static const QgsSettingsEntryVariantMap * settingsHeaders
static const QgsSettingsEntryInteger * settingsRenderingLabelCandidatesLimitLines
static const QgsSettingsEntryInteger * settingsRenderingLabelCandidatesLimitPoints
static const QgsSettingsEntryInteger * settingsRenderingLabelCandidatesLimitPolygons
#define Q_NOWARN_DEPRECATED_POP
#define Q_NOWARN_DEPRECATED_PUSH