From 00a7936389a755fb8c71879ade49c47dfefe1c70 Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 8 Apr 2021 22:01:41 +0200 Subject: [PATCH 01/14] Moved most core settings to SettingsEntry --- .../network/qgsnewsfeedparser.sip.in | 8 +++++ .../processing/qgsprocessing.sip.in | 8 +++++ .../core/auto_generated/qgsapplication.sip.in | 9 ++++++ .../auto_generated/qgsgeometryoptions.sip.in | 5 +++ .../qgslocalizeddatapathregistry.sip.in | 5 +++ .../auto_generated/qgsmaprendererjob.sip.in | 6 ++++ .../settings/qgssettingsregistrycore.sip.in | 15 ++++++++- src/app/main.cpp | 14 ++++----- src/app/options/qgsoptions.cpp | 22 ++++++------- src/app/qgsprojectproperties.cpp | 2 +- src/core/network/qgsnetworkaccessmanager.cpp | 4 +-- src/core/network/qgsnetworkaccessmanager.h | 1 + src/core/network/qgsnewsfeedparser.cpp | 17 +++++----- src/core/network/qgsnewsfeedparser.h | 17 ++++++++++ src/core/processing/qgsprocessing.h | 17 ++++++++++ src/core/processing/qgsprocessingcontext.cpp | 2 +- src/core/processing/qgsprocessingutils.cpp | 8 ++--- src/core/project/qgsproject.cpp | 2 +- src/core/qgsapplication.cpp | 11 +++---- src/core/qgsapplication.h | 19 ++++++++++++ src/core/qgsgeometryoptions.cpp | 2 +- src/core/qgsgeometryoptions.h | 11 +++++++ src/core/qgslocalizeddatapathregistry.cpp | 4 +-- src/core/qgslocalizeddatapathregistry.h | 11 +++++++ src/core/qgsmaprendererjob.cpp | 3 +- src/core/qgsmaprendererjob.h | 12 +++++++ src/core/settings/qgssettingsregistrycore.cpp | 31 +++++++++++++++++++ src/gui/qgsconfigureshortcutsdialog.cpp | 8 ++--- src/gui/qgsgui.cpp | 3 +- src/gui/qgsmapcanvas.cpp | 4 +-- tests/src/analysis/testqgsprocessing.cpp | 20 ++++++------ .../src/core/testqgscompositionconverter.cpp | 3 +- .../src/core/testqgsnetworkaccessmanager.cpp | 2 +- tests/src/core/testqgsnewsfeedparser.cpp | 10 +++--- tests/src/core/testqgstranslateproject.cpp | 9 +++--- 35 files changed, 242 insertions(+), 83 deletions(-) diff --git a/python/core/auto_generated/network/qgsnewsfeedparser.sip.in b/python/core/auto_generated/network/qgsnewsfeedparser.sip.in index f3169fa7c02..a411df070b8 100644 --- a/python/core/auto_generated/network/qgsnewsfeedparser.sip.in +++ b/python/core/auto_generated/network/qgsnewsfeedparser.sip.in @@ -93,6 +93,14 @@ Returns the authentication configuration for the parser. Returns the settings key used for a feed with the given ``baseUrl``. %End + struct Settings + { + const QgsSettingsEntryInteger feedLastFetchTime; + const QgsSettingsEntryString feedLanguage; + const QgsSettingsEntryDouble feedLatitude; + const QgsSettingsEntryDouble feedLongitude; + }; + public slots: void fetch(); diff --git a/python/core/auto_generated/processing/qgsprocessing.sip.in b/python/core/auto_generated/processing/qgsprocessing.sip.in index de33821c12e..d447f80dfef 100644 --- a/python/core/auto_generated/processing/qgsprocessing.sip.in +++ b/python/core/auto_generated/processing/qgsprocessing.sip.in @@ -52,6 +52,14 @@ Converts a source ``type`` to a string representation. %End static const QString TEMPORARY_OUTPUT; + + struct Settings + { + const QgsSettingsEntryBool preferFilenameAsLayerName; + const QgsSettingsEntryString tempPath; + const QgsSettingsEntryInteger defaultOutputVectorLayerExt; + const QgsSettingsEntryInteger defaultOutputRasterLayerExt; + }; }; /************************************************************************ diff --git a/python/core/auto_generated/qgsapplication.sip.in b/python/core/auto_generated/qgsapplication.sip.in index 6593997e7b5..95493c6f513 100644 --- a/python/core/auto_generated/qgsapplication.sip.in +++ b/python/core/auto_generated/qgsapplication.sip.in @@ -1003,6 +1003,15 @@ Emits the signal to collect all the strings of .qgs to be included in ts file .. versionadded:: 3.4 %End + struct Settings + { + const QgsSettingsEntryString localeUserLocale; + const QgsSettingsEntryBool localeOverrideFlag; + const QgsSettingsEntryString localeGlobalLocale; + const QgsSettingsEntryBool localeShowGroupSeparator; + const QgsSettingsEntryStringList searchPathsForSVG; + }; + %If (ANDROID) //dummy method to workaround sip generation issue bool x11EventFilter( XEvent *event ); diff --git a/python/core/auto_generated/qgsgeometryoptions.sip.in b/python/core/auto_generated/qgsgeometryoptions.sip.in index 6639f8e6d3e..dcb9d5971cd 100644 --- a/python/core/auto_generated/qgsgeometryoptions.sip.in +++ b/python/core/auto_generated/qgsgeometryoptions.sip.in @@ -118,6 +118,11 @@ Read the geometry options from ``node``. .. versionadded:: 3.4 %End + struct Settings + { + const QgsSettingsEntryString geometryValidationDefaultChecks; + }; + signals: void checkConfigurationChanged(); diff --git a/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in b/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in index 8d0a62681a7..8185921b73d 100644 --- a/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in +++ b/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in @@ -60,6 +60,11 @@ Since the paths are stored by order of preference, lower positions in the list t Unregisters a localized path %End + struct Settings + { + const QgsSettingsEntryStringList localizedDataPaths; + }; + private: QgsLocalizedDataPathRegistry( const QgsLocalizedDataPathRegistry &other ); }; diff --git a/python/core/auto_generated/qgsmaprendererjob.sip.in b/python/core/auto_generated/qgsmaprendererjob.sip.in index 49e841509a1..cd7f15f421e 100644 --- a/python/core/auto_generated/qgsmaprendererjob.sip.in +++ b/python/core/auto_generated/qgsmaprendererjob.sip.in @@ -157,6 +157,12 @@ Returns map settings with which this job was started. + + struct Settings + { + const QgsSettingsEntryBool logCanvasRefreshEvent; + }; + signals: void renderingLayersFinished(); diff --git a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in index 570a37f175d..057e392e732 100644 --- a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in +++ b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in @@ -9,7 +9,10 @@ -class QgsSettingsRegistryCore : QgsSettingsRegistry + + + +class QgsSettingsRegistryCore { %Docstring(signature="appended") :py:class:`QgsSettingsRegistryCore` is used for settings introspection and collects all @@ -30,6 +33,16 @@ Constructor for QgsSettingsRegistryCore. virtual ~QgsSettingsRegistryCore(); + const QgsSettingsEntryBase *getSettingsEntry( const QString &key ); +%Docstring +Returns the :py:class:`QgsSettingsEntry` with the given ``key`` or None if not found. +%End + + void addSettingsEntry( const QgsSettingsEntryBase *settingsEntry ); +%Docstring +Add ``settingsEntry`` to the register. +%End + }; /************************************************************************ diff --git a/src/app/main.cpp b/src/app/main.cpp index 7883dba272d..f5942d2bc40 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -966,20 +966,18 @@ int main( int argc, char *argv[] ) delete profile; { - QgsSettings settings; - /* Translation file for QGIS. */ - QString myUserTranslation = settings.value( QStringLiteral( "locale/userLocale" ), "" ).toString(); - QString myGlobalLocale = settings.value( QStringLiteral( "locale/globalLocale" ), "" ).toString(); + QString myUserTranslation = QgsApplication::Settings::localeUserLocale.value(); + QString myGlobalLocale = QgsApplication::Settings::localeGlobalLocale.value(); bool myShowGroupSeparatorFlag = false; // Default to false - bool myLocaleOverrideFlag = settings.value( QStringLiteral( "locale/overrideFlag" ), false ).toBool(); + bool myLocaleOverrideFlag = QgsApplication::Settings::localeOverrideFlag.value(); // Override Show Group Separator if the global override flag is set if ( myLocaleOverrideFlag ) { // Default to false again - myShowGroupSeparatorFlag = settings.value( QStringLiteral( "locale/showGroupSeparator" ), false ).toBool(); + myShowGroupSeparatorFlag = QgsApplication::Settings::localeShowGroupSeparator.value(); } // @@ -993,7 +991,7 @@ int main( int argc, char *argv[] ) // if ( !translationCode.isNull() && !translationCode.isEmpty() ) { - settings.setValue( QStringLiteral( "locale/userLocale" ), translationCode ); + QgsApplication::Settings::localeUserLocale.setValue( translationCode ); } else { @@ -1002,7 +1000,7 @@ int main( int argc, char *argv[] ) translationCode = QLocale().name(); //setting the locale/userLocale when the --lang= option is not set will allow third party //plugins to always use the same locale as the QGIS, otherwise they can be out of sync - settings.setValue( QStringLiteral( "locale/userLocale" ), translationCode ); + QgsApplication::Settings::localeUserLocale.setValue( translationCode ); } else { diff --git a/src/app/options/qgsoptions.cpp b/src/app/options/qgsoptions.cpp index 7c589432873..f5d2d32753b 100644 --- a/src/app/options/qgsoptions.cpp +++ b/src/app/options/qgsoptions.cpp @@ -24,6 +24,7 @@ #include "qgsgdalutils.h" #include "qgshighlight.h" #include "qgsmapcanvas.h" +#include "qgsmaprendererjob.h" #include "qgsprojectionselectiondialog.h" #include "qgscoordinatereferencesystem.h" #include "qgstolerance.h" @@ -474,7 +475,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetCurrentIndex( index ); // log rendering events, for userspace debugging - mLogCanvasRefreshChkBx->setChecked( mSettings->value( QStringLiteral( "/Map/logCanvasRefreshEvent" ), false ).toBool() ); + mLogCanvasRefreshChkBx->setChecked( QgsMapRendererJob::Settings::logCanvasRefreshEvent.value() ); //set the default projection behavior radio buttons const QgsOptions::UnknownLayerCrsBehavior mode = QgsSettings().enumValue( QStringLiteral( "/projections/unknownCrsBehavior" ), QgsOptions::UnknownLayerCrsBehavior::NoAction, QgsSettings::App ); @@ -1014,9 +1015,9 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetText( tr( "Detected active locale on your system: %1" ).arg( currentLocale ) ); - QString userLocale = mSettings->value( QStringLiteral( "locale/userLocale" ), QString( ) ).toString(); - bool showGroupSeparator = mSettings->value( QStringLiteral( "locale/showGroupSeparator" ), false ).toBool(); - QString globalLocale = mSettings->value( QStringLiteral( "locale/globalLocale" ), currentLocale ).toString(); + QString userLocale = QgsApplication::Settings::localeUserLocale.value(); + bool showGroupSeparator = QgsApplication::Settings::localeShowGroupSeparator.value(); + QString globalLocale = QgsApplication::Settings::localeGlobalLocale.value(); const QStringList language18nList( i18nList() ); for ( const auto &l : language18nList ) { @@ -1043,8 +1044,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetCurrentIndex( cboTranslation->findData( userLocale ) ); cboGlobalLocale->setCurrentIndex( cboGlobalLocale->findData( globalLocale ) ); - bool localeOverrideFlag = mSettings->value( QStringLiteral( "locale/overrideFlag" ), false ).toBool(); - grpLocale->setChecked( localeOverrideFlag ); + grpLocale->setChecked( QgsApplication::Settings::localeOverrideFlag.value() ); cbShowGroupSeparator->setChecked( showGroupSeparator ); @@ -1673,7 +1673,7 @@ void QgsOptions::saveOptions() mSettings->setValue( QStringLiteral( "/Raster/cumulativeCutUpper" ), mRasterCumulativeCutUpperDoubleSpinBox->value() / 100.0 ); // log rendering events, for userspace debugging - mSettings->setValue( QStringLiteral( "/Map/logCanvasRefreshEvent" ), mLogCanvasRefreshChkBx->isChecked() ); + QgsMapRendererJob::Settings::logCanvasRefreshEvent.setValue( mLogCanvasRefreshChkBx->isChecked() ); //check behavior so default projection when new layer is added with no //projection defined... @@ -1856,12 +1856,12 @@ void QgsOptions::saveOptions() // // Locale settings // - mSettings->setValue( QStringLiteral( "locale/userLocale" ), cboTranslation->currentData().toString() ); - mSettings->setValue( QStringLiteral( "locale/overrideFlag" ), grpLocale->isChecked() ); - mSettings->setValue( QStringLiteral( "locale/globalLocale" ), cboGlobalLocale->currentData( ).toString() ); + QgsApplication::Settings::localeUserLocale.setValue( cboTranslation->currentData().toString() ); + QgsApplication::Settings::localeOverrideFlag.setValue( grpLocale->isChecked() ); + QgsApplication::Settings::localeGlobalLocale.setValue( cboGlobalLocale->currentData( ).toString() ); // Number settings - mSettings->setValue( QStringLiteral( "locale/showGroupSeparator" ), cbShowGroupSeparator->isChecked( ) ); + QgsApplication::Settings::localeShowGroupSeparator.setValue( cbShowGroupSeparator->isChecked( ) ); QgsLocalDefaultSettings::setBearingFormat( mBearingFormat.get() ); diff --git a/src/app/qgsprojectproperties.cpp b/src/app/qgsprojectproperties.cpp index ec04358ad43..6ccc1134eb2 100644 --- a/src/app/qgsprojectproperties.cpp +++ b/src/app/qgsprojectproperties.cpp @@ -983,7 +983,7 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa } cbtsLocale->addItem( QIcon( QStringLiteral( ":/images/flags/%1.svg" ).arg( QLatin1String( "en_US" ) ) ), QLocale( QStringLiteral( "en_US" ) ).nativeLanguageName(), QStringLiteral( "en_US" ) ); - cbtsLocale->setCurrentIndex( cbtsLocale->findData( settings.value( QStringLiteral( "locale/userLocale" ), QString() ).toString() ) ); + cbtsLocale->setCurrentIndex( cbtsLocale->findData( QgsApplication::Settings::localeUserLocale.value() ) ); connect( generateTsFileButton, &QPushButton::clicked, this, &QgsProjectProperties::onGenerateTsFileButton ); diff --git a/src/core/network/qgsnetworkaccessmanager.cpp b/src/core/network/qgsnetworkaccessmanager.cpp index b6b09af778b..ed31d3932dc 100644 --- a/src/core/network/qgsnetworkaccessmanager.cpp +++ b/src/core/network/qgsnetworkaccessmanager.cpp @@ -674,12 +674,12 @@ void QgsNetworkAccessManager::setupDefaultProxyAndCache( Qt::ConnectionType conn int QgsNetworkAccessManager::timeout() { - return QgsSettings().value( QStringLiteral( "/qgis/networkAndProxy/networkTimeout" ), 60000 ).toInt(); + return Settings::networkTimeout.value(); } void QgsNetworkAccessManager::setTimeout( const int time ) { - QgsSettings().setValue( QStringLiteral( "/qgis/networkAndProxy/networkTimeout" ), time ); + Settings::networkTimeout.setValue( time ); } QgsNetworkReplyContent QgsNetworkAccessManager::blockingGet( QNetworkRequest &request, const QString &authCfg, bool forceRefresh, QgsFeedback *feedback ) diff --git a/src/core/network/qgsnetworkaccessmanager.h b/src/core/network/qgsnetworkaccessmanager.h index cc0d1774f90..e2afbbec676 100644 --- a/src/core/network/qgsnetworkaccessmanager.h +++ b/src/core/network/qgsnetworkaccessmanager.h @@ -31,6 +31,7 @@ #include "qgis_core.h" #include "qgis_sip.h" +#include "qgssettingsentry.h" class QgsFeedback; diff --git a/src/core/network/qgsnewsfeedparser.cpp b/src/core/network/qgsnewsfeedparser.cpp index 0489ddfc810..3c1c63eafe8 100644 --- a/src/core/network/qgsnewsfeedparser.cpp +++ b/src/core/network/qgsnewsfeedparser.cpp @@ -40,24 +40,23 @@ QgsNewsFeedParser::QgsNewsFeedParser( const QUrl &feedUrl, const QString &authcf QUrlQuery query( feedUrl ); - const qint64 after = QgsSettings().value( QStringLiteral( "%1/lastFetchTime" ).arg( mSettingsKey ), 0, QgsSettings::Core ).toUInt(); + const qint64 after = Settings::feedLastFetchTime.value( mSettingsKey ); if ( after > 0 ) query.addQueryItem( QStringLiteral( "after" ), qgsDoubleToString( after, 0 ) ); - QString feedLanguage = QgsSettings().value( QStringLiteral( "%1/lang" ).arg( mSettingsKey ), QString(), QgsSettings::Core ).toString(); + QString feedLanguage = Settings::feedLanguage.value( mSettingsKey ); if ( feedLanguage.isEmpty() ) { - feedLanguage = QgsSettings().value( QStringLiteral( "locale/userLocale" ), QStringLiteral( "en_US" ) ).toString().left( 2 ); + feedLanguage = QgsSettings().value( QgsApplication::Settings::localeUserLocale.key(), QStringLiteral( "en_US" ) ).toString().left( 2 ); } if ( !feedLanguage.isEmpty() && feedLanguage != QLatin1String( "C" ) ) query.addQueryItem( QStringLiteral( "lang" ), feedLanguage ); - bool latOk = false; - bool longOk = false; - const double feedLat = QgsSettings().value( QStringLiteral( "%1/latitude" ).arg( mSettingsKey ), QString(), QgsSettings::Core ).toDouble( &latOk ); - const double feedLong = QgsSettings().value( QStringLiteral( "%1/longitude" ).arg( mSettingsKey ), QString(), QgsSettings::Core ).toDouble( &longOk ); - if ( latOk && longOk ) + if ( Settings::feedLatitude.exists( mSettingsKey ) && Settings::feedLongitude.exists( mSettingsKey ) ) { + const double feedLat = Settings::feedLatitude.value( mSettingsKey ); + const double feedLong = Settings::feedLongitude.value( mSettingsKey ); + // hack to allow testing using local files if ( feedUrl.isLocalFile() ) { @@ -170,7 +169,7 @@ void QgsNewsFeedParser::fetch() void QgsNewsFeedParser::onFetch( const QString &content ) { - QgsSettings().setValue( mSettingsKey + "/lastFetchTime", mFetchStartTime, QgsSettings::Core ); + Settings::feedLastFetchTime.setValue( mFetchStartTime, mSettingsKey ); const QVariant json = QgsJsonUtils::parseJson( content ); diff --git a/src/core/network/qgsnewsfeedparser.h b/src/core/network/qgsnewsfeedparser.h index 9f6f3268722..17079296d75 100644 --- a/src/core/network/qgsnewsfeedparser.h +++ b/src/core/network/qgsnewsfeedparser.h @@ -17,6 +17,7 @@ #include "qgis_core.h" #include "qgis_sip.h" +#include "qgssettingsentry.h" #include #include #include @@ -110,6 +111,22 @@ class CORE_EXPORT QgsNewsFeedParser : public QObject */ static QString keyForFeed( const QString &baseUrl ); + /** + * Contains QgsNewsFeedParser settings + * \since QGIS 3.20 + */ + struct Settings + { + //! Settings entry last fetch time + static const inline QgsSettingsEntryInteger feedLastFetchTime = QgsSettingsEntryInteger( QStringLiteral( "%/lastFetchTime" ), QgsSettings::Core, 0, QObject::tr( "Feed last fetch time" ), 0 ); + //! Settings entry feed language + static const inline QgsSettingsEntryString feedLanguage = QgsSettingsEntryString( QStringLiteral( "%/lang" ), QgsSettings::Core, QString(), QObject::tr( "Feed language" ) ); + //! Settings entry feed latitude + static const inline QgsSettingsEntryDouble feedLatitude = QgsSettingsEntryDouble( QStringLiteral( "%/latitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed latitude" ) ); + //! Settings entry feed longitude + static const inline QgsSettingsEntryDouble feedLongitude = QgsSettingsEntryDouble( QStringLiteral( "%/longitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed longitude" ) ); + }; + public slots: /** diff --git a/src/core/processing/qgsprocessing.h b/src/core/processing/qgsprocessing.h index d8424016ff7..ea26ffee824 100644 --- a/src/core/processing/qgsprocessing.h +++ b/src/core/processing/qgsprocessing.h @@ -19,6 +19,7 @@ #define QGSPROCESSING_H #include "qgis_core.h" +#include "qgssettingsentry.h" #include // @@ -97,6 +98,22 @@ class CORE_EXPORT QgsProcessing * \since QGIS 3.6 */ static const QString TEMPORARY_OUTPUT; + + /** + * Contains QgsProcessing settings + * \since QGIS 3.20 + */ + struct Settings + { + //! Settings entry prefer filename as layer name + static const inline QgsSettingsEntryBool preferFilenameAsLayerName = QgsSettingsEntryBool( QStringLiteral( "Processing/Configuration/PREFER_FILENAME_AS_LAYER_NAME" ), QgsSettings::NoSection, true, QObject::tr( "Prefer filename as layer name" ) ); + //! Settings entry temp path + static const inline QgsSettingsEntryString tempPath = QgsSettingsEntryString( QStringLiteral( "Processing/Configuration/TEMP_PATH2" ), QgsSettings::NoSection, QString() ); + //! Settings entry default output vector layer ext + static const inline QgsSettingsEntryInteger defaultOutputVectorLayerExt = QgsSettingsEntryInteger( QStringLiteral( "Processing/Configuration/DefaultOutputVectorLayerExt" ), QgsSettings::NoSection, -1 ); + //! Settings entry default output raster layer ext + static const inline QgsSettingsEntryInteger defaultOutputRasterLayerExt = QgsSettingsEntryInteger( QStringLiteral( "Processing/Configuration/DefaultOutputRasterLayerExt" ), QgsSettings::NoSection, -1 ); + }; }; #endif // QGSPROCESSING_H diff --git a/src/core/processing/qgsprocessingcontext.cpp b/src/core/processing/qgsprocessingcontext.cpp index cc07c52d46b..db0af8d12d7 100644 --- a/src/core/processing/qgsprocessingcontext.cpp +++ b/src/core/processing/qgsprocessingcontext.cpp @@ -197,7 +197,7 @@ void QgsProcessingContext::LayerDetails::setOutputLayerName( QgsMapLayer *layer if ( !layer ) return; - const bool preferFilenameAsLayerName = QgsSettings().value( QStringLiteral( "Processing/Configuration/PREFER_FILENAME_AS_LAYER_NAME" ), true ).toBool(); + const bool preferFilenameAsLayerName = QgsProcessing::Settings::preferFilenameAsLayerName.value(); // note - for temporary layers, we don't use the filename, regardless of user setting (it will be meaningless!) if ( ( !forceName && preferFilenameAsLayerName && !layer->isTemporary() ) || name.isEmpty() ) diff --git a/src/core/processing/qgsprocessingutils.cpp b/src/core/processing/qgsprocessingutils.cpp index ac72c22fdf2..1d434d78491 100644 --- a/src/core/processing/qgsprocessingutils.cpp +++ b/src/core/processing/qgsprocessingutils.cpp @@ -954,7 +954,7 @@ QString QgsProcessingUtils::tempFolder() static QString sFolder; static QMutex sMutex; QMutexLocker locker( &sMutex ); - const QString basePath = QgsSettings().value( QStringLiteral( "Processing/Configuration/TEMP_PATH2" ) ).toString(); + const QString basePath = QgsProcessing::Settings::tempPath.value(); if ( basePath.isEmpty() ) { // default setting -- automatically create a temp folder @@ -1211,8 +1211,7 @@ QgsFields QgsProcessingUtils::indicesToFields( const QList &indices, const QString QgsProcessingUtils::defaultVectorExtension() { - QgsSettings settings; - const int setting = settings.value( QStringLiteral( "Processing/Configuration/DefaultOutputVectorLayerExt" ), -1 ).toInt(); + const int setting = QgsProcessing::Settings::defaultOutputVectorLayerExt.value(); if ( setting == -1 ) return QStringLiteral( "gpkg" ); return QgsVectorFileWriter::supportedFormatExtensions().value( setting, QStringLiteral( "gpkg" ) ); @@ -1220,8 +1219,7 @@ QString QgsProcessingUtils::defaultVectorExtension() QString QgsProcessingUtils::defaultRasterExtension() { - QgsSettings settings; - const int setting = settings.value( QStringLiteral( "Processing/Configuration/DefaultOutputRasterLayerExt" ), -1 ).toInt(); + const int setting = QgsProcessing::Settings::defaultOutputRasterLayerExt.value(); if ( setting == -1 ) return QStringLiteral( "tif" ); return QgsRasterFileWriter::supportedFormatExtensions().value( setting, QStringLiteral( "tif" ) ); diff --git a/src/core/project/qgsproject.cpp b/src/core/project/qgsproject.cpp index c3b3392037d..7de3a52de3a 100644 --- a/src/core/project/qgsproject.cpp +++ b/src/core/project/qgsproject.cpp @@ -1353,7 +1353,7 @@ bool QgsProject::readProjectFile( const QString &filename, QgsProject::ReadFlags QgsApplication::profiler()->clear( QStringLiteral( "projectload" ) ); QgsScopedRuntimeProfile profile( tr( "Setting up translations" ), QStringLiteral( "projectload" ) ); - QString localeFileName = QStringLiteral( "%1_%2" ).arg( QFileInfo( projectFile.fileName() ).baseName(), mSettings.value( QStringLiteral( "locale/userLocale" ), QString() ).toString() ); + QString localeFileName = QStringLiteral( "%1_%2" ).arg( QFileInfo( projectFile.fileName() ).baseName(), QgsApplication::Settings::localeUserLocale.value() ); if ( QFile( QStringLiteral( "%1/%2.qm" ).arg( QFileInfo( projectFile.fileName() ).absolutePath(), localeFileName ) ).exists() ) { diff --git a/src/core/qgsapplication.cpp b/src/core/qgsapplication.cpp index b095dc69dc0..f21dead9584 100644 --- a/src/core/qgsapplication.cpp +++ b/src/core/qgsapplication.cpp @@ -1063,7 +1063,7 @@ QString QgsApplication::srsDatabaseFilePath() void QgsApplication::setSvgPaths( const QStringList &svgPaths ) { - QgsSettings().setValue( QStringLiteral( "svg/searchPathsForSVG" ), svgPaths ); + Settings::searchPathsForSVG.setValue( svgPaths ); members()->mSvgPathCacheValid = false; } @@ -1082,8 +1082,7 @@ QStringList QgsApplication::svgPaths() locker.changeMode( QgsReadWriteLocker::Write ); //local directories to search when looking for an SVG with a given basename //defined by user in options dialog - QgsSettings settings; - const QStringList pathList = settings.value( QStringLiteral( "svg/searchPathsForSVG" ) ).toStringList(); + const QStringList pathList = Settings::searchPathsForSVG.value(); // maintain user set order while stripping duplicates QStringList paths; @@ -1225,11 +1224,9 @@ QString QgsApplication::platform() QString QgsApplication::locale() { - QgsSettings settings; - bool overrideLocale = settings.value( QStringLiteral( "locale/overrideFlag" ), false ).toBool(); - if ( overrideLocale ) + if ( Settings::localeOverrideFlag.value() ) { - QString locale = settings.value( QStringLiteral( "locale/userLocale" ), QString() ).toString(); + QString locale = Settings::localeUserLocale.value(); // don't differentiate en_US and en_GB if ( locale.startsWith( QLatin1String( "en" ), Qt::CaseInsensitive ) ) { diff --git a/src/core/qgsapplication.h b/src/core/qgsapplication.h index cd4b790aefa..7fdb5bfb9c1 100644 --- a/src/core/qgsapplication.h +++ b/src/core/qgsapplication.h @@ -23,6 +23,7 @@ #include "qgis_sip.h" #include "qgsconfig.h" +#include "qgssettingsentry.h" #include "qgstranslationcontext.h" class QgsSettingsRegistryCore; @@ -943,6 +944,24 @@ class CORE_EXPORT QgsApplication : public QApplication */ void collectTranslatableObjects( QgsTranslationContext *translationContext ); + /** + * Contains QgsApplication settings + * \since QGIS 3.20 + */ + struct Settings + { + //! Settings entry locale user locale + static const inline QgsSettingsEntryString localeUserLocale = QgsSettingsEntryString( QStringLiteral( "locale/userLocale" ), QgsSettings::NoSection, QString() ); + //! Settings entry locale override flag + static const inline QgsSettingsEntryBool localeOverrideFlag = QgsSettingsEntryBool( QStringLiteral( "locale/overrideFlag" ), QgsSettings::NoSection, false ); + //! Settings entry locale global locale + static const inline QgsSettingsEntryString localeGlobalLocale = QgsSettingsEntryString( QStringLiteral( "locale/globalLocale" ), QgsSettings::NoSection, QString() ); + //! Settings entry locale show group separator + static const inline QgsSettingsEntryBool localeShowGroupSeparator = QgsSettingsEntryBool( QStringLiteral( "locale/showGroupSeparator" ), QgsSettings::NoSection, false ); + //! Settings entry search path for SVG + static const inline QgsSettingsEntryStringList searchPathsForSVG = QgsSettingsEntryStringList( QStringLiteral( "svg/searchPathsForSVG" ), QgsSettings::NoSection, QStringList() ); + }; + #ifdef SIP_RUN SIP_IF_FEATURE( ANDROID ) //dummy method to workaround sip generation issue diff --git a/src/core/qgsgeometryoptions.cpp b/src/core/qgsgeometryoptions.cpp index 643ee606f1b..2c37c7c2f85 100644 --- a/src/core/qgsgeometryoptions.cpp +++ b/src/core/qgsgeometryoptions.cpp @@ -23,7 +23,7 @@ QgsGeometryOptions::QgsGeometryOptions() { - mGeometryChecks = QgsSettings().value( QStringLiteral( "geometry_validation/default_checks" ) ).toString().split( ',' ) ; + mGeometryChecks = Settings::geometryValidationDefaultChecks.value().split( ',' ) ; } bool QgsGeometryOptions::removeDuplicateNodes() const diff --git a/src/core/qgsgeometryoptions.h b/src/core/qgsgeometryoptions.h index bceabf4b934..4ec9fdb1b62 100644 --- a/src/core/qgsgeometryoptions.h +++ b/src/core/qgsgeometryoptions.h @@ -21,6 +21,7 @@ #include "qgis_core.h" #include "qgis_sip.h" #include "qgsgeometry.h" +#include "qgssettingsentry.h" #include @@ -131,6 +132,16 @@ class CORE_EXPORT QgsGeometryOptions : public QObject */ void readXml( const QDomNode &node ); + /** + * Contains QgsGeometryOptions settings + * \since QGIS 3.20 + */ + struct Settings + { + //! Settings entry search path for templates + static const inline QgsSettingsEntryString geometryValidationDefaultChecks = QgsSettingsEntryString( QStringLiteral( "geometry_validation/default_checks" ), QgsSettings::NoSection, QString() ); + }; + signals: /** diff --git a/src/core/qgslocalizeddatapathregistry.cpp b/src/core/qgslocalizeddatapathregistry.cpp index e2749881f5e..f5bb8911cc9 100644 --- a/src/core/qgslocalizeddatapathregistry.cpp +++ b/src/core/qgslocalizeddatapathregistry.cpp @@ -105,10 +105,10 @@ void QgsLocalizedDataPathRegistry::unregisterPath( const QString &path ) void QgsLocalizedDataPathRegistry::readFromSettings() { - setPaths( QgsSettings().value( QStringLiteral( "/qgis/localized_data_paths" ) ).toStringList() ); + setPaths( Settings::localizedDataPaths.value() ); } void QgsLocalizedDataPathRegistry::writeToSettings() { - QgsSettings().setValue( QStringLiteral( "/qgis/localized_data_paths" ), paths() ); + Settings::localizedDataPaths.setValue( paths() ); } diff --git a/src/core/qgslocalizeddatapathregistry.h b/src/core/qgslocalizeddatapathregistry.h index fc150d8b10d..a686638026f 100644 --- a/src/core/qgslocalizeddatapathregistry.h +++ b/src/core/qgslocalizeddatapathregistry.h @@ -24,6 +24,7 @@ #include "qgis_core.h" #include "qgis_sip.h" +#include "qgssettingsentry.h" /** * \ingroup core @@ -65,6 +66,16 @@ class CORE_EXPORT QgsLocalizedDataPathRegistry //! Unregisters a localized path void unregisterPath( const QString &path ); + /** + * Contains QgsLocalizedDataPathRegistry settings + * \since QGIS 3.20 + */ + struct Settings + { + //! Settings entry localized data paths + static const inline QgsSettingsEntryStringList localizedDataPaths = QgsSettingsEntryStringList( QStringLiteral( "/qgis/localized_data_paths" ), QgsSettings::NoSection, QStringList() ); + }; + private: #ifdef SIP_RUN QgsLocalizedDataPathRegistry( const QgsLocalizedDataPathRegistry &other ) diff --git a/src/core/qgsmaprendererjob.cpp b/src/core/qgsmaprendererjob.cpp index b1f8ac90dd6..24667c51d01 100644 --- a/src/core/qgsmaprendererjob.cpp +++ b/src/core/qgsmaprendererjob.cpp @@ -977,8 +977,7 @@ void QgsMapRendererJob::composeSecondPass( LayerRenderJobs &secondPassJobs, Labe void QgsMapRendererJob::logRenderingTime( const LayerRenderJobs &jobs, const LayerRenderJobs &secondPassJobs, const LabelRenderJob &labelJob ) { - QgsSettings settings; - if ( !settings.value( QStringLiteral( "Map/logCanvasRefreshEvent" ), false ).toBool() ) + if ( !Settings::logCanvasRefreshEvent.value() ) return; QMultiMap elapsed; diff --git a/src/core/qgsmaprendererjob.h b/src/core/qgsmaprendererjob.h index 4534a402005..305bdfdd24c 100644 --- a/src/core/qgsmaprendererjob.h +++ b/src/core/qgsmaprendererjob.h @@ -29,6 +29,7 @@ #include "qgsmapsettings.h" #include "qgsmaskidprovider.h" +#include "qgssettingsentry.h" class QgsLabelingEngine; @@ -343,6 +344,17 @@ class CORE_EXPORT QgsMapRendererJob : public QObject */ static const QString LABEL_PREVIEW_CACHE_ID SIP_SKIP; + + /** + * Contains QgsMapRendererJob settings + * \since QGIS 3.20 + */ + struct Settings + { + //! Settings entry log canvas refresh event + static const inline QgsSettingsEntryBool logCanvasRefreshEvent = QgsSettingsEntryBool( QStringLiteral( "Map/logCanvasRefreshEvent" ), QgsSettings::NoSection, false ); + }; + signals: /** diff --git a/src/core/settings/qgssettingsregistrycore.cpp b/src/core/settings/qgssettingsregistrycore.cpp index 1f5a58f3fb7..b15051600d6 100644 --- a/src/core/settings/qgssettingsregistrycore.cpp +++ b/src/core/settings/qgssettingsregistrycore.cpp @@ -17,6 +17,13 @@ #include "qgslayout.h" #include "qgslocator.h" +#include "qgsnetworkaccessmanager.h" +#include "qgsnewsfeedparser.h" +#include "qgsprocessing.h" +#include "qgsapplication.h" +#include "qgsgeometryoptions.h" +#include "qgslocalizeddatapathregistry.h" +#include "qgsmaprendererjob.h" QgsSettingsRegistryCore::QgsSettingsRegistryCore() : QgsSettingsRegistry() @@ -26,6 +33,30 @@ QgsSettingsRegistryCore::QgsSettingsRegistryCore() addSettingsEntry( &QgsLocator::settingsLocatorFilterEnabled ); addSettingsEntry( &QgsLocator::settingsLocatorFilterDefault ); addSettingsEntry( &QgsLocator::settingsLocatorFilterPrefix ); + + addSettingsEntry( &QgsNetworkAccessManager::Settings::networkTimeout ); + + addSettingsEntry( &QgsNewsFeedParser::Settings::feedLastFetchTime ); + addSettingsEntry( &QgsNewsFeedParser::Settings::feedLanguage ); + addSettingsEntry( &QgsNewsFeedParser::Settings::feedLatitude ); + addSettingsEntry( &QgsNewsFeedParser::Settings::feedLongitude ); + + addSettingsEntry( &QgsProcessing::Settings::preferFilenameAsLayerName ); + addSettingsEntry( &QgsProcessing::Settings::tempPath ); + addSettingsEntry( &QgsProcessing::Settings::defaultOutputVectorLayerExt ); + addSettingsEntry( &QgsProcessing::Settings::defaultOutputRasterLayerExt ); + + addSettingsEntry( &QgsApplication::Settings::localeUserLocale ); + addSettingsEntry( &QgsApplication::Settings::localeOverrideFlag ); + addSettingsEntry( &QgsApplication::Settings::localeGlobalLocale ); + addSettingsEntry( &QgsApplication::Settings::localeShowGroupSeparator ); + addSettingsEntry( &QgsApplication::Settings::searchPathsForSVG ); + + addSettingsEntry( &QgsGeometryOptions::Settings::geometryValidationDefaultChecks ); + + addSettingsEntry( &QgsLocalizedDataPathRegistry::Settings::localizedDataPaths ); + + addSettingsEntry( &QgsMapRendererJob::Settings::logCanvasRefreshEvent ); } QgsSettingsRegistryCore::~QgsSettingsRegistryCore() diff --git a/src/gui/qgsconfigureshortcutsdialog.cpp b/src/gui/qgsconfigureshortcutsdialog.cpp index fc514c19e43..5daa3a82d15 100644 --- a/src/gui/qgsconfigureshortcutsdialog.cpp +++ b/src/gui/qgsconfigureshortcutsdialog.cpp @@ -16,6 +16,7 @@ #include "qgsconfigureshortcutsdialog.h" #include "qgsshortcutsmanager.h" +#include "qgsapplication.h" #include "qgslogger.h" #include "qgssettings.h" #include "qgsgui.h" @@ -135,7 +136,7 @@ void QgsConfigureShortcutsDialog::saveShortcuts() QDomDocument doc( QStringLiteral( "shortcuts" ) ); QDomElement root = doc.createElement( QStringLiteral( "qgsshortcuts" ) ); root.setAttribute( QStringLiteral( "version" ), QStringLiteral( "1.0" ) ); - root.setAttribute( QStringLiteral( "locale" ), settings.value( QStringLiteral( "locale/userLocale" ), "en_US" ).toString() ); + root.setAttribute( QStringLiteral( "locale" ), settings.value( QgsApplication::Settings::localeUserLocale.key(), "en_US" ).toString() ); doc.appendChild( root ); settings.beginGroup( mManager->settingsPath() ); @@ -202,13 +203,12 @@ void QgsConfigureShortcutsDialog::loadShortcuts() return; } - QgsSettings settings; QString currentLocale; - bool localeOverrideFlag = settings.value( QStringLiteral( "locale/overrideFlag" ), false ).toBool(); + bool localeOverrideFlag = QgsApplication::Settings::localeOverrideFlag.value(); if ( localeOverrideFlag ) { - currentLocale = settings.value( QStringLiteral( "locale/userLocale" ), "en_US" ).toString(); + currentLocale = QgsSettings().value( QgsApplication::Settings::localeUserLocale.key(), "en_US" ).toString(); } else // use QGIS locale { diff --git a/src/gui/qgsgui.cpp b/src/gui/qgsgui.cpp index 5db19edc2fa..1c6636ae11e 100644 --- a/src/gui/qgsgui.cpp +++ b/src/gui/qgsgui.cpp @@ -174,8 +174,7 @@ void QgsGui::setWindowManager( QgsWindowManagerInterface *manager ) QgsGui::HigFlags QgsGui::higFlags() { - QgsSettings settings; - if ( settings.value( QStringLiteral( "locale/userLocale" ), QString() ).toString().startsWith( QLatin1String( "en" ) ) ) + if ( QgsApplication::Settings::localeUserLocale.value().startsWith( QLatin1String( "en" ) ) ) { return HigMenuTextIsTitleCase | HigDialogTitleIsTitleCase; } diff --git a/src/gui/qgsmapcanvas.cpp b/src/gui/qgsmapcanvas.cpp index 0740cfb86e5..b53df96806f 100644 --- a/src/gui/qgsmapcanvas.cpp +++ b/src/gui/qgsmapcanvas.cpp @@ -61,6 +61,7 @@ email : sherman at mrcc.com #include "qgsmapoverviewcanvas.h" #include "qgsmaprenderercache.h" #include "qgsmaprenderercustompainterjob.h" +#include "qgsmaprendererjob.h" #include "qgsmaprendererparalleljob.h" #include "qgsmaprenderersequentialjob.h" #include "qgsmapsettingsutils.h" @@ -705,8 +706,7 @@ void QgsMapCanvas::rendererJobFinished() QPainter p( &img ); emit renderComplete( &p ); - QgsSettings settings; - if ( settings.value( QStringLiteral( "Map/logCanvasRefreshEvent" ), false ).toBool() ) + if ( QgsMapRendererJob::Settings::logCanvasRefreshEvent.value() ) { QString logMsg = tr( "Canvas refresh: %1 ms" ).arg( mJob->renderingTime() ); QgsMessageLog::logMessage( logMsg, tr( "Rendering" ) ); diff --git a/tests/src/analysis/testqgsprocessing.cpp b/tests/src/analysis/testqgsprocessing.cpp index f47a4f061fc..bb012232906 100644 --- a/tests/src/analysis/testqgsprocessing.cpp +++ b/tests/src/analysis/testqgsprocessing.cpp @@ -2303,11 +2303,11 @@ void TestQgsProcessing::parameters() context2.layersToLoadOnCompletion().values().at( 0 ).setOutputLayerName( rl.get() ); QCOMPARE( rl->name(), QStringLiteral( "landsat" ) ); // unless setting prohibits it... - QgsSettings().setValue( QStringLiteral( "Processing/Configuration/PREFER_FILENAME_AS_LAYER_NAME" ), false ); + QgsProcessing::Settings::preferFilenameAsLayerName.setValue( false ); context2.layersToLoadOnCompletion().values().at( 0 ).setOutputLayerName( rl.get() ); QCOMPARE( rl->name(), QStringLiteral( "my_dest" ) ); // if layer has a layername, we should use that instead of the base file name... - QgsSettings().setValue( QStringLiteral( "Processing/Configuration/PREFER_FILENAME_AS_LAYER_NAME" ), true ); + QgsProcessing::Settings::preferFilenameAsLayerName.setValue( true ); vl = std::make_unique< QgsVectorLayer >( QStringLiteral( TEST_DATA_DIR ) + "/points_gpkg.gpkg|layername=points_small", QString() ); context2.layersToLoadOnCompletion().values().at( 0 ).setOutputLayerName( vl.get() ); QCOMPARE( vl->name(), QStringLiteral( "points_small" ) ); @@ -11042,7 +11042,7 @@ void TestQgsProcessing::tempUtils() QgsSettings settings; QString alternative_tempFolder1 = tempDirPath + QStringLiteral( "/alternative_temp_test_one" ); - settings.setValue( QStringLiteral( "Processing/Configuration/TEMP_PATH2" ), alternative_tempFolder1 ); + QgsProcessing::Settings::tempPath.setValue( alternative_tempFolder1 ); // check folder and if it's constant with alternative temp folder 1 tempFolder = QgsProcessingUtils::tempFolder(); QCOMPARE( tempFolder.left( alternative_tempFolder1.length() ), alternative_tempFolder1 ); @@ -11054,7 +11054,7 @@ void TestQgsProcessing::tempUtils() QVERIFY( alternativeTempFile1.startsWith( alternative_tempFolder1 ) ); // change temp folder in the settings again QString alternative_tempFolder2 = tempDirPath + QStringLiteral( "/alternative_temp_test_two" ); - settings.setValue( QStringLiteral( "Processing/Configuration/TEMP_PATH2" ), alternative_tempFolder2 ); + QgsProcessing::Settings::tempPath.setValue( alternative_tempFolder2 ); // check folder and if it's constant constant with alternative temp folder 2 tempFolder = QgsProcessingUtils::tempFolder(); QCOMPARE( tempFolder.left( alternative_tempFolder2.length() ), alternative_tempFolder2 ); @@ -11064,7 +11064,7 @@ void TestQgsProcessing::tempUtils() QVERIFY( alternativeTempFile2.endsWith( "alternative_temptest.txt" ) ); QVERIFY( alternativeTempFile2.startsWith( tempFolder ) ); QVERIFY( alternativeTempFile2.startsWith( alternative_tempFolder2 ) ); - settings.setValue( QStringLiteral( "Processing/Configuration/TEMP_PATH2" ), QString() ); + QgsProcessing::Settings::tempPath.setValue( QString() ); } @@ -11529,10 +11529,8 @@ void TestQgsProcessing::defaultExtensionsForProvider() QCOMPARE( context.preferredRasterFormat(), QStringLiteral( "tif" ) ); // unless the user has set a default format, which IS supported by that provider - QgsSettings settings; - - settings.setValue( QStringLiteral( "Processing/Configuration/DefaultOutputVectorLayerExt" ), QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "tab" ) ) ); - settings.setValue( QStringLiteral( "Processing/Configuration/DefaultOutputRasterLayerExt" ), QgsRasterFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "sdat" ) ) ); + QgsProcessing::Settings::defaultOutputVectorLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "tab" ) ) ); + QgsProcessing::Settings::defaultOutputRasterLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "sdat" ) ) ); QCOMPARE( provider.defaultVectorFileExtension( true ), QStringLiteral( "tab" ) ); QCOMPARE( provider.defaultRasterFileExtension(), QStringLiteral( "sdat" ) ); @@ -11543,8 +11541,8 @@ void TestQgsProcessing::defaultExtensionsForProvider() QCOMPARE( context2.preferredRasterFormat(), QStringLiteral( "sdat" ) ); // but if default is not supported by provider, we use a supported format - settings.setValue( QStringLiteral( "Processing/Configuration/DefaultOutputVectorLayerExt" ), QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "gpkg" ) ) ); - settings.setValue( QStringLiteral( "Processing/Configuration/DefaultOutputRasterLayerExt" ), QgsRasterFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "ecw" ) ) ); + QgsProcessing::Settings::defaultOutputVectorLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "gpkg" ) ) ); + QgsProcessing::Settings::defaultOutputRasterLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "ecw" ) ) ); QCOMPARE( provider.defaultVectorFileExtension( true ), QStringLiteral( "mif" ) ); QCOMPARE( provider.defaultRasterFileExtension(), QStringLiteral( "mig" ) ); } diff --git a/tests/src/core/testqgscompositionconverter.cpp b/tests/src/core/testqgscompositionconverter.cpp index 3a1ab011ef2..b973c7165c1 100644 --- a/tests/src/core/testqgscompositionconverter.cpp +++ b/tests/src/core/testqgscompositionconverter.cpp @@ -163,8 +163,7 @@ void TestQgsCompositionConverter::initTestCase() QgsApplication::init(); QgsApplication::initQgis(); mReport = QStringLiteral( "

Layout Tests

\n" ); - QgsSettings settings; - settings.setValue( QStringLiteral( "svg/searchPathsForSVG" ), QStringLiteral( TEST_DATA_DIR ) ) ; + QgsApplication::Settings::searchPathsForSVG.setValue( QStringLiteral( TEST_DATA_DIR ) ); } void TestQgsCompositionConverter::cleanupTestCase() diff --git a/tests/src/core/testqgsnetworkaccessmanager.cpp b/tests/src/core/testqgsnetworkaccessmanager.cpp index d96627ffa4f..e38294750b3 100644 --- a/tests/src/core/testqgsnetworkaccessmanager.cpp +++ b/tests/src/core/testqgsnetworkaccessmanager.cpp @@ -175,7 +175,7 @@ void TestQgsNetworkAccessManager::initTestCase() QgsApplication::init(); QgsApplication::initQgis(); - QgsSettings().setValue( QStringLiteral( "/qgis/networkAndProxy/networkTimeout" ), 5000 ); + QgsNetworkAccessManager::Settings::networkTimeout.setValue( 5000 ); mHttpBinHost = QStringLiteral( "httpbin.org" ); QString overrideHost = qgetenv( "QGIS_HTTPBIN_HOST" ); diff --git a/tests/src/core/testqgsnewsfeedparser.cpp b/tests/src/core/testqgsnewsfeedparser.cpp index b8369ad5368..9601ad9b84f 100644 --- a/tests/src/core/testqgsnewsfeedparser.cpp +++ b/tests/src/core/testqgsnewsfeedparser.cpp @@ -111,12 +111,12 @@ void TestQgsNewsFeedParser::testFetch() entries.clear(); // after a fetch, the current timestamp should be saved to avoid refetching these - uint after = QgsSettings().value( feedKey + "/lastFetchTime", 0, QgsSettings::Core ).toUInt(); + uint after = QgsNewsFeedParser::Settings::feedLastFetchTime.value( feedKey ); QVERIFY( after >= beforeTime ); // reset to a standard known last time QgsSettings().remove( feedKey, QgsSettings::Core ); - QgsSettings().setValue( feedKey + "/lastFetchTime", 1457360008, QgsSettings::Core ); + QgsNewsFeedParser::Settings::feedLastFetchTime.setValue( 1457360008, feedKey ); // refetch, only new items should be fetched QgsNewsFeedParser parser2( url ); @@ -230,7 +230,7 @@ void TestQgsNewsFeedParser::testLang() const QString feedKey = QgsNewsFeedParser::keyForFeed( url.toString() ); QgsSettings().remove( feedKey, QgsSettings::Core ); // force to Spanish language - QgsSettings().setValue( QStringLiteral( "%1/lang" ).arg( feedKey ), QStringLiteral( "es" ), QgsSettings::Core ); + QgsNewsFeedParser::Settings::feedLanguage.setValue( QStringLiteral( "es" ), feedKey ); QgsNewsFeedParser parser( url ); QSignalSpy spy( &parser, &QgsNewsFeedParser::entryAdded ); @@ -256,8 +256,8 @@ void TestQgsNewsFeedParser::testGeoFencing() const QUrl url( QUrl::fromLocalFile( QStringLiteral( TEST_DATA_DIR ) + "/newsfeed/feed" ) ); const QString feedKey = QgsNewsFeedParser::keyForFeed( url.toString() ); QgsSettings().remove( feedKey, QgsSettings::Core ); - QgsSettings().setValue( QStringLiteral( "%1/latitude" ).arg( feedKey ), 37.2343, QgsSettings::Core ); - QgsSettings().setValue( QStringLiteral( "%1/longitude" ).arg( feedKey ), -115.8067, QgsSettings::Core ); + QgsNewsFeedParser::Settings::feedLatitude.setValue( 37.2343, feedKey ); + QgsNewsFeedParser::Settings::feedLongitude.setValue( -115.8067, feedKey ); QgsNewsFeedParser parser( url ); QSignalSpy spy( &parser, &QgsNewsFeedParser::entryAdded ); diff --git a/tests/src/core/testqgstranslateproject.cpp b/tests/src/core/testqgstranslateproject.cpp index f1be8ab0ba6..5c1cf04339f 100644 --- a/tests/src/core/testqgstranslateproject.cpp +++ b/tests/src/core/testqgstranslateproject.cpp @@ -47,7 +47,6 @@ class TestQgsTranslateProject : public QObject void translateProject(); private: - QgsSettings settings; QString original_locale; }; @@ -58,12 +57,12 @@ void TestQgsTranslateProject::initTestCase() QgsApplication::init(); QgsApplication::initQgis(); - original_locale = settings.value( QStringLiteral( "locale/userLocale" ), "" ).toString() ; + original_locale = QgsApplication::Settings::localeUserLocale.value(); } void TestQgsTranslateProject::cleanupTestCase() { - settings.setValue( QStringLiteral( "locale/userLocale" ), original_locale ); + QgsApplication::Settings::localeUserLocale.setValue( original_locale ); QgsApplication::exitQgis(); //delete translated project file @@ -92,7 +91,7 @@ void TestQgsTranslateProject::cleanup() void TestQgsTranslateProject::createTsFile() { //open project in english - settings.setValue( QStringLiteral( "locale/userLocale" ), "en" ); + QgsApplication::Settings::localeUserLocale.setValue( "en" ); QString projectFileName( TEST_DATA_DIR ); projectFileName = projectFileName + "/project_translation/points_translation.qgs"; QgsProject::instance()->read( projectFileName ); @@ -164,7 +163,7 @@ void TestQgsTranslateProject::createTsFile() void TestQgsTranslateProject::translateProject() { //open project in german - settings.setValue( QStringLiteral( "locale/userLocale" ), "de" ); + QgsApplication::Settings::localeUserLocale.setValue( "de" ); QString projectFileName( TEST_DATA_DIR ); projectFileName = projectFileName + "/project_translation/points_translation.qgs"; QgsProject::instance()->read( projectFileName ); From 95dfe0f45c7989d68fc1abe6b2550525c184105d Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 15 Apr 2021 17:32:59 +0200 Subject: [PATCH 02/14] Removed settings struct --- .../network/qgsnetworkaccessmanager.sip.in | 4 +++ .../network/qgsnewsfeedparser.sip.in | 11 +++--- .../processing/qgsprocessing.sip.in | 11 +++--- .../core/auto_generated/qgsapplication.sip.in | 13 +++---- .../auto_generated/qgsgeometryoptions.sip.in | 5 +-- .../qgslocalizeddatapathregistry.sip.in | 5 +-- .../auto_generated/qgsmaprendererjob.sip.in | 6 +--- .../settings/qgssettingsentry.sip.in | 31 +++++++++++++++++ .../settings/qgssettingsregistry.sip.in | 8 +++++ src/app/main.cpp | 12 +++---- src/app/options/qgsoptions.cpp | 20 +++++------ src/app/qgsprojectproperties.cpp | 2 +- src/core/network/qgsnetworkaccessmanager.cpp | 4 +-- src/core/network/qgsnetworkaccessmanager.h | 4 +++ src/core/network/qgsnewsfeedparser.cpp | 14 ++++---- src/core/network/qgsnewsfeedparser.h | 23 +++++-------- src/core/processing/qgsprocessing.h | 23 +++++-------- src/core/processing/qgsprocessingcontext.cpp | 2 +- src/core/processing/qgsprocessingutils.cpp | 6 ++-- src/core/project/qgsproject.cpp | 2 +- src/core/qgsapplication.cpp | 8 ++--- src/core/qgsapplication.h | 27 ++++++--------- src/core/qgsgeometryoptions.cpp | 2 +- src/core/qgsgeometryoptions.h | 11 ++---- src/core/qgslocalizeddatapathregistry.cpp | 4 +-- src/core/qgslocalizeddatapathregistry.h | 11 ++---- src/core/qgsmaprendererjob.cpp | 2 +- src/core/qgsmaprendererjob.h | 12 ++----- src/core/settings/qgssettingsregistrycore.cpp | 34 +++++++++---------- src/gui/qgsconfigureshortcutsdialog.cpp | 6 ++-- src/gui/qgsgui.cpp | 2 +- src/gui/qgsmapcanvas.cpp | 2 +- tests/src/analysis/testqgsprocessing.cpp | 18 +++++----- .../src/core/testqgscompositionconverter.cpp | 2 +- .../src/core/testqgsnetworkaccessmanager.cpp | 2 +- tests/src/core/testqgsnewsfeedparser.cpp | 10 +++--- tests/src/core/testqgstranslateproject.cpp | 8 ++--- 37 files changed, 176 insertions(+), 191 deletions(-) diff --git a/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in b/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in index 077b78254b9..a651e1adf58 100644 --- a/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in +++ b/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in @@ -321,6 +321,7 @@ The contents of the reply will be returned after the request is completed or an .. versionadded:: 3.6 %End +<<<<<<< HEAD void requestAuthOpenBrowser( const QUrl &url ) const; %Docstring Forwards an external browser login ``url`` opening request to the authentication handler. @@ -342,6 +343,9 @@ Forwards an external browser login closure request to the authentication handler .. versionadded:: 3.20 %End +======= + const QgsSettingsEntryInteger settingsNetworkTimeout; +>>>>>>> 2087a7f4f8 (Removed settings struct) signals: diff --git a/python/core/auto_generated/network/qgsnewsfeedparser.sip.in b/python/core/auto_generated/network/qgsnewsfeedparser.sip.in index a411df070b8..b6643c4629d 100644 --- a/python/core/auto_generated/network/qgsnewsfeedparser.sip.in +++ b/python/core/auto_generated/network/qgsnewsfeedparser.sip.in @@ -93,13 +93,10 @@ Returns the authentication configuration for the parser. Returns the settings key used for a feed with the given ``baseUrl``. %End - struct Settings - { - const QgsSettingsEntryInteger feedLastFetchTime; - const QgsSettingsEntryString feedLanguage; - const QgsSettingsEntryDouble feedLatitude; - const QgsSettingsEntryDouble feedLongitude; - }; + const QgsSettingsEntryInteger settingsFeedLastFetchTime; + const QgsSettingsEntryString settingsFeedLanguage; + const QgsSettingsEntryDouble settingsFeedLatitude; + const QgsSettingsEntryDouble settingsFeedLongitude; public slots: diff --git a/python/core/auto_generated/processing/qgsprocessing.sip.in b/python/core/auto_generated/processing/qgsprocessing.sip.in index d447f80dfef..c14aec99208 100644 --- a/python/core/auto_generated/processing/qgsprocessing.sip.in +++ b/python/core/auto_generated/processing/qgsprocessing.sip.in @@ -53,13 +53,10 @@ Converts a source ``type`` to a string representation. static const QString TEMPORARY_OUTPUT; - struct Settings - { - const QgsSettingsEntryBool preferFilenameAsLayerName; - const QgsSettingsEntryString tempPath; - const QgsSettingsEntryInteger defaultOutputVectorLayerExt; - const QgsSettingsEntryInteger defaultOutputRasterLayerExt; - }; + const QgsSettingsEntryBool settingsPreferFilenameAsLayerName; + const QgsSettingsEntryString settingsTempPath; + const QgsSettingsEntryInteger settingsDefaultOutputVectorLayerExt; + const QgsSettingsEntryInteger settingsDefaultOutputRasterLayerExt; }; /************************************************************************ diff --git a/python/core/auto_generated/qgsapplication.sip.in b/python/core/auto_generated/qgsapplication.sip.in index 95493c6f513..ccc34f85ec2 100644 --- a/python/core/auto_generated/qgsapplication.sip.in +++ b/python/core/auto_generated/qgsapplication.sip.in @@ -1003,14 +1003,11 @@ Emits the signal to collect all the strings of .qgs to be included in ts file .. versionadded:: 3.4 %End - struct Settings - { - const QgsSettingsEntryString localeUserLocale; - const QgsSettingsEntryBool localeOverrideFlag; - const QgsSettingsEntryString localeGlobalLocale; - const QgsSettingsEntryBool localeShowGroupSeparator; - const QgsSettingsEntryStringList searchPathsForSVG; - }; + const QgsSettingsEntryString settingsLocaleUserLocale; + const QgsSettingsEntryBool settingsLocaleOverrideFlag; + const QgsSettingsEntryString settingsLocaleGlobalLocale; + const QgsSettingsEntryBool settingsLocaleShowGroupSeparator; + const QgsSettingsEntryStringList settingsSearchPathsForSVG; %If (ANDROID) //dummy method to workaround sip generation issue diff --git a/python/core/auto_generated/qgsgeometryoptions.sip.in b/python/core/auto_generated/qgsgeometryoptions.sip.in index dcb9d5971cd..28da763994c 100644 --- a/python/core/auto_generated/qgsgeometryoptions.sip.in +++ b/python/core/auto_generated/qgsgeometryoptions.sip.in @@ -118,10 +118,7 @@ Read the geometry options from ``node``. .. versionadded:: 3.4 %End - struct Settings - { - const QgsSettingsEntryString geometryValidationDefaultChecks; - }; + const QgsSettingsEntryString settingsGeometryValidationDefaultChecks; signals: diff --git a/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in b/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in index 8185921b73d..92873da33fe 100644 --- a/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in +++ b/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in @@ -60,10 +60,7 @@ Since the paths are stored by order of preference, lower positions in the list t Unregisters a localized path %End - struct Settings - { - const QgsSettingsEntryStringList localizedDataPaths; - }; + const QgsSettingsEntryStringList settingsLocalizedDataPaths; private: QgsLocalizedDataPathRegistry( const QgsLocalizedDataPathRegistry &other ); diff --git a/python/core/auto_generated/qgsmaprendererjob.sip.in b/python/core/auto_generated/qgsmaprendererjob.sip.in index cd7f15f421e..9fc86cd5643 100644 --- a/python/core/auto_generated/qgsmaprendererjob.sip.in +++ b/python/core/auto_generated/qgsmaprendererjob.sip.in @@ -157,11 +157,7 @@ Returns map settings with which this job was started. - - struct Settings - { - const QgsSettingsEntryBool logCanvasRefreshEvent; - }; + const QgsSettingsEntryBool settingsLogCanvasRefreshEvent; signals: diff --git a/python/core/auto_generated/settings/qgssettingsentry.sip.in b/python/core/auto_generated/settings/qgssettingsentry.sip.in index 7dd9b8a4731..9d0fac8dc90 100644 --- a/python/core/auto_generated/settings/qgssettingsentry.sip.in +++ b/python/core/auto_generated/settings/qgssettingsentry.sip.in @@ -84,6 +84,7 @@ Get settings entry key. The ``dynamicKeyParts`` argument specifies the list of dynamic parts of the settings key. %End +<<<<<<< HEAD bool keyIsValid( const QString &key ) const; %Docstring Returns ``True`` if the provided key match the settings entry. @@ -95,6 +96,8 @@ defined with the key "NewsFeed/%1/%2/content" The ``key`` to check %End +======= +>>>>>>> 7b8aad6203 (Removed settings struct) QString definitionKey() const; %Docstring Returns settings entry defining key. @@ -116,7 +119,11 @@ The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. bool exists( const QStringList &dynamicKeyPartList ) const; %Docstring +<<<<<<< HEAD Returns ``True`` if the settings is contained in the underlying QSettings. +======= +Returns true if the settings is contained in the underlying QSettings. +>>>>>>> 7b8aad6203 (Removed settings struct) The ``dynamicKeyParts`` argument specifies the list of dynamic parts of the settings key. %End @@ -297,11 +304,19 @@ The ``description`` argument specifies a description for the settings entry. bool setValue( const QString &value, const QString &dynamicKeyPart = QString() ) const; %Docstring Set settings value. +<<<<<<< HEAD The ``value`` to set. The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. %End +======= + +The ``value`` to set. +The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. +%End + +>>>>>>> 7b8aad6203 (Removed settings struct) bool setValue( const QString &value, const QStringList &dynamicKeyPartList ) const; %Docstring Set settings value. @@ -396,11 +411,19 @@ The ``description`` argument specifies a description for the settings entry. bool setValue( const QStringList &value, const QString &dynamicKeyPart = QString() ) const; %Docstring Set settings value. +<<<<<<< HEAD The ``value`` to set. The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. %End +======= + +The ``value`` to set. +The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. +%End + +>>>>>>> 7b8aad6203 (Removed settings struct) bool setValue( const QStringList &value, const QStringList &dynamicKeyPartList ) const; %Docstring Set settings value. @@ -645,11 +668,19 @@ The ``description`` argument specifies a description for the settings entry. bool setValue( double value, const QString &dynamicKeyPart = QString() ) const; %Docstring Set settings value. +<<<<<<< HEAD The ``value`` to set. The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. %End +======= + +The ``value`` to set. +The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. +%End + +>>>>>>> 7b8aad6203 (Removed settings struct) bool setValue( double value, const QStringList &dynamicKeyPartList ) const; %Docstring Set settings value. diff --git a/python/core/auto_generated/settings/qgssettingsregistry.sip.in b/python/core/auto_generated/settings/qgssettingsregistry.sip.in index 1ddb3d0d201..62b544792fa 100644 --- a/python/core/auto_generated/settings/qgssettingsregistry.sip.in +++ b/python/core/auto_generated/settings/qgssettingsregistry.sip.in @@ -31,6 +31,7 @@ Constructor for QgsSettingsRegistry. virtual ~QgsSettingsRegistry(); +<<<<<<< HEAD QList getChildSettingsEntries() const; %Docstring Returns the list of registered :py:class:`QgsSettingsEntryBase`. @@ -55,6 +56,13 @@ Returns the list of registered child QgsSettingsRegistry. protected: +======= + const QgsSettingsEntryBase *getSettingsEntry( const QString &key ); +%Docstring +Returns the :py:class:`QgsSettingsEntry` with the given ``key`` or None if not found. +%End + +>>>>>>> 7b8aad6203 (Removed settings struct) void addSettingsEntry( const QgsSettingsEntryBase *settingsEntry ); %Docstring Add ``settingsEntry`` to the register. diff --git a/src/app/main.cpp b/src/app/main.cpp index f5942d2bc40..85ae09e399f 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -968,16 +968,16 @@ int main( int argc, char *argv[] ) { /* Translation file for QGIS. */ - QString myUserTranslation = QgsApplication::Settings::localeUserLocale.value(); - QString myGlobalLocale = QgsApplication::Settings::localeGlobalLocale.value(); + QString myUserTranslation = QgsApplication::settingsLocaleUserLocale.value(); + QString myGlobalLocale = QgsApplication::settingsLocaleGlobalLocale.value(); bool myShowGroupSeparatorFlag = false; // Default to false - bool myLocaleOverrideFlag = QgsApplication::Settings::localeOverrideFlag.value(); + bool myLocaleOverrideFlag = QgsApplication::settingsLocaleOverrideFlag.value(); // Override Show Group Separator if the global override flag is set if ( myLocaleOverrideFlag ) { // Default to false again - myShowGroupSeparatorFlag = QgsApplication::Settings::localeShowGroupSeparator.value(); + myShowGroupSeparatorFlag = QgsApplication::settingsLocaleShowGroupSeparator.value(); } // @@ -991,7 +991,7 @@ int main( int argc, char *argv[] ) // if ( !translationCode.isNull() && !translationCode.isEmpty() ) { - QgsApplication::Settings::localeUserLocale.setValue( translationCode ); + QgsApplication::settingsLocaleUserLocale.setValue( translationCode ); } else { @@ -1000,7 +1000,7 @@ int main( int argc, char *argv[] ) translationCode = QLocale().name(); //setting the locale/userLocale when the --lang= option is not set will allow third party //plugins to always use the same locale as the QGIS, otherwise they can be out of sync - QgsApplication::Settings::localeUserLocale.setValue( translationCode ); + QgsApplication::settingsLocaleUserLocale.setValue( translationCode ); } else { diff --git a/src/app/options/qgsoptions.cpp b/src/app/options/qgsoptions.cpp index f5d2d32753b..cf88ec41423 100644 --- a/src/app/options/qgsoptions.cpp +++ b/src/app/options/qgsoptions.cpp @@ -475,7 +475,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetCurrentIndex( index ); // log rendering events, for userspace debugging - mLogCanvasRefreshChkBx->setChecked( QgsMapRendererJob::Settings::logCanvasRefreshEvent.value() ); + mLogCanvasRefreshChkBx->setChecked( QgsMapRendererJob::settingsLogCanvasRefreshEvent.value() ); //set the default projection behavior radio buttons const QgsOptions::UnknownLayerCrsBehavior mode = QgsSettings().enumValue( QStringLiteral( "/projections/unknownCrsBehavior" ), QgsOptions::UnknownLayerCrsBehavior::NoAction, QgsSettings::App ); @@ -1015,9 +1015,9 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetText( tr( "Detected active locale on your system: %1" ).arg( currentLocale ) ); - QString userLocale = QgsApplication::Settings::localeUserLocale.value(); - bool showGroupSeparator = QgsApplication::Settings::localeShowGroupSeparator.value(); - QString globalLocale = QgsApplication::Settings::localeGlobalLocale.value(); + QString userLocale = QgsApplication::settingsLocaleUserLocale.value(); + bool showGroupSeparator = QgsApplication::settingsLocaleShowGroupSeparator.value(); + QString globalLocale = QgsApplication::settingsLocaleGlobalLocale.value(); const QStringList language18nList( i18nList() ); for ( const auto &l : language18nList ) { @@ -1044,7 +1044,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetCurrentIndex( cboTranslation->findData( userLocale ) ); cboGlobalLocale->setCurrentIndex( cboGlobalLocale->findData( globalLocale ) ); - grpLocale->setChecked( QgsApplication::Settings::localeOverrideFlag.value() ); + grpLocale->setChecked( QgsApplication::settingsLocaleOverrideFlag.value() ); cbShowGroupSeparator->setChecked( showGroupSeparator ); @@ -1673,7 +1673,7 @@ void QgsOptions::saveOptions() mSettings->setValue( QStringLiteral( "/Raster/cumulativeCutUpper" ), mRasterCumulativeCutUpperDoubleSpinBox->value() / 100.0 ); // log rendering events, for userspace debugging - QgsMapRendererJob::Settings::logCanvasRefreshEvent.setValue( mLogCanvasRefreshChkBx->isChecked() ); + QgsMapRendererJob::settingsLogCanvasRefreshEvent.setValue( mLogCanvasRefreshChkBx->isChecked() ); //check behavior so default projection when new layer is added with no //projection defined... @@ -1856,12 +1856,12 @@ void QgsOptions::saveOptions() // // Locale settings // - QgsApplication::Settings::localeUserLocale.setValue( cboTranslation->currentData().toString() ); - QgsApplication::Settings::localeOverrideFlag.setValue( grpLocale->isChecked() ); - QgsApplication::Settings::localeGlobalLocale.setValue( cboGlobalLocale->currentData( ).toString() ); + QgsApplication::settingsLocaleUserLocale.setValue( cboTranslation->currentData().toString() ); + QgsApplication::settingsLocaleOverrideFlag.setValue( grpLocale->isChecked() ); + QgsApplication::settingsLocaleGlobalLocale.setValue( cboGlobalLocale->currentData( ).toString() ); // Number settings - QgsApplication::Settings::localeShowGroupSeparator.setValue( cbShowGroupSeparator->isChecked( ) ); + QgsApplication::settingsLocaleShowGroupSeparator.setValue( cbShowGroupSeparator->isChecked( ) ); QgsLocalDefaultSettings::setBearingFormat( mBearingFormat.get() ); diff --git a/src/app/qgsprojectproperties.cpp b/src/app/qgsprojectproperties.cpp index 6ccc1134eb2..f729cd48bba 100644 --- a/src/app/qgsprojectproperties.cpp +++ b/src/app/qgsprojectproperties.cpp @@ -983,7 +983,7 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa } cbtsLocale->addItem( QIcon( QStringLiteral( ":/images/flags/%1.svg" ).arg( QLatin1String( "en_US" ) ) ), QLocale( QStringLiteral( "en_US" ) ).nativeLanguageName(), QStringLiteral( "en_US" ) ); - cbtsLocale->setCurrentIndex( cbtsLocale->findData( QgsApplication::Settings::localeUserLocale.value() ) ); + cbtsLocale->setCurrentIndex( cbtsLocale->findData( QgsApplication::settingsLocaleUserLocale.value() ) ); connect( generateTsFileButton, &QPushButton::clicked, this, &QgsProjectProperties::onGenerateTsFileButton ); diff --git a/src/core/network/qgsnetworkaccessmanager.cpp b/src/core/network/qgsnetworkaccessmanager.cpp index ed31d3932dc..e8f2ff65014 100644 --- a/src/core/network/qgsnetworkaccessmanager.cpp +++ b/src/core/network/qgsnetworkaccessmanager.cpp @@ -674,12 +674,12 @@ void QgsNetworkAccessManager::setupDefaultProxyAndCache( Qt::ConnectionType conn int QgsNetworkAccessManager::timeout() { - return Settings::networkTimeout.value(); + return settingsNetworkTimeout.value(); } void QgsNetworkAccessManager::setTimeout( const int time ) { - Settings::networkTimeout.setValue( time ); + settingsNetworkTimeout.setValue( time ); } QgsNetworkReplyContent QgsNetworkAccessManager::blockingGet( QNetworkRequest &request, const QString &authCfg, bool forceRefresh, QgsFeedback *feedback ) diff --git a/src/core/network/qgsnetworkaccessmanager.h b/src/core/network/qgsnetworkaccessmanager.h index e2afbbec676..a4298c386f2 100644 --- a/src/core/network/qgsnetworkaccessmanager.h +++ b/src/core/network/qgsnetworkaccessmanager.h @@ -530,6 +530,10 @@ class CORE_EXPORT QgsNetworkAccessManager : public QNetworkAccessManager */ void requestAuthCloseBrowser() const; + //! Settings entry network timeout + static const inline QgsSettingsEntryInteger settingsNetworkTimeout = QgsSettingsEntryInteger( QStringLiteral( "/qgis/networkAndProxy/networkTimeout" ), QgsSettings::NoSection, 60000, QObject::tr( "Network timeout" ) ); + + signals: /** diff --git a/src/core/network/qgsnewsfeedparser.cpp b/src/core/network/qgsnewsfeedparser.cpp index 3c1c63eafe8..183c0bc91aa 100644 --- a/src/core/network/qgsnewsfeedparser.cpp +++ b/src/core/network/qgsnewsfeedparser.cpp @@ -40,22 +40,22 @@ QgsNewsFeedParser::QgsNewsFeedParser( const QUrl &feedUrl, const QString &authcf QUrlQuery query( feedUrl ); - const qint64 after = Settings::feedLastFetchTime.value( mSettingsKey ); + const qint64 after = settingsFeedLastFetchTime.value( mSettingsKey ); if ( after > 0 ) query.addQueryItem( QStringLiteral( "after" ), qgsDoubleToString( after, 0 ) ); - QString feedLanguage = Settings::feedLanguage.value( mSettingsKey ); + QString feedLanguage = settingsFeedLanguage.value( mSettingsKey ); if ( feedLanguage.isEmpty() ) { - feedLanguage = QgsSettings().value( QgsApplication::Settings::localeUserLocale.key(), QStringLiteral( "en_US" ) ).toString().left( 2 ); + feedLanguage = QgsSettings().value( QgsApplication::settingsLocaleUserLocale.key(), QStringLiteral( "en_US" ) ).toString().left( 2 ); } if ( !feedLanguage.isEmpty() && feedLanguage != QLatin1String( "C" ) ) query.addQueryItem( QStringLiteral( "lang" ), feedLanguage ); - if ( Settings::feedLatitude.exists( mSettingsKey ) && Settings::feedLongitude.exists( mSettingsKey ) ) + if ( settingsFeedLatitude.exists( mSettingsKey ) && settingsFeedLongitude.exists( mSettingsKey ) ) { - const double feedLat = Settings::feedLatitude.value( mSettingsKey ); - const double feedLong = Settings::feedLongitude.value( mSettingsKey ); + const double feedLat = settingsFeedLatitude.value( mSettingsKey ); + const double feedLong = settingsFeedLongitude.value( mSettingsKey ); // hack to allow testing using local files if ( feedUrl.isLocalFile() ) @@ -169,7 +169,7 @@ void QgsNewsFeedParser::fetch() void QgsNewsFeedParser::onFetch( const QString &content ) { - Settings::feedLastFetchTime.setValue( mFetchStartTime, mSettingsKey ); + settingsFeedLastFetchTime.setValue( mFetchStartTime, mSettingsKey ); const QVariant json = QgsJsonUtils::parseJson( content ); diff --git a/src/core/network/qgsnewsfeedparser.h b/src/core/network/qgsnewsfeedparser.h index 17079296d75..fb06c082430 100644 --- a/src/core/network/qgsnewsfeedparser.h +++ b/src/core/network/qgsnewsfeedparser.h @@ -111,21 +111,14 @@ class CORE_EXPORT QgsNewsFeedParser : public QObject */ static QString keyForFeed( const QString &baseUrl ); - /** - * Contains QgsNewsFeedParser settings - * \since QGIS 3.20 - */ - struct Settings - { - //! Settings entry last fetch time - static const inline QgsSettingsEntryInteger feedLastFetchTime = QgsSettingsEntryInteger( QStringLiteral( "%/lastFetchTime" ), QgsSettings::Core, 0, QObject::tr( "Feed last fetch time" ), 0 ); - //! Settings entry feed language - static const inline QgsSettingsEntryString feedLanguage = QgsSettingsEntryString( QStringLiteral( "%/lang" ), QgsSettings::Core, QString(), QObject::tr( "Feed language" ) ); - //! Settings entry feed latitude - static const inline QgsSettingsEntryDouble feedLatitude = QgsSettingsEntryDouble( QStringLiteral( "%/latitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed latitude" ) ); - //! Settings entry feed longitude - static const inline QgsSettingsEntryDouble feedLongitude = QgsSettingsEntryDouble( QStringLiteral( "%/longitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed longitude" ) ); - }; + //! Settings entry last fetch time + static const inline QgsSettingsEntryInteger settingsFeedLastFetchTime = QgsSettingsEntryInteger( QStringLiteral( "%/lastFetchTime" ), QgsSettings::Core, 0, QObject::tr( "Feed last fetch time" ), 0 ); + //! Settings entry feed language + static const inline QgsSettingsEntryString settingsFeedLanguage = QgsSettingsEntryString( QStringLiteral( "%/lang" ), QgsSettings::Core, QString(), QObject::tr( "Feed language" ) ); + //! Settings entry feed latitude + static const inline QgsSettingsEntryDouble settingsFeedLatitude = QgsSettingsEntryDouble( QStringLiteral( "%/latitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed latitude" ) ); + //! Settings entry feed longitude + static const inline QgsSettingsEntryDouble settingsFeedLongitude = QgsSettingsEntryDouble( QStringLiteral( "%/longitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed longitude" ) ); public slots: diff --git a/src/core/processing/qgsprocessing.h b/src/core/processing/qgsprocessing.h index ea26ffee824..53eee28fdcf 100644 --- a/src/core/processing/qgsprocessing.h +++ b/src/core/processing/qgsprocessing.h @@ -99,21 +99,14 @@ class CORE_EXPORT QgsProcessing */ static const QString TEMPORARY_OUTPUT; - /** - * Contains QgsProcessing settings - * \since QGIS 3.20 - */ - struct Settings - { - //! Settings entry prefer filename as layer name - static const inline QgsSettingsEntryBool preferFilenameAsLayerName = QgsSettingsEntryBool( QStringLiteral( "Processing/Configuration/PREFER_FILENAME_AS_LAYER_NAME" ), QgsSettings::NoSection, true, QObject::tr( "Prefer filename as layer name" ) ); - //! Settings entry temp path - static const inline QgsSettingsEntryString tempPath = QgsSettingsEntryString( QStringLiteral( "Processing/Configuration/TEMP_PATH2" ), QgsSettings::NoSection, QString() ); - //! Settings entry default output vector layer ext - static const inline QgsSettingsEntryInteger defaultOutputVectorLayerExt = QgsSettingsEntryInteger( QStringLiteral( "Processing/Configuration/DefaultOutputVectorLayerExt" ), QgsSettings::NoSection, -1 ); - //! Settings entry default output raster layer ext - static const inline QgsSettingsEntryInteger defaultOutputRasterLayerExt = QgsSettingsEntryInteger( QStringLiteral( "Processing/Configuration/DefaultOutputRasterLayerExt" ), QgsSettings::NoSection, -1 ); - }; + //! Settings entry prefer filename as layer name + static const inline QgsSettingsEntryBool settingsPreferFilenameAsLayerName = QgsSettingsEntryBool( QStringLiteral( "Processing/Configuration/PREFER_FILENAME_AS_LAYER_NAME" ), QgsSettings::NoSection, true, QObject::tr( "Prefer filename as layer name" ) ); + //! Settings entry temp path + static const inline QgsSettingsEntryString settingsTempPath = QgsSettingsEntryString( QStringLiteral( "Processing/Configuration/TEMP_PATH2" ), QgsSettings::NoSection, QString() ); + //! Settings entry default output vector layer ext + static const inline QgsSettingsEntryInteger settingsDefaultOutputVectorLayerExt = QgsSettingsEntryInteger( QStringLiteral( "Processing/Configuration/DefaultOutputVectorLayerExt" ), QgsSettings::NoSection, -1 ); + //! Settings entry default output raster layer ext + static const inline QgsSettingsEntryInteger settingsDefaultOutputRasterLayerExt = QgsSettingsEntryInteger( QStringLiteral( "Processing/Configuration/DefaultOutputRasterLayerExt" ), QgsSettings::NoSection, -1 ); }; #endif // QGSPROCESSING_H diff --git a/src/core/processing/qgsprocessingcontext.cpp b/src/core/processing/qgsprocessingcontext.cpp index db0af8d12d7..4c52a4c46a0 100644 --- a/src/core/processing/qgsprocessingcontext.cpp +++ b/src/core/processing/qgsprocessingcontext.cpp @@ -197,7 +197,7 @@ void QgsProcessingContext::LayerDetails::setOutputLayerName( QgsMapLayer *layer if ( !layer ) return; - const bool preferFilenameAsLayerName = QgsProcessing::Settings::preferFilenameAsLayerName.value(); + const bool preferFilenameAsLayerName = QgsProcessing::settingsPreferFilenameAsLayerName.value(); // note - for temporary layers, we don't use the filename, regardless of user setting (it will be meaningless!) if ( ( !forceName && preferFilenameAsLayerName && !layer->isTemporary() ) || name.isEmpty() ) diff --git a/src/core/processing/qgsprocessingutils.cpp b/src/core/processing/qgsprocessingutils.cpp index 1d434d78491..fc19b2094dc 100644 --- a/src/core/processing/qgsprocessingutils.cpp +++ b/src/core/processing/qgsprocessingutils.cpp @@ -954,7 +954,7 @@ QString QgsProcessingUtils::tempFolder() static QString sFolder; static QMutex sMutex; QMutexLocker locker( &sMutex ); - const QString basePath = QgsProcessing::Settings::tempPath.value(); + const QString basePath = QgsProcessing::settingsTempPath.value(); if ( basePath.isEmpty() ) { // default setting -- automatically create a temp folder @@ -1211,7 +1211,7 @@ QgsFields QgsProcessingUtils::indicesToFields( const QList &indices, const QString QgsProcessingUtils::defaultVectorExtension() { - const int setting = QgsProcessing::Settings::defaultOutputVectorLayerExt.value(); + const int setting = QgsProcessing::settingsDefaultOutputVectorLayerExt.value(); if ( setting == -1 ) return QStringLiteral( "gpkg" ); return QgsVectorFileWriter::supportedFormatExtensions().value( setting, QStringLiteral( "gpkg" ) ); @@ -1219,7 +1219,7 @@ QString QgsProcessingUtils::defaultVectorExtension() QString QgsProcessingUtils::defaultRasterExtension() { - const int setting = QgsProcessing::Settings::defaultOutputRasterLayerExt.value(); + const int setting = QgsProcessing::settingsDefaultOutputRasterLayerExt.value(); if ( setting == -1 ) return QStringLiteral( "tif" ); return QgsRasterFileWriter::supportedFormatExtensions().value( setting, QStringLiteral( "tif" ) ); diff --git a/src/core/project/qgsproject.cpp b/src/core/project/qgsproject.cpp index 7de3a52de3a..c31edbba588 100644 --- a/src/core/project/qgsproject.cpp +++ b/src/core/project/qgsproject.cpp @@ -1353,7 +1353,7 @@ bool QgsProject::readProjectFile( const QString &filename, QgsProject::ReadFlags QgsApplication::profiler()->clear( QStringLiteral( "projectload" ) ); QgsScopedRuntimeProfile profile( tr( "Setting up translations" ), QStringLiteral( "projectload" ) ); - QString localeFileName = QStringLiteral( "%1_%2" ).arg( QFileInfo( projectFile.fileName() ).baseName(), QgsApplication::Settings::localeUserLocale.value() ); + QString localeFileName = QStringLiteral( "%1_%2" ).arg( QFileInfo( projectFile.fileName() ).baseName(), QgsApplication::settingsLocaleUserLocale.value() ); if ( QFile( QStringLiteral( "%1/%2.qm" ).arg( QFileInfo( projectFile.fileName() ).absolutePath(), localeFileName ) ).exists() ) { diff --git a/src/core/qgsapplication.cpp b/src/core/qgsapplication.cpp index f21dead9584..f5ceba1b250 100644 --- a/src/core/qgsapplication.cpp +++ b/src/core/qgsapplication.cpp @@ -1063,7 +1063,7 @@ QString QgsApplication::srsDatabaseFilePath() void QgsApplication::setSvgPaths( const QStringList &svgPaths ) { - Settings::searchPathsForSVG.setValue( svgPaths ); + settingsSearchPathsForSVG.setValue( svgPaths ); members()->mSvgPathCacheValid = false; } @@ -1082,7 +1082,7 @@ QStringList QgsApplication::svgPaths() locker.changeMode( QgsReadWriteLocker::Write ); //local directories to search when looking for an SVG with a given basename //defined by user in options dialog - const QStringList pathList = Settings::searchPathsForSVG.value(); + const QStringList pathList = settingsSearchPathsForSVG.value(); // maintain user set order while stripping duplicates QStringList paths; @@ -1224,9 +1224,9 @@ QString QgsApplication::platform() QString QgsApplication::locale() { - if ( Settings::localeOverrideFlag.value() ) + if ( settingsLocaleOverrideFlag.value() ) { - QString locale = Settings::localeUserLocale.value(); + QString locale = settingsLocaleUserLocale.value(); // don't differentiate en_US and en_GB if ( locale.startsWith( QLatin1String( "en" ), Qt::CaseInsensitive ) ) { diff --git a/src/core/qgsapplication.h b/src/core/qgsapplication.h index 7fdb5bfb9c1..44e75ed7c8a 100644 --- a/src/core/qgsapplication.h +++ b/src/core/qgsapplication.h @@ -944,23 +944,16 @@ class CORE_EXPORT QgsApplication : public QApplication */ void collectTranslatableObjects( QgsTranslationContext *translationContext ); - /** - * Contains QgsApplication settings - * \since QGIS 3.20 - */ - struct Settings - { - //! Settings entry locale user locale - static const inline QgsSettingsEntryString localeUserLocale = QgsSettingsEntryString( QStringLiteral( "locale/userLocale" ), QgsSettings::NoSection, QString() ); - //! Settings entry locale override flag - static const inline QgsSettingsEntryBool localeOverrideFlag = QgsSettingsEntryBool( QStringLiteral( "locale/overrideFlag" ), QgsSettings::NoSection, false ); - //! Settings entry locale global locale - static const inline QgsSettingsEntryString localeGlobalLocale = QgsSettingsEntryString( QStringLiteral( "locale/globalLocale" ), QgsSettings::NoSection, QString() ); - //! Settings entry locale show group separator - static const inline QgsSettingsEntryBool localeShowGroupSeparator = QgsSettingsEntryBool( QStringLiteral( "locale/showGroupSeparator" ), QgsSettings::NoSection, false ); - //! Settings entry search path for SVG - static const inline QgsSettingsEntryStringList searchPathsForSVG = QgsSettingsEntryStringList( QStringLiteral( "svg/searchPathsForSVG" ), QgsSettings::NoSection, QStringList() ); - }; + //! Settings entry locale user locale + static const inline QgsSettingsEntryString settingsLocaleUserLocale = QgsSettingsEntryString( QStringLiteral( "locale/userLocale" ), QgsSettings::NoSection, QString() ); + //! Settings entry locale override flag + static const inline QgsSettingsEntryBool settingsLocaleOverrideFlag = QgsSettingsEntryBool( QStringLiteral( "locale/overrideFlag" ), QgsSettings::NoSection, false ); + //! Settings entry locale global locale + static const inline QgsSettingsEntryString settingsLocaleGlobalLocale = QgsSettingsEntryString( QStringLiteral( "locale/globalLocale" ), QgsSettings::NoSection, QString() ); + //! Settings entry locale show group separator + static const inline QgsSettingsEntryBool settingsLocaleShowGroupSeparator = QgsSettingsEntryBool( QStringLiteral( "locale/showGroupSeparator" ), QgsSettings::NoSection, false ); + //! Settings entry search path for SVG + static const inline QgsSettingsEntryStringList settingsSearchPathsForSVG = QgsSettingsEntryStringList( QStringLiteral( "svg/searchPathsForSVG" ), QgsSettings::NoSection, QStringList() ); #ifdef SIP_RUN SIP_IF_FEATURE( ANDROID ) diff --git a/src/core/qgsgeometryoptions.cpp b/src/core/qgsgeometryoptions.cpp index 2c37c7c2f85..750ce774484 100644 --- a/src/core/qgsgeometryoptions.cpp +++ b/src/core/qgsgeometryoptions.cpp @@ -23,7 +23,7 @@ QgsGeometryOptions::QgsGeometryOptions() { - mGeometryChecks = Settings::geometryValidationDefaultChecks.value().split( ',' ) ; + mGeometryChecks = settingsGeometryValidationDefaultChecks.value().split( ',' ) ; } bool QgsGeometryOptions::removeDuplicateNodes() const diff --git a/src/core/qgsgeometryoptions.h b/src/core/qgsgeometryoptions.h index 4ec9fdb1b62..8fae89986ef 100644 --- a/src/core/qgsgeometryoptions.h +++ b/src/core/qgsgeometryoptions.h @@ -132,15 +132,8 @@ class CORE_EXPORT QgsGeometryOptions : public QObject */ void readXml( const QDomNode &node ); - /** - * Contains QgsGeometryOptions settings - * \since QGIS 3.20 - */ - struct Settings - { - //! Settings entry search path for templates - static const inline QgsSettingsEntryString geometryValidationDefaultChecks = QgsSettingsEntryString( QStringLiteral( "geometry_validation/default_checks" ), QgsSettings::NoSection, QString() ); - }; + //! Settings entry search path for templates + static const inline QgsSettingsEntryString settingsGeometryValidationDefaultChecks = QgsSettingsEntryString( QStringLiteral( "geometry_validation/default_checks" ), QgsSettings::NoSection, QString() ); signals: diff --git a/src/core/qgslocalizeddatapathregistry.cpp b/src/core/qgslocalizeddatapathregistry.cpp index f5bb8911cc9..7c148b05d57 100644 --- a/src/core/qgslocalizeddatapathregistry.cpp +++ b/src/core/qgslocalizeddatapathregistry.cpp @@ -105,10 +105,10 @@ void QgsLocalizedDataPathRegistry::unregisterPath( const QString &path ) void QgsLocalizedDataPathRegistry::readFromSettings() { - setPaths( Settings::localizedDataPaths.value() ); + setPaths( settingsLocalizedDataPaths.value() ); } void QgsLocalizedDataPathRegistry::writeToSettings() { - Settings::localizedDataPaths.setValue( paths() ); + settingsLocalizedDataPaths.setValue( paths() ); } diff --git a/src/core/qgslocalizeddatapathregistry.h b/src/core/qgslocalizeddatapathregistry.h index a686638026f..b1e222c5efe 100644 --- a/src/core/qgslocalizeddatapathregistry.h +++ b/src/core/qgslocalizeddatapathregistry.h @@ -66,15 +66,8 @@ class CORE_EXPORT QgsLocalizedDataPathRegistry //! Unregisters a localized path void unregisterPath( const QString &path ); - /** - * Contains QgsLocalizedDataPathRegistry settings - * \since QGIS 3.20 - */ - struct Settings - { - //! Settings entry localized data paths - static const inline QgsSettingsEntryStringList localizedDataPaths = QgsSettingsEntryStringList( QStringLiteral( "/qgis/localized_data_paths" ), QgsSettings::NoSection, QStringList() ); - }; + //! Settings entry localized data paths + static const inline QgsSettingsEntryStringList settingsLocalizedDataPaths = QgsSettingsEntryStringList( QStringLiteral( "/qgis/localized_data_paths" ), QgsSettings::NoSection, QStringList() ); private: #ifdef SIP_RUN diff --git a/src/core/qgsmaprendererjob.cpp b/src/core/qgsmaprendererjob.cpp index 24667c51d01..2128ac38d2c 100644 --- a/src/core/qgsmaprendererjob.cpp +++ b/src/core/qgsmaprendererjob.cpp @@ -977,7 +977,7 @@ void QgsMapRendererJob::composeSecondPass( LayerRenderJobs &secondPassJobs, Labe void QgsMapRendererJob::logRenderingTime( const LayerRenderJobs &jobs, const LayerRenderJobs &secondPassJobs, const LabelRenderJob &labelJob ) { - if ( !Settings::logCanvasRefreshEvent.value() ) + if ( !settingsLogCanvasRefreshEvent.value() ) return; QMultiMap elapsed; diff --git a/src/core/qgsmaprendererjob.h b/src/core/qgsmaprendererjob.h index 305bdfdd24c..cc382738a86 100644 --- a/src/core/qgsmaprendererjob.h +++ b/src/core/qgsmaprendererjob.h @@ -344,16 +344,8 @@ class CORE_EXPORT QgsMapRendererJob : public QObject */ static const QString LABEL_PREVIEW_CACHE_ID SIP_SKIP; - - /** - * Contains QgsMapRendererJob settings - * \since QGIS 3.20 - */ - struct Settings - { - //! Settings entry log canvas refresh event - static const inline QgsSettingsEntryBool logCanvasRefreshEvent = QgsSettingsEntryBool( QStringLiteral( "Map/logCanvasRefreshEvent" ), QgsSettings::NoSection, false ); - }; + //! Settings entry log canvas refresh event + static const inline QgsSettingsEntryBool settingsLogCanvasRefreshEvent = QgsSettingsEntryBool( QStringLiteral( "Map/logCanvasRefreshEvent" ), QgsSettings::NoSection, false ); signals: diff --git a/src/core/settings/qgssettingsregistrycore.cpp b/src/core/settings/qgssettingsregistrycore.cpp index b15051600d6..dc0a35b3e40 100644 --- a/src/core/settings/qgssettingsregistrycore.cpp +++ b/src/core/settings/qgssettingsregistrycore.cpp @@ -34,29 +34,29 @@ QgsSettingsRegistryCore::QgsSettingsRegistryCore() addSettingsEntry( &QgsLocator::settingsLocatorFilterDefault ); addSettingsEntry( &QgsLocator::settingsLocatorFilterPrefix ); - addSettingsEntry( &QgsNetworkAccessManager::Settings::networkTimeout ); + addSettingsEntry( &QgsNetworkAccessManager::settingsNetworkTimeout ); - addSettingsEntry( &QgsNewsFeedParser::Settings::feedLastFetchTime ); - addSettingsEntry( &QgsNewsFeedParser::Settings::feedLanguage ); - addSettingsEntry( &QgsNewsFeedParser::Settings::feedLatitude ); - addSettingsEntry( &QgsNewsFeedParser::Settings::feedLongitude ); + addSettingsEntry( &QgsNewsFeedParser::settingsFeedLastFetchTime ); + addSettingsEntry( &QgsNewsFeedParser::settingsFeedLanguage ); + addSettingsEntry( &QgsNewsFeedParser::settingsFeedLatitude ); + addSettingsEntry( &QgsNewsFeedParser::settingsFeedLongitude ); - addSettingsEntry( &QgsProcessing::Settings::preferFilenameAsLayerName ); - addSettingsEntry( &QgsProcessing::Settings::tempPath ); - addSettingsEntry( &QgsProcessing::Settings::defaultOutputVectorLayerExt ); - addSettingsEntry( &QgsProcessing::Settings::defaultOutputRasterLayerExt ); + addSettingsEntry( &QgsProcessing::settingsPreferFilenameAsLayerName ); + addSettingsEntry( &QgsProcessing::settingsTempPath ); + addSettingsEntry( &QgsProcessing::settingsDefaultOutputVectorLayerExt ); + addSettingsEntry( &QgsProcessing::settingsDefaultOutputRasterLayerExt ); - addSettingsEntry( &QgsApplication::Settings::localeUserLocale ); - addSettingsEntry( &QgsApplication::Settings::localeOverrideFlag ); - addSettingsEntry( &QgsApplication::Settings::localeGlobalLocale ); - addSettingsEntry( &QgsApplication::Settings::localeShowGroupSeparator ); - addSettingsEntry( &QgsApplication::Settings::searchPathsForSVG ); + addSettingsEntry( &QgsApplication::settingsLocaleUserLocale ); + addSettingsEntry( &QgsApplication::settingsLocaleOverrideFlag ); + addSettingsEntry( &QgsApplication::settingsLocaleGlobalLocale ); + addSettingsEntry( &QgsApplication::settingsLocaleShowGroupSeparator ); + addSettingsEntry( &QgsApplication::settingsSearchPathsForSVG ); - addSettingsEntry( &QgsGeometryOptions::Settings::geometryValidationDefaultChecks ); + addSettingsEntry( &QgsGeometryOptions::settingsGeometryValidationDefaultChecks ); - addSettingsEntry( &QgsLocalizedDataPathRegistry::Settings::localizedDataPaths ); + addSettingsEntry( &QgsLocalizedDataPathRegistry::settingsLocalizedDataPaths ); - addSettingsEntry( &QgsMapRendererJob::Settings::logCanvasRefreshEvent ); + addSettingsEntry( &QgsMapRendererJob::settingsLogCanvasRefreshEvent ); } QgsSettingsRegistryCore::~QgsSettingsRegistryCore() diff --git a/src/gui/qgsconfigureshortcutsdialog.cpp b/src/gui/qgsconfigureshortcutsdialog.cpp index 5daa3a82d15..e5dd2a4c0d4 100644 --- a/src/gui/qgsconfigureshortcutsdialog.cpp +++ b/src/gui/qgsconfigureshortcutsdialog.cpp @@ -136,7 +136,7 @@ void QgsConfigureShortcutsDialog::saveShortcuts() QDomDocument doc( QStringLiteral( "shortcuts" ) ); QDomElement root = doc.createElement( QStringLiteral( "qgsshortcuts" ) ); root.setAttribute( QStringLiteral( "version" ), QStringLiteral( "1.0" ) ); - root.setAttribute( QStringLiteral( "locale" ), settings.value( QgsApplication::Settings::localeUserLocale.key(), "en_US" ).toString() ); + root.setAttribute( QStringLiteral( "locale" ), settings.value( QgsApplication::settingsLocaleUserLocale.key(), "en_US" ).toString() ); doc.appendChild( root ); settings.beginGroup( mManager->settingsPath() ); @@ -205,10 +205,10 @@ void QgsConfigureShortcutsDialog::loadShortcuts() QString currentLocale; - bool localeOverrideFlag = QgsApplication::Settings::localeOverrideFlag.value(); + bool localeOverrideFlag = QgsApplication::settingsLocaleOverrideFlag.value(); if ( localeOverrideFlag ) { - currentLocale = QgsSettings().value( QgsApplication::Settings::localeUserLocale.key(), "en_US" ).toString(); + currentLocale = QgsApplication::settingsLocaleUserLocale.value( QString(), true, "en_US" ); } else // use QGIS locale { diff --git a/src/gui/qgsgui.cpp b/src/gui/qgsgui.cpp index 1c6636ae11e..4fcf9bdc700 100644 --- a/src/gui/qgsgui.cpp +++ b/src/gui/qgsgui.cpp @@ -174,7 +174,7 @@ void QgsGui::setWindowManager( QgsWindowManagerInterface *manager ) QgsGui::HigFlags QgsGui::higFlags() { - if ( QgsApplication::Settings::localeUserLocale.value().startsWith( QLatin1String( "en" ) ) ) + if ( QgsApplication::settingsLocaleUserLocale.value().startsWith( QLatin1String( "en" ) ) ) { return HigMenuTextIsTitleCase | HigDialogTitleIsTitleCase; } diff --git a/src/gui/qgsmapcanvas.cpp b/src/gui/qgsmapcanvas.cpp index b53df96806f..0b9e56a6e44 100644 --- a/src/gui/qgsmapcanvas.cpp +++ b/src/gui/qgsmapcanvas.cpp @@ -706,7 +706,7 @@ void QgsMapCanvas::rendererJobFinished() QPainter p( &img ); emit renderComplete( &p ); - if ( QgsMapRendererJob::Settings::logCanvasRefreshEvent.value() ) + if ( QgsMapRendererJob::settingsLogCanvasRefreshEvent.value() ) { QString logMsg = tr( "Canvas refresh: %1 ms" ).arg( mJob->renderingTime() ); QgsMessageLog::logMessage( logMsg, tr( "Rendering" ) ); diff --git a/tests/src/analysis/testqgsprocessing.cpp b/tests/src/analysis/testqgsprocessing.cpp index bb012232906..0f688306fa6 100644 --- a/tests/src/analysis/testqgsprocessing.cpp +++ b/tests/src/analysis/testqgsprocessing.cpp @@ -2303,11 +2303,11 @@ void TestQgsProcessing::parameters() context2.layersToLoadOnCompletion().values().at( 0 ).setOutputLayerName( rl.get() ); QCOMPARE( rl->name(), QStringLiteral( "landsat" ) ); // unless setting prohibits it... - QgsProcessing::Settings::preferFilenameAsLayerName.setValue( false ); + QgsProcessing::settingsPreferFilenameAsLayerName.setValue( false ); context2.layersToLoadOnCompletion().values().at( 0 ).setOutputLayerName( rl.get() ); QCOMPARE( rl->name(), QStringLiteral( "my_dest" ) ); // if layer has a layername, we should use that instead of the base file name... - QgsProcessing::Settings::preferFilenameAsLayerName.setValue( true ); + QgsProcessing::settingsPreferFilenameAsLayerName.setValue( true ); vl = std::make_unique< QgsVectorLayer >( QStringLiteral( TEST_DATA_DIR ) + "/points_gpkg.gpkg|layername=points_small", QString() ); context2.layersToLoadOnCompletion().values().at( 0 ).setOutputLayerName( vl.get() ); QCOMPARE( vl->name(), QStringLiteral( "points_small" ) ); @@ -11042,7 +11042,7 @@ void TestQgsProcessing::tempUtils() QgsSettings settings; QString alternative_tempFolder1 = tempDirPath + QStringLiteral( "/alternative_temp_test_one" ); - QgsProcessing::Settings::tempPath.setValue( alternative_tempFolder1 ); + QgsProcessing::settingsTempPath.setValue( alternative_tempFolder1 ); // check folder and if it's constant with alternative temp folder 1 tempFolder = QgsProcessingUtils::tempFolder(); QCOMPARE( tempFolder.left( alternative_tempFolder1.length() ), alternative_tempFolder1 ); @@ -11054,7 +11054,7 @@ void TestQgsProcessing::tempUtils() QVERIFY( alternativeTempFile1.startsWith( alternative_tempFolder1 ) ); // change temp folder in the settings again QString alternative_tempFolder2 = tempDirPath + QStringLiteral( "/alternative_temp_test_two" ); - QgsProcessing::Settings::tempPath.setValue( alternative_tempFolder2 ); + QgsProcessing::settingsTempPath.setValue( alternative_tempFolder2 ); // check folder and if it's constant constant with alternative temp folder 2 tempFolder = QgsProcessingUtils::tempFolder(); QCOMPARE( tempFolder.left( alternative_tempFolder2.length() ), alternative_tempFolder2 ); @@ -11064,7 +11064,7 @@ void TestQgsProcessing::tempUtils() QVERIFY( alternativeTempFile2.endsWith( "alternative_temptest.txt" ) ); QVERIFY( alternativeTempFile2.startsWith( tempFolder ) ); QVERIFY( alternativeTempFile2.startsWith( alternative_tempFolder2 ) ); - QgsProcessing::Settings::tempPath.setValue( QString() ); + QgsProcessing::settingsTempPath.setValue( QString() ); } @@ -11529,8 +11529,8 @@ void TestQgsProcessing::defaultExtensionsForProvider() QCOMPARE( context.preferredRasterFormat(), QStringLiteral( "tif" ) ); // unless the user has set a default format, which IS supported by that provider - QgsProcessing::Settings::defaultOutputVectorLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "tab" ) ) ); - QgsProcessing::Settings::defaultOutputRasterLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "sdat" ) ) ); + QgsProcessing::settingsDefaultOutputVectorLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "tab" ) ) ); + QgsProcessing::settingsDefaultOutputRasterLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "sdat" ) ) ); QCOMPARE( provider.defaultVectorFileExtension( true ), QStringLiteral( "tab" ) ); QCOMPARE( provider.defaultRasterFileExtension(), QStringLiteral( "sdat" ) ); @@ -11541,8 +11541,8 @@ void TestQgsProcessing::defaultExtensionsForProvider() QCOMPARE( context2.preferredRasterFormat(), QStringLiteral( "sdat" ) ); // but if default is not supported by provider, we use a supported format - QgsProcessing::Settings::defaultOutputVectorLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "gpkg" ) ) ); - QgsProcessing::Settings::defaultOutputRasterLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "ecw" ) ) ); + QgsProcessing::settingsDefaultOutputVectorLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "gpkg" ) ) ); + QgsProcessing::settingsDefaultOutputRasterLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "ecw" ) ) ); QCOMPARE( provider.defaultVectorFileExtension( true ), QStringLiteral( "mif" ) ); QCOMPARE( provider.defaultRasterFileExtension(), QStringLiteral( "mig" ) ); } diff --git a/tests/src/core/testqgscompositionconverter.cpp b/tests/src/core/testqgscompositionconverter.cpp index b973c7165c1..346c211410c 100644 --- a/tests/src/core/testqgscompositionconverter.cpp +++ b/tests/src/core/testqgscompositionconverter.cpp @@ -163,7 +163,7 @@ void TestQgsCompositionConverter::initTestCase() QgsApplication::init(); QgsApplication::initQgis(); mReport = QStringLiteral( "

Layout Tests

\n" ); - QgsApplication::Settings::searchPathsForSVG.setValue( QStringLiteral( TEST_DATA_DIR ) ); + QgsApplication::settingsSearchPathsForSVG.setValue( QStringList() << QStringLiteral( TEST_DATA_DIR ) ); } void TestQgsCompositionConverter::cleanupTestCase() diff --git a/tests/src/core/testqgsnetworkaccessmanager.cpp b/tests/src/core/testqgsnetworkaccessmanager.cpp index e38294750b3..f8b51c6cd43 100644 --- a/tests/src/core/testqgsnetworkaccessmanager.cpp +++ b/tests/src/core/testqgsnetworkaccessmanager.cpp @@ -175,7 +175,7 @@ void TestQgsNetworkAccessManager::initTestCase() QgsApplication::init(); QgsApplication::initQgis(); - QgsNetworkAccessManager::Settings::networkTimeout.setValue( 5000 ); + QgsNetworkAccessManager::settingsNetworkTimeout.setValue( 5000 ); mHttpBinHost = QStringLiteral( "httpbin.org" ); QString overrideHost = qgetenv( "QGIS_HTTPBIN_HOST" ); diff --git a/tests/src/core/testqgsnewsfeedparser.cpp b/tests/src/core/testqgsnewsfeedparser.cpp index 9601ad9b84f..28ba11ad181 100644 --- a/tests/src/core/testqgsnewsfeedparser.cpp +++ b/tests/src/core/testqgsnewsfeedparser.cpp @@ -111,12 +111,12 @@ void TestQgsNewsFeedParser::testFetch() entries.clear(); // after a fetch, the current timestamp should be saved to avoid refetching these - uint after = QgsNewsFeedParser::Settings::feedLastFetchTime.value( feedKey ); + uint after = QgsNewsFeedParser::settingsFeedLastFetchTime.value( feedKey ); QVERIFY( after >= beforeTime ); // reset to a standard known last time QgsSettings().remove( feedKey, QgsSettings::Core ); - QgsNewsFeedParser::Settings::feedLastFetchTime.setValue( 1457360008, feedKey ); + QgsNewsFeedParser::settingsFeedLastFetchTime.setValue( 1457360008, feedKey ); // refetch, only new items should be fetched QgsNewsFeedParser parser2( url ); @@ -230,7 +230,7 @@ void TestQgsNewsFeedParser::testLang() const QString feedKey = QgsNewsFeedParser::keyForFeed( url.toString() ); QgsSettings().remove( feedKey, QgsSettings::Core ); // force to Spanish language - QgsNewsFeedParser::Settings::feedLanguage.setValue( QStringLiteral( "es" ), feedKey ); + QgsNewsFeedParser::settingsFeedLanguage.setValue( QStringLiteral( "es" ), feedKey ); QgsNewsFeedParser parser( url ); QSignalSpy spy( &parser, &QgsNewsFeedParser::entryAdded ); @@ -256,8 +256,8 @@ void TestQgsNewsFeedParser::testGeoFencing() const QUrl url( QUrl::fromLocalFile( QStringLiteral( TEST_DATA_DIR ) + "/newsfeed/feed" ) ); const QString feedKey = QgsNewsFeedParser::keyForFeed( url.toString() ); QgsSettings().remove( feedKey, QgsSettings::Core ); - QgsNewsFeedParser::Settings::feedLatitude.setValue( 37.2343, feedKey ); - QgsNewsFeedParser::Settings::feedLongitude.setValue( -115.8067, feedKey ); + QgsNewsFeedParser::settingsFeedLatitude.setValue( 37.2343, feedKey ); + QgsNewsFeedParser::settingsFeedLongitude.setValue( -115.8067, feedKey ); QgsNewsFeedParser parser( url ); QSignalSpy spy( &parser, &QgsNewsFeedParser::entryAdded ); diff --git a/tests/src/core/testqgstranslateproject.cpp b/tests/src/core/testqgstranslateproject.cpp index 5c1cf04339f..aa5f674f81a 100644 --- a/tests/src/core/testqgstranslateproject.cpp +++ b/tests/src/core/testqgstranslateproject.cpp @@ -57,12 +57,12 @@ void TestQgsTranslateProject::initTestCase() QgsApplication::init(); QgsApplication::initQgis(); - original_locale = QgsApplication::Settings::localeUserLocale.value(); + original_locale = QgsApplication::settingsLocaleUserLocale.value(); } void TestQgsTranslateProject::cleanupTestCase() { - QgsApplication::Settings::localeUserLocale.setValue( original_locale ); + QgsApplication::settingsLocaleUserLocale.setValue( original_locale ); QgsApplication::exitQgis(); //delete translated project file @@ -91,7 +91,7 @@ void TestQgsTranslateProject::cleanup() void TestQgsTranslateProject::createTsFile() { //open project in english - QgsApplication::Settings::localeUserLocale.setValue( "en" ); + QgsApplication::settingsLocaleUserLocale.setValue( "en" ); QString projectFileName( TEST_DATA_DIR ); projectFileName = projectFileName + "/project_translation/points_translation.qgs"; QgsProject::instance()->read( projectFileName ); @@ -163,7 +163,7 @@ void TestQgsTranslateProject::createTsFile() void TestQgsTranslateProject::translateProject() { //open project in german - QgsApplication::Settings::localeUserLocale.setValue( "de" ); + QgsApplication::settingsLocaleUserLocale.setValue( "de" ); QString projectFileName( TEST_DATA_DIR ); projectFileName = projectFileName + "/project_translation/points_translation.qgs"; QgsProject::instance()->read( projectFileName ); From 4fb0ab2df1cdd91128e16458196ded59b0ad0ed2 Mon Sep 17 00:00:00 2001 From: Damiano Date: Wed, 21 Apr 2021 15:44:43 +0200 Subject: [PATCH 03/14] Enum flag sip --- .../core/auto_additions/qgssettingsentry.py | 6 +- .../settings/qgssettingsentry.sip.in | 163 ++++++++++++++++- .../settings/qgssettingsregistrycore.sip.in | 84 +++++++++ src/core/settings/qgssettingsentry.cpp | 49 ++++++ src/core/settings/qgssettingsentry.h | 166 +++++++++--------- src/core/settings/qgssettingsregistrycore.cpp | 38 ++++ src/core/settings/qgssettingsregistrycore.h | 116 ++++++++++++ tests/src/python/test_qgssettingsregistry.py | 7 +- 8 files changed, 539 insertions(+), 90 deletions(-) diff --git a/python/core/auto_additions/qgssettingsentry.py b/python/core/auto_additions/qgssettingsentry.py index 246bc276735..f18f0482e64 100644 --- a/python/core/auto_additions/qgssettingsentry.py +++ b/python/core/auto_additions/qgssettingsentry.py @@ -6,7 +6,7 @@ QgsSettingsEntryBase.SettingsType.StringList.__doc__ = "" QgsSettingsEntryBase.SettingsType.Bool.__doc__ = "" QgsSettingsEntryBase.SettingsType.Integer.__doc__ = "" QgsSettingsEntryBase.SettingsType.Double.__doc__ = "" -QgsSettingsEntryBase.SettingsType.Enum.__doc__ = "" -QgsSettingsEntryBase.SettingsType.Flag.__doc__ = "" -QgsSettingsEntryBase.SettingsType.__doc__ = '\n\n' + '* ``Variant``: ' + QgsSettingsEntryBase.SettingsType.Variant.__doc__ + '\n' + '* ``String``: ' + QgsSettingsEntryBase.SettingsType.String.__doc__ + '\n' + '* ``StringList``: ' + QgsSettingsEntryBase.SettingsType.StringList.__doc__ + '\n' + '* ``Bool``: ' + QgsSettingsEntryBase.SettingsType.Bool.__doc__ + '\n' + '* ``Integer``: ' + QgsSettingsEntryBase.SettingsType.Integer.__doc__ + '\n' + '* ``Double``: ' + QgsSettingsEntryBase.SettingsType.Double.__doc__ + '\n' + '* ``Enum``: ' + QgsSettingsEntryBase.SettingsType.Enum.__doc__ + '\n' + '* ``Flag``: ' + QgsSettingsEntryBase.SettingsType.Flag.__doc__ +QgsSettingsEntryBase.SettingsType.EnumFlag.__doc__ = "" +QgsSettingsEntryBase.SettingsType.Color.__doc__ = "" +QgsSettingsEntryBase.SettingsType.__doc__ = '\n\n' + '* ``Variant``: ' + QgsSettingsEntryBase.SettingsType.Variant.__doc__ + '\n' + '* ``String``: ' + QgsSettingsEntryBase.SettingsType.String.__doc__ + '\n' + '* ``StringList``: ' + QgsSettingsEntryBase.SettingsType.StringList.__doc__ + '\n' + '* ``Bool``: ' + QgsSettingsEntryBase.SettingsType.Bool.__doc__ + '\n' + '* ``Integer``: ' + QgsSettingsEntryBase.SettingsType.Integer.__doc__ + '\n' + '* ``Double``: ' + QgsSettingsEntryBase.SettingsType.Double.__doc__ + '\n' + '* ``EnumFlag``: ' + QgsSettingsEntryBase.SettingsType.EnumFlag.__doc__ + '\n' + '* ``Color``: ' + QgsSettingsEntryBase.SettingsType.Color.__doc__ # -- diff --git a/python/core/auto_generated/settings/qgssettingsentry.sip.in b/python/core/auto_generated/settings/qgssettingsentry.sip.in index 9d0fac8dc90..2ff8ca0c582 100644 --- a/python/core/auto_generated/settings/qgssettingsentry.sip.in +++ b/python/core/auto_generated/settings/qgssettingsentry.sip.in @@ -36,6 +36,8 @@ to validate set values and provide more accurate settings description for the gu sipType = sipType_QgsSettingsEntryInteger; else if ( dynamic_cast< QgsSettingsEntryDouble * >( sipCpp ) ) sipType = sipType_QgsSettingsEntryDouble; + else if ( dynamic_cast< QgsSettingsEntryColor * >( sipCpp ) ) + sipType = sipType_QgsSettingsEntryColor; else sipType = NULL; %End @@ -49,8 +51,8 @@ to validate set values and provide more accurate settings description for the gu Bool, Integer, Double, - Enum, - Flag + EnumFlag, + Color }; @@ -757,10 +759,167 @@ Returns how much decimals should be shown in the Gui. +template +class QgsSettingsEntryEnumFlag : QgsSettingsEntryBase +{ +%Docstring(signature="appended") +A template class for enum and flag settings entry. + +.. note:: + + This template class has a dedicated handling in sipify.pl + +.. versionadded:: 3.20 +%End + +%TypeHeaderCode +#include "qgssettingsentry.h" +%End + public: + + QgsSettingsEntryEnumFlag( const QString &key, QgsSettings::Section section, const T &defaultValue, const QString &description = QString() ); +%Docstring +Constructor for QgsSettingsEntryEnumFlag. + +The ``key`` argument specifies the final part of the settings key. +The ``section`` argument specifies the section. +The ``default`` value argument specifies the default value for the settings entry. +The ``description`` argument specifies a description for the settings entry. + +.. note:: + + The enum needs to be declared with Q_ENUM, and flags with Q_FLAG (not Q_FLAGS). + +.. note:: + + for Python bindings, a custom implementation is achieved in Python directly +%End + + T value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const T &defaultValueOverride = T() ) const; +%Docstring +Get settings value. + +The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. +The ``useDefaultValueOverride`` argument specifies if defaultValueOverride should be used. +The ``defaultValueOverride`` argument if valid is used instead of the normal default value. +%End + + T value( const QStringList &dynamicKeyPartList, bool useDefaultValueOverride = false, const T &defaultValueOverride = T() ) const; +%Docstring +Get settings value. + +The ``dynamicKeyParts`` argument specifies the list of dynamic parts of the settings key. +The ``useDefaultValueOverride`` argument specifies if defaultValueOverride should be used. +The ``defaultValueOverride`` argument if valid is used instead of the normal default value. +%End + + T defaultValue() const; +%Docstring +Get settings default value. +%End + + bool setValue( const T &value, const QString &dynamicKeyPart = QString() ) const; +%Docstring +\copydoc :py:class:`QgsSettingsEntryBase`.setValue +%End + + bool setValue( const T &value, const QStringList &dynamicKeyPartList ) const; +%Docstring +\copydoc :py:class:`QgsSettingsEntryBase`.setValue +%End + + virtual QgsSettingsEntryBase::SettingsType settingsType() const; +%Docstring +\copydoc :py:class:`QgsSettingsEntryBase`.settingsType +%End + +}; + + + + + + + + +class QgsSettingsEntryColor : QgsSettingsEntryBase +{ +%Docstring(signature="appended") +A color settings entry. + +.. versionadded:: 3.20 +%End + +%TypeHeaderCode +#include "qgssettingsentry.h" +%End + public: + + + QgsSettingsEntryColor( const QString &key, + const QString &pluginName, + const QColor &defaultValue = QColor(), + const QString &description = QString() ); +%Docstring +Constructor for QgsSettingsEntryColor. +This constructor is intended to be used from plugins. + +The ``key`` argument specifies the key of the settings. +The ``pluginName`` argument is inserted in the key after the section. +The ``default`` value argument specifies the default value for the settings entry. +The ``description`` argument specifies a description for the settings entry. +%End + + bool setValue( const QColor &value, const QString &dynamicKeyPart = QString() ) const; +%Docstring +Set settings value. + +The ``value`` to set. +The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. +%End + + bool setValue( const QColor &value, const QStringList &dynamicKeyPartList ) const; +%Docstring +Set settings value. + +The ``value`` to set. +The ``dynamicKeyParts`` argument specifies the list of dynamic parts of the settings key. +%End + + QColor value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QString &defaultValueOverride = QString() ) const; +%Docstring +Get settings value. + +The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. +The ``useDefaultValueOverride`` argument specifies if defaultValueOverride should be used. +The ``defaultValueOverride`` argument if valid is used instead of the normal default value. +%End + + QColor value( const QStringList &dynamicKeyPartList, bool useDefaultValueOverride = false, const QString &defaultValueOverride = QString() ) const; +%Docstring +Get settings value. + +The ``dynamicKeyParts`` argument specifies the list of dynamic parts of the settings key. +The ``useDefaultValueOverride`` argument specifies if defaultValueOverride should be used. +The ``defaultValueOverride`` argument if valid is used instead of the normal default value. +%End + + QColor defaultValue() const; +%Docstring +Get settings default value. +%End + + virtual SettingsType settingsType() const; +%Docstring +\copydoc :py:class:`QgsSettingsEntryBase`.settingsType +%End + +}; + /************************************************************************ * This file has been generated automatically from * * * diff --git a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in index 057e392e732..a5dc211ea13 100644 --- a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in +++ b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in @@ -33,6 +33,7 @@ Constructor for QgsSettingsRegistryCore. virtual ~QgsSettingsRegistryCore(); +<<<<<<< HEAD const QgsSettingsEntryBase *getSettingsEntry( const QString &key ); %Docstring Returns the :py:class:`QgsSettingsEntry` with the given ``key`` or None if not found. @@ -42,6 +43,89 @@ Returns the :py:class:`QgsSettingsEntry` with the given ``key`` or None if not f %Docstring Add ``settingsEntry`` to the register. %End +======= + const QgsSettingsEntryInteger settingsDigitizingStreamTolerance; + + const QgsSettingsEntryInteger settingsDigitizingLineWidth; + + const QgsSettingsEntryInteger settingsDigitizingLineColorRed; + + const QgsSettingsEntryInteger settingsDigitizingLineColorGreen; + + const QgsSettingsEntryInteger settingsDigitizingLineColorBlue; + + const QgsSettingsEntryInteger settingsDigitizingLineColorAlpha; + + const QgsSettingsEntryDouble settingsDigitizingLineColorAlphaScale; + + const QgsSettingsEntryInteger settingsDigitizingFillColorRed; + + const QgsSettingsEntryInteger settingsDigitizingFillColorGreen; + + const QgsSettingsEntryInteger settingsDigitizingFillColorBlue; + + const QgsSettingsEntryInteger settingsDigitizingFillColorAlpha; + + const QgsSettingsEntryBool settingsDigitizingLineGhost; + + const QgsSettingsEntryDouble settingsDigitizingDefaultZValue; + + const QgsSettingsEntryBool settingsDigitizingDefaultSnapEnabled; + +class QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType +{ +%TypeHeaderCode +#include "qgssettingsregistrycore.h" +#include "qgssettingsentry.h" +typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType; +%End + public: + QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType( const QString &key, QgsSettings::Section section, const QgsSnappingConfig::SnappingTypes &defaultValue, const QString &description = QString() ); + QString key( const QString &dynamicKeyPart = QString() ) const; + QgsSnappingConfig::SnappingTypes value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsSnappingConfig::SnappingTypes &defaultValueOverride = QgsSnappingConfig::SnappingTypes() ) const; +}; + const QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType settingsDigitizingDefaultSnapType; + + const QgsSettingsEntryDouble settingsDigitizingDefaultSnappingTolerance; + + + const QgsSettingsEntryDouble settingsDigitizingSearchRadiusVertexEdit; + + + const QgsSettingsEntryColor settingsDigitizingSnapColor; + + const QgsSettingsEntryBool settingsDigitizingSnapTooltip; + + const QgsSettingsEntryBool settingsDigitizingSnapInvisibleFeature; + + const QgsSettingsEntryBool settingsDigitizingMarkerOnlyForSelected; + + const QgsSettingsEntryString settingsDigitizingMarkerStyle; + + const QgsSettingsEntryDouble settingsDigitizingMarkerSizeMm; + + const QgsSettingsEntryBool settingsDigitizingReuseLastValues; + + const QgsSettingsEntryBool settingsDigitizingDisableEnterAttributeValuesDialog; + + const QgsSettingsEntryInteger settingsDigitizingValidateGeometries; + + + const QgsSettingsEntryInteger settingsDigitizingOffsetQuadSeg; + + const QgsSettingsEntryDouble settingsDigitizingOffsetMiterLimit; + + const QgsSettingsEntryBool settingsDigitizingConvertToCurve; + + const QgsSettingsEntryDouble settingsDigitizingConvertToCurveAngleTolerance; + + const QgsSettingsEntryDouble settingsDigitizingConvertToCurveDistanceTolerance; + + + const QgsSettingsEntryBool settingsDigitizingOffsetShowAdvanced; + + const QgsSettingsEntryInteger settingsDigitizingTracingMaxFeatureCount; +>>>>>>> 27bb50bc4d (Enum flag sip) }; diff --git a/src/core/settings/qgssettingsentry.cpp b/src/core/settings/qgssettingsentry.cpp index 3d2e8456047..35f09a85a3b 100644 --- a/src/core/settings/qgssettingsentry.cpp +++ b/src/core/settings/qgssettingsentry.cpp @@ -642,4 +642,53 @@ int QgsSettingsEntryDouble::displayHintDecimals() const return mDisplayHintDecimals; } +QgsSettingsEntryColor::QgsSettingsEntryColor( const QString &key, QgsSettings::Section section, const QColor &defaultValue, const QString &description ) + : QgsSettingsEntryBase( key, + section, + defaultValue, + description ) +{ +} + +QgsSettingsEntryColor::QgsSettingsEntryColor( const QString &key, const QString &pluginName, const QColor &defaultValue, const QString &description ) + : QgsSettingsEntryBase( key, + pluginName, + defaultValue, + description ) +{ +} + +bool QgsSettingsEntryColor::setValue( const QColor &value, const QString &dynamicKeyPart ) const +{ + QStringList dynamicKeyPartList; + if ( !dynamicKeyPart.isNull() ) + dynamicKeyPartList.append( dynamicKeyPart ); + + return setValue( value, dynamicKeyPartList ); +} + +bool QgsSettingsEntryColor::setValue( const QColor &value, const QStringList &dynamicKeyPartList ) const +{ + return QgsSettingsEntryBase::setVariantValue( value, dynamicKeyPartList ); +} + +QColor QgsSettingsEntryColor::value( const QString &dynamicKeyPart, bool useDefaultValueOverride, const QString &defaultValueOverride ) const +{ + return valueAsVariant( dynamicKeyPart, useDefaultValueOverride, defaultValueOverride ).value(); +} + +QColor QgsSettingsEntryColor::value( const QStringList &dynamicKeyPartList, bool useDefaultValueOverride, const QString &defaultValueOverride ) const +{ + return valueAsVariant( dynamicKeyPartList, useDefaultValueOverride, defaultValueOverride ).value(); +} + +QColor QgsSettingsEntryColor::defaultValue() const +{ + return defaultValueAsVariant().value(); +} + +QgsSettingsEntryBase::SettingsType QgsSettingsEntryColor::settingsType() const +{ + return QgsSettingsEntryBase::SettingsType::Color; +} diff --git a/src/core/settings/qgssettingsentry.h b/src/core/settings/qgssettingsentry.h index acff7d032f1..dbccb19c20d 100644 --- a/src/core/settings/qgssettingsentry.h +++ b/src/core/settings/qgssettingsentry.h @@ -17,6 +17,7 @@ #define QGSSETTINGSENTRY_H #include +#include #include #include "qgis_core.h" @@ -50,6 +51,8 @@ class CORE_EXPORT QgsSettingsEntryBase sipType = sipType_QgsSettingsEntryInteger; else if ( dynamic_cast< QgsSettingsEntryDouble * >( sipCpp ) ) sipType = sipType_QgsSettingsEntryDouble; + else if ( dynamic_cast< QgsSettingsEntryColor * >( sipCpp ) ) + sipType = sipType_QgsSettingsEntryColor; else sipType = NULL; SIP_END @@ -65,8 +68,8 @@ class CORE_EXPORT QgsSettingsEntryBase Bool, Integer, Double, - Enum, - Flag + EnumFlag, + Color }; #ifndef SIP_RUN @@ -866,16 +869,16 @@ class CORE_EXPORT QgsSettingsEntryDouble : public QgsSettingsEntryBase }; -#ifndef SIP_RUN - /** - * \class QgsSettingsEntryEnum + * \class QgsSettingsEntryEnumFlag * \ingroup core - * A base class for enum and flag settings entry. - * \since QGIS 3.20 + * A template class for enum and flag settings entry. + * + * \note This template class has a dedicated handling in sipify.pl + * \since QGIS 3.20 */ template -class QgsSettingsEntryEnumFlagBase : public QgsSettingsEntryBase +class CORE_EXPORT QgsSettingsEntryEnumFlag : public QgsSettingsEntryBase { public: @@ -890,16 +893,8 @@ class QgsSettingsEntryEnumFlagBase : public QgsSettingsEntryBase * \note The enum needs to be declared with Q_ENUM, and flags with Q_FLAG (not Q_FLAGS). * \note for Python bindings, a custom implementation is achieved in Python directly */ - QgsSettingsEntryEnumFlagBase( const QString &key, - QgsSettings::Section section, - const T &defaultValue, - const QString &description = QString() ) - : QgsSettingsEntryBase( key, - section, - QMetaEnum::fromType().isFlag() ? - QVariant( QMetaEnum::fromType().valueToKeys( defaultValue ) ) : - QVariant( QMetaEnum::fromType().valueToKey( defaultValue ) ), - description ) + QgsSettingsEntryEnumFlag( const QString &key, QgsSettings::Section section, const T &defaultValue, const QString &description = QString() ) + : QgsSettingsEntryBase( key, section, QMetaEnum::fromType().isFlag() ? QVariant( QMetaEnum::fromType().valueToKeys( defaultValue ) ) : QVariant( QMetaEnum::fromType().valueToKey( defaultValue ) ), description ) { mMetaEnum = QMetaEnum::fromType(); Q_ASSERT( mMetaEnum.isValid() ); @@ -936,7 +931,7 @@ class QgsSettingsEntryEnumFlagBase : public QgsSettingsEntryBase if ( useDefaultValueOverride ) defaultVal = defaultValueOverride; - if ( settingsType() == QgsSettingsEntryBase::SettingsType::Enum ) + if ( !mMetaEnum.isFlag() ) return QgsSettings().enumValue( key( dynamicKeyPartList ), defaultVal, section() ); @@ -959,7 +954,7 @@ class QgsSettingsEntryEnumFlagBase : public QgsSettingsEntryBase bool ok = false; T defaultValue; - if ( settingsType() == QgsSettingsEntryBase::SettingsType::Enum ) + if ( !mMetaEnum.isFlag() ) defaultValue = static_cast( mMetaEnum.keyToValue( defaultValueAsVariant().toByteArray(), &ok ) ); else defaultValue = static_cast( mMetaEnum.keysToValue( defaultValueAsVariant().toByteArray(), &ok ) ); @@ -992,7 +987,7 @@ class QgsSettingsEntryEnumFlagBase : public QgsSettingsEntryBase return false; } - if ( settingsType() == QgsSettingsEntryBase::SettingsType::Enum ) + if ( !mMetaEnum.isFlag() ) { const char *enumKey = mMetaEnum.valueToKey( value ); if ( enumKey == nullptr ) @@ -1015,99 +1010,102 @@ class QgsSettingsEntryEnumFlagBase : public QgsSettingsEntryBase } } + //! \copydoc QgsSettingsEntryBase::settingsType + virtual QgsSettingsEntryBase::SettingsType settingsType() const override + { + return QgsSettingsEntryBase::SettingsType::EnumFlag; + } + private: QMetaEnum mMetaEnum; }; -#endif -#ifndef SIP_RUN - /** - * \class QgsSettingsEntryEnum + * \class QgsSettingsEntryColor * \ingroup core - * An enum settings entry. - * \since QGIS 3.20 + * A color settings entry. + * \since QGIS 3.20 */ -template -class QgsSettingsEntryEnum : public QgsSettingsEntryEnumFlagBase +class CORE_EXPORT QgsSettingsEntryColor : public QgsSettingsEntryBase { public: +#ifndef SIP_RUN + /** - * Constructor for QgsSettingsEntryEnum. + * Constructor for QgsSettingsEntryColor. * * The \a key argument specifies the final part of the settings key. * The \a section argument specifies the section. * The \a default value argument specifies the default value for the settings entry. * The \a description argument specifies a description for the settings entry. - * - * \note The enum needs to be declared with Q_ENUM, and flags with Q_FLAG (not Q_FLAGS). - * \note for Python bindings, a custom implementation is achieved in Python directly */ - QgsSettingsEntryEnum( const QString &key, - QgsSettings::Section section, - const T &defaultValue, - const QString &description = QString() ) - : QgsSettingsEntryEnumFlagBase( key, - section, - defaultValue, - description ) - { - } + QgsSettingsEntryColor( const QString &key, + QgsSettings::Section section, + const QColor &defaultValue = QColor(), + const QString &description = QString() ); - //! \copydoc QgsSettingsEntryBase::settingsType - virtual QgsSettingsEntryBase::SettingsType settingsType() const override - { - return QgsSettingsEntryBase::SettingsType::Enum; - } -}; #endif - -#ifndef SIP_RUN - -/** - * \class QgsSettingsEntryFlag - * \ingroup core - * An flag settings entry. - * \since QGIS 3.20 - */ -template -class QgsSettingsEntryFlag : public QgsSettingsEntryEnumFlagBase -{ - public: - /** - * Constructor for QgsSettingsEntryFlag. + * Constructor for QgsSettingsEntryColor. + * This constructor is intended to be used from plugins. * - * The \a key argument specifies the final part of the settings key. - * The \a section argument specifies the section. + * The \a key argument specifies the key of the settings. + * The \a pluginName argument is inserted in the key after the section. * The \a default value argument specifies the default value for the settings entry. * The \a description argument specifies a description for the settings entry. - * - * \note The flag needs to be declared with Q_FLAG (not Q_FLAGS). - * \note for Python bindings, a custom implementation is achieved in Python directly. */ - QgsSettingsEntryFlag( const QString &key, - QgsSettings::Section section, - const T &defaultValue, - const QString &description = QString() ) - : QgsSettingsEntryEnumFlagBase( key, - section, - defaultValue, - description ) - { - } + QgsSettingsEntryColor( const QString &key, + const QString &pluginName, + const QColor &defaultValue = QColor(), + const QString &description = QString() ); + + /** + * Set settings value. + * + * The \a value to set. + * The \a dynamicKeyPart argument specifies the dynamic part of the settings key. + */ + bool setValue( const QColor &value, const QString &dynamicKeyPart = QString() ) const; + + /** + * Set settings value. + * + * The \a value to set. + * The \a dynamicKeyParts argument specifies the list of dynamic parts of the settings key. + */ + bool setValue( const QColor &value, const QStringList &dynamicKeyPartList ) const; + + /** + * Get settings value. + * + * The \a dynamicKeyPart argument specifies the dynamic part of the settings key. + * The \a useDefaultValueOverride argument specifies if defaultValueOverride should be used. + * The \a defaultValueOverride argument if valid is used instead of the normal default value. + */ + QColor value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QString &defaultValueOverride = QString() ) const; + + /** + * Get settings value. + * + * The \a dynamicKeyParts argument specifies the list of dynamic parts of the settings key. + * The \a useDefaultValueOverride argument specifies if defaultValueOverride should be used. + * The \a defaultValueOverride argument if valid is used instead of the normal default value. + */ + QColor value( const QStringList &dynamicKeyPartList, bool useDefaultValueOverride = false, const QString &defaultValueOverride = QString() ) const; + + /** + * Get settings default value. + */ + QColor defaultValue() const; //! \copydoc QgsSettingsEntryBase::settingsType - virtual QgsSettingsEntryBase::SettingsType settingsType() const override - { - return QgsSettingsEntryBase::SettingsType::Flag; - } + virtual SettingsType settingsType() const override; + }; -#endif #endif // QGSSETTINGSENTRY_H diff --git a/src/core/settings/qgssettingsregistrycore.cpp b/src/core/settings/qgssettingsregistrycore.cpp index dc0a35b3e40..23fbb8a622c 100644 --- a/src/core/settings/qgssettingsregistrycore.cpp +++ b/src/core/settings/qgssettingsregistrycore.cpp @@ -57,6 +57,44 @@ QgsSettingsRegistryCore::QgsSettingsRegistryCore() addSettingsEntry( &QgsLocalizedDataPathRegistry::settingsLocalizedDataPaths ); addSettingsEntry( &QgsMapRendererJob::settingsLogCanvasRefreshEvent ); + + addSettingsEntry( &settingsDigitizingStreamTolerance ); + addSettingsEntry( &settingsDigitizingLineWidth ); + addSettingsEntry( &settingsDigitizingLineColorRed ); + addSettingsEntry( &settingsDigitizingLineColorGreen ); + addSettingsEntry( &settingsDigitizingLineColorBlue ); + addSettingsEntry( &settingsDigitizingLineColorAlpha ); + addSettingsEntry( &settingsDigitizingLineColorAlphaScale ); + addSettingsEntry( &settingsDigitizingFillColorRed ); + addSettingsEntry( &settingsDigitizingFillColorGreen ); + addSettingsEntry( &settingsDigitizingFillColorBlue ); + addSettingsEntry( &settingsDigitizingFillColorAlpha ); + addSettingsEntry( &settingsDigitizingLineGhost ); + addSettingsEntry( &settingsDigitizingDefaultZValue ); + addSettingsEntry( &settingsDigitizingDefaultSnapEnabled ); +// addSettingsEntry( &settingsDigitizingDefaultSnapType ); + addSettingsEntry( &settingsDigitizingDefaultSnappingTolerance ); +// addSettingsEntry( &settingsDigitizingDefaultSnappingToleranceUnit ); + addSettingsEntry( &settingsDigitizingSearchRadiusVertexEdit ); +// addSettingsEntry( &settingsDigitizingSearchRadiusVertexEditUnit ); + addSettingsEntry( &settingsDigitizingSnapColor ); + addSettingsEntry( &settingsDigitizingSnapTooltip ); + addSettingsEntry( &settingsDigitizingSnapInvisibleFeature ); + addSettingsEntry( &settingsDigitizingMarkerOnlyForSelected ); + addSettingsEntry( &settingsDigitizingMarkerStyle ); + addSettingsEntry( &settingsDigitizingMarkerSizeMm ); + addSettingsEntry( &settingsDigitizingReuseLastValues ); + addSettingsEntry( &settingsDigitizingDisableEnterAttributeValuesDialog ); + addSettingsEntry( &settingsDigitizingValidateGeometries ); +// addSettingsEntry( &settingsDigitizingOffsetJoinStyle ); + addSettingsEntry( &settingsDigitizingOffsetQuadSeg ); + addSettingsEntry( &settingsDigitizingOffsetMiterLimit ); + addSettingsEntry( &settingsDigitizingConvertToCurve ); + addSettingsEntry( &settingsDigitizingConvertToCurveAngleTolerance ); + addSettingsEntry( &settingsDigitizingConvertToCurveDistanceTolerance ); +// addSettingsEntry( &settingsDigitizingOffsetCapStyle ); + addSettingsEntry( &settingsDigitizingOffsetShowAdvanced ); + addSettingsEntry( &settingsDigitizingTracingMaxFeatureCount ); } QgsSettingsRegistryCore::~QgsSettingsRegistryCore() diff --git a/src/core/settings/qgssettingsregistrycore.h b/src/core/settings/qgssettingsregistrycore.h index b85dfe80ee0..15e82e05786 100644 --- a/src/core/settings/qgssettingsregistrycore.h +++ b/src/core/settings/qgssettingsregistrycore.h @@ -20,6 +20,11 @@ #include "qgis_core.h" #include "qgis_sip.h" #include "qgssettingsregistry.h" +#include "qgssettingsentry.h" + +#include "qgis.h" +#include "qgssnappingconfig.h" +#include "qgsgeometry.h" /** * \ingroup core @@ -43,6 +48,117 @@ class CORE_EXPORT QgsSettingsRegistryCore : public QgsSettingsRegistry */ virtual ~QgsSettingsRegistryCore(); + //! Settings entry digitizing stream tolerance + static const inline QgsSettingsEntryInteger settingsDigitizingStreamTolerance = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/stream_tolerance" ), QgsSettings::NoSection, 2 ); + + //! Settings entry digitizing line width + static const inline QgsSettingsEntryInteger settingsDigitizingLineWidth = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/line_width" ), QgsSettings::NoSection, 1 ); + + //! Settings entry digitizing line color red + static const inline QgsSettingsEntryInteger settingsDigitizingLineColorRed = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/line_color_red" ), QgsSettings::NoSection, 255 ); + + //! Settings entry digitizing line color green + static const inline QgsSettingsEntryInteger settingsDigitizingLineColorGreen = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/line_color_green" ), QgsSettings::NoSection, 0 ); + + //! Settings entry digitizing line color blue + static const inline QgsSettingsEntryInteger settingsDigitizingLineColorBlue = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/line_color_blue" ), QgsSettings::NoSection, 0 ); + + //! Settings entry digitizing line color alpha + static const inline QgsSettingsEntryInteger settingsDigitizingLineColorAlpha = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/line_color_alpha" ), QgsSettings::NoSection, 200 ); + + //! Settings entry digitizing line color alpha scale + static const inline QgsSettingsEntryDouble settingsDigitizingLineColorAlphaScale = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/line_color_alpha_scale" ), QgsSettings::NoSection, 0.75 ); + + //! Settings entry digitizing fill color red + static const inline QgsSettingsEntryInteger settingsDigitizingFillColorRed = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/fill_color_red" ), QgsSettings::NoSection, 255 ); + + //! Settings entry digitizing fill color green + static const inline QgsSettingsEntryInteger settingsDigitizingFillColorGreen = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/fill_color_green" ), QgsSettings::NoSection, 0 ); + + //! Settings entry digitizing fill color blue + static const inline QgsSettingsEntryInteger settingsDigitizingFillColorBlue = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/fill_color_blue" ), QgsSettings::NoSection, 0 ); + + //! Settings entry digitizing fill color alpha + static const inline QgsSettingsEntryInteger settingsDigitizingFillColorAlpha = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/fill_color_alpha" ), QgsSettings::NoSection, 30 ); + + //! Settings entry digitizing line ghost + static const inline QgsSettingsEntryBool settingsDigitizingLineGhost = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/line_ghost" ), QgsSettings::NoSection, false ); + + //! Settings entry digitizing default z value + static const inline QgsSettingsEntryDouble settingsDigitizingDefaultZValue = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/default_z_value" ), QgsSettings::NoSection, Qgis::DEFAULT_Z_COORDINATE ); + + //! Settings entry digitizing default snap enabled + static const inline QgsSettingsEntryBool settingsDigitizingDefaultSnapEnabled = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/default_snap_enabled" ), QgsSettings::NoSection, false ); + + //! Settings entry digitizing default snap type + static const inline QgsSettingsEntryEnumFlag settingsDigitizingDefaultSnapType = QgsSettingsEntryEnumFlag( QStringLiteral( "/qgis/digitizing/default_snap_type" ), QgsSettings::NoSection, QgsSnappingConfig::VertexFlag ); + + //! Settings entry digitizing default snapping tolerance + static const inline QgsSettingsEntryDouble settingsDigitizingDefaultSnappingTolerance = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance" ), QgsSettings::NoSection, Qgis::DEFAULT_SNAP_TOLERANCE ); + + //! Settings entry digitizing default snapping tolerance unit +// static const inline QgsSettingsEntryEnum settingsDigitizingDefaultSnappingToleranceUnit = QgsSettingsEntryEnum( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), QgsSettings::NoSection, Qgis::DEFAULT_SNAP_UNITS ); + + //! Settings entry digitizing search radius vertex edit + static const inline QgsSettingsEntryDouble settingsDigitizingSearchRadiusVertexEdit = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit" ), QgsSettings::NoSection, 10 ); + + //! Settings entry digitizing search radius vertex edit unit +// static const inline QgsSettingsEntryEnum settingsDigitizingSearchRadiusVertexEditUnit = QgsSettingsEntryEnum( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit_unit" ), QgsSettings::NoSection, QgsTolerance::Pixels ); + + //! Settings entry digitizing snap color + static const inline QgsSettingsEntryColor settingsDigitizingSnapColor = QgsSettingsEntryColor( QStringLiteral( "/qgis/digitizing/snap_color" ), QgsSettings::NoSection, QColor( Qt::magenta ) ); + + //! Settings entry digitizing snap tooltip + static const inline QgsSettingsEntryBool settingsDigitizingSnapTooltip = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/snap_tooltip" ), QgsSettings::NoSection, false ); + + //! Settings entry digitizing snap invisible feature + static const inline QgsSettingsEntryBool settingsDigitizingSnapInvisibleFeature = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/snap_invisible_feature" ), QgsSettings::NoSection, false ); + + //! Settings entry digitizing marker only for selected + static const inline QgsSettingsEntryBool settingsDigitizingMarkerOnlyForSelected = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/marker_only_for_selected" ), QgsSettings::NoSection, true ); + + //! Settings entry digitizing marker style + static const inline QgsSettingsEntryString settingsDigitizingMarkerStyle = QgsSettingsEntryString( QStringLiteral( "/qgis/digitizing/marker_style" ), QgsSettings::NoSection, "Cross" ); + + //! Settings entry digitizing marker size mm + static const inline QgsSettingsEntryDouble settingsDigitizingMarkerSizeMm = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/marker_size_mm" ), QgsSettings::NoSection, 2.0 ); + + //! Settings entry digitizing reuseLastValues + static const inline QgsSettingsEntryBool settingsDigitizingReuseLastValues = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/reuseLastValues" ), QgsSettings::NoSection, false ); + + //! Settings entry digitizing disable enter attribute values dialog + static const inline QgsSettingsEntryBool settingsDigitizingDisableEnterAttributeValuesDialog = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/disable_enter_attribute_values_dialog" ), QgsSettings::NoSection, false ); + + //! Settings entry digitizing validate geometries + static const inline QgsSettingsEntryInteger settingsDigitizingValidateGeometries = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/validate_geometries" ), QgsSettings::NoSection, 1 ); + + //! Settings entry digitizing offset join style +// static const inline QgsSettingsEntryEnum settingsDigitizingOffsetJoinStyle = QgsSettingsEntryEnum( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsSettings::NoSection, QgsGeometry::JoinStyleRound ); + + //! Settings entry digitizing offset quad seg + static const inline QgsSettingsEntryInteger settingsDigitizingOffsetQuadSeg = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), QgsSettings::NoSection, 8 ); + + //! Settings entry digitizing offset miter limit + static const inline QgsSettingsEntryDouble settingsDigitizingOffsetMiterLimit = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/offset_miter_limit" ), QgsSettings::NoSection, 5.0 ); + + //! Settings entry digitizing convert to curve + static const inline QgsSettingsEntryBool settingsDigitizingConvertToCurve = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/convert_to_curve" ), QgsSettings::NoSection, false ); + + //! Settings entry digitizing convert to curve angle tolerance + static const inline QgsSettingsEntryDouble settingsDigitizingConvertToCurveAngleTolerance = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/convert_to_curve_angle_tolerance" ), QgsSettings::NoSection, 1e-6 ); + + //! Settings entry digitizing convert to curve distance tolerance + static const inline QgsSettingsEntryDouble settingsDigitizingConvertToCurveDistanceTolerance = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/convert_to_curve_distance_tolerance" ), QgsSettings::NoSection, 1e-6 ); + + //! Settings entry digitizing offset cap style +// static const inline QgsSettingsEntryEnum settingsDigitizingOffsetCapStyle = QgsSettingsEntryEnum( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), QgsSettings::NoSection, QgsGeometry::CapRound ); + + //! Settings entry digitizing offset show advanced + static const inline QgsSettingsEntryBool settingsDigitizingOffsetShowAdvanced = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/offset_show_advanced" ), QgsSettings::NoSection, false ); + + //! Settings entry digitizing tracing max feature count + static const inline QgsSettingsEntryInteger settingsDigitizingTracingMaxFeatureCount = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/tracing_max_feature_count" ), QgsSettings::NoSection, 10000 ); + }; #endif // QGSSETTINGSREGISTRYCORE_H diff --git a/tests/src/python/test_qgssettingsregistry.py b/tests/src/python/test_qgssettingsregistry.py index 2ac468c03eb..f1ae8f8a802 100644 --- a/tests/src/python/test_qgssettingsregistry.py +++ b/tests/src/python/test_qgssettingsregistry.py @@ -10,7 +10,7 @@ the Free Software Foundation; either version 2 of the License, or (at your option) any later version. """ -from qgis.core import QgsSettingsRegistry, QgsSettingsEntryBase, QgsSettingsEntryInteger, QgsApplication +from qgis.core import QgsSettingsRegistry, QgsSettingsRegistryCore, QgsSettingsEntryBase, QgsSettingsEntryInteger, QgsApplication from qgis.testing import start_app, unittest __author__ = 'Damiano Lombardi' @@ -42,6 +42,11 @@ class PyQgsSettingsRegistry(unittest.TestCase): self.assertEqual(QgsApplication.settingsRegistryCore().getSettingsEntry(settingsEntry.key(), True), settingsEntry) + print(QgsApplication.settingsRegistryCore().settingsDigitizingDefaultZValue.key()) + + print(QgsApplication.settingsRegistryCore().settingsDigitizingDefaultSnapType.key()) + print(QgsApplication.settingsRegistryCore().settingsDigitizingDefaultSnapType.value()) + if __name__ == '__main__': unittest.main() From eaf18f606012397f8cb4d3931048e6323a14d296 Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 22 Apr 2021 09:59:07 +0200 Subject: [PATCH 04/14] Moved all digitizing settings except Enums and Flags --- .../settings/qgssettingsregistrycore.sip.in | 13 -- .../qgsgeometryisvalidcheck.cpp | 4 +- src/app/labeling/qgsmaptoollabel.cpp | 11 +- src/app/maptools/qgsappmaptools.cpp | 9 +- src/app/options/qgsoptions.cpp | 141 +++++++++--------- src/app/qgisapp.cpp | 9 +- src/app/qgsdisplayangle.cpp | 2 +- src/app/qgsfeatureaction.cpp | 7 +- src/app/qgsmaptooladdellipse.h | 4 +- src/app/qgsmaptooloffsetcurve.cpp | 28 ++-- src/app/qgsmeasuredialog.cpp | 2 +- src/app/qgssnappingwidget.cpp | 5 +- src/app/vertextool/qgslockedfeature.cpp | 7 +- src/app/vertextool/qgsvertextool.cpp | 8 +- src/core/qgssnappingconfig.cpp | 10 +- src/core/qgstolerance.cpp | 8 +- src/core/qgstracer.cpp | 4 +- src/core/settings/qgssettingsregistrycore.h | 2 +- src/core/vector/qgsvectorlayerrenderer.cpp | 9 +- src/gui/qgsmapcanvassnappingutils.cpp | 8 +- src/gui/qgsmapcanvastracer.cpp | 4 +- src/gui/qgsmaptoolcapture.cpp | 20 +-- src/gui/qgsmaptooledit.cpp | 44 +++--- src/gui/qgssnapindicator.cpp | 8 +- .../vector/qgsattributesformproperties.cpp | 5 +- tests/src/app/testqgsgpsinformationwidget.cpp | 3 +- .../src/app/testqgsmaptooladdfeatureline.cpp | 29 ++-- .../src/app/testqgsmaptooladdfeaturepoint.cpp | 6 +- tests/src/app/testqgsmaptoolcircle.cpp | 26 ++-- .../src/app/testqgsmaptoolcircularstring.cpp | 22 +-- tests/src/app/testqgsmaptoolellipse.cpp | 34 ++--- tests/src/app/testqgsmaptoolrectangle.cpp | 34 ++--- .../src/app/testqgsmaptoolregularpolygon.cpp | 26 ++-- tests/src/app/testqgsmaptoolreshape.cpp | 6 +- tests/src/app/testqgsvertextool.cpp | 4 +- tests/src/gui/testqgsmaptooledit.cpp | 7 +- 36 files changed, 261 insertions(+), 308 deletions(-) diff --git a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in index a5dc211ea13..9e8393cf500 100644 --- a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in +++ b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in @@ -72,19 +72,6 @@ Add ``settingsEntry`` to the register. const QgsSettingsEntryBool settingsDigitizingDefaultSnapEnabled; -class QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType -{ -%TypeHeaderCode -#include "qgssettingsregistrycore.h" -#include "qgssettingsentry.h" -typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType; -%End - public: - QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType( const QString &key, QgsSettings::Section section, const QgsSnappingConfig::SnappingTypes &defaultValue, const QString &description = QString() ); - QString key( const QString &dynamicKeyPart = QString() ) const; - QgsSnappingConfig::SnappingTypes value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsSnappingConfig::SnappingTypes &defaultValueOverride = QgsSnappingConfig::SnappingTypes() ) const; -}; - const QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType settingsDigitizingDefaultSnapType; const QgsSettingsEntryDouble settingsDigitizingDefaultSnappingTolerance; diff --git a/src/analysis/vector/geometry_checker/qgsgeometryisvalidcheck.cpp b/src/analysis/vector/geometry_checker/qgsgeometryisvalidcheck.cpp index 70fb748dbcb..1eda234eb02 100644 --- a/src/analysis/vector/geometry_checker/qgsgeometryisvalidcheck.cpp +++ b/src/analysis/vector/geometry_checker/qgsgeometryisvalidcheck.cpp @@ -15,7 +15,7 @@ email : matthias@opengis.ch #include "qgsgeometryisvalidcheck.h" #include "qgsfeature.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsgeos.h" #include "qgsgeometryvalidator.h" @@ -33,7 +33,7 @@ QList QgsGeometryIsValidCheck::processGeometry( c QVector errors; QgsGeometry::ValidationMethod method = QgsGeometry::ValidatorQgisInternal; - if ( QgsSettings().value( QStringLiteral( "qgis/digitizing/validate_geometries" ), 1 ).toInt() == 2 ) + if ( QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.value() == 2 ) method = QgsGeometry::ValidatorGeos; QgsGeometryValidator validator( geometry, &errors, method ); diff --git a/src/app/labeling/qgsmaptoollabel.cpp b/src/app/labeling/qgsmaptoollabel.cpp index bb1d1f68174..a37dfef4965 100644 --- a/src/app/labeling/qgsmaptoollabel.cpp +++ b/src/app/labeling/qgsmaptoollabel.cpp @@ -24,7 +24,7 @@ #include "qgsvectorlayer.h" #include "qgsvectorlayerlabeling.h" #include "qgsdiagramrenderer.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayerjoininfo.h" #include "qgsvectorlayerjoinbuffer.h" #include "qgsauxiliarystorage.h" @@ -189,11 +189,10 @@ void QgsMapToolLabel::createRubberBands() // instead, just use the boundary of the polygon for the rubber band geom = QgsGeometry( geom.constGet()->boundary() ); } - QgsSettings settings; - int r = settings.value( QStringLiteral( "qgis/digitizing/line_color_red" ), 255 ).toInt(); - int g = settings.value( QStringLiteral( "qgis/digitizing/line_color_green" ), 0 ).toInt(); - int b = settings.value( QStringLiteral( "qgis/digitizing/line_color_blue" ), 0 ).toInt(); - int a = settings.value( QStringLiteral( "qgis/digitizing/line_color_alpha" ), 200 ).toInt(); + int r = QgsSettingsRegistryCore::settingsDigitizingLineColorRed.value(); + int g = QgsSettingsRegistryCore::settingsDigitizingLineColorGreen.value(); + int b = QgsSettingsRegistryCore::settingsDigitizingLineColorBlue.value(); + int a = QgsSettingsRegistryCore::settingsDigitizingLineColorAlpha.value(); mFeatureRubberBand = new QgsRubberBand( mCanvas, geom.type() ); mFeatureRubberBand->setColor( QColor( r, g, b, a ) ); mFeatureRubberBand->setToGeometry( geom, vlayer ); diff --git a/src/app/maptools/qgsappmaptools.cpp b/src/app/maptools/qgsappmaptools.cpp index 23b14b310e9..6387bc9a2d6 100644 --- a/src/app/maptools/qgsappmaptools.cpp +++ b/src/app/maptools/qgsappmaptools.cpp @@ -69,6 +69,7 @@ #include "qgsmaptoolpinlabels.h" #include "qgsmaptooloffsetpointsymbol.h" #include "qgsspinbox.h" +#include "qgssettingsregistrycore.h" // // QgsStreamDigitizingSettingsAction @@ -80,9 +81,6 @@ QgsStreamDigitizingSettingsAction::QgsStreamDigitizingSettingsAction( QWidget *p QGridLayout *gLayout = new QGridLayout(); gLayout->setContentsMargins( 3, 2, 3, 2 ); - QgsSettings settings; - int defaultTolerance = settings.value( QStringLiteral( "/qgis/digitizing/stream_tolerance" ), 2 ).toInt(); - mStreamToleranceSpinBox = new QgsSpinBox(); mStreamToleranceSpinBox->setSuffix( tr( "px" ) ); mStreamToleranceSpinBox->setKeyboardTracking( false ); @@ -90,15 +88,14 @@ QgsStreamDigitizingSettingsAction::QgsStreamDigitizingSettingsAction( QWidget *p mStreamToleranceSpinBox->setWrapping( false ); mStreamToleranceSpinBox->setSingleStep( 1 ); mStreamToleranceSpinBox->setClearValue( 2 ); - mStreamToleranceSpinBox->setValue( defaultTolerance ); + mStreamToleranceSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingStreamTolerance.value() ); QLabel *label = new QLabel( tr( "Streaming Tolerance" ) ); gLayout->addWidget( label, 1, 0 ); gLayout->addWidget( mStreamToleranceSpinBox, 1, 1 ); connect( mStreamToleranceSpinBox, qOverload( &QgsSpinBox::valueChanged ), this, [ = ]( int value ) { - QgsSettings settings; - settings.setValue( QStringLiteral( "/qgis/digitizing/stream_tolerance" ), value ); + QgsSettingsRegistryCore::settingsDigitizingStreamTolerance.setValue( value ); } ); QWidget *w = new QWidget(); diff --git a/src/app/options/qgsoptions.cpp b/src/app/options/qgsoptions.cpp index cf88ec41423..61f0d76ed1f 100644 --- a/src/app/options/qgsoptions.cpp +++ b/src/app/options/qgsoptions.cpp @@ -54,6 +54,7 @@ #include "qgsunittypes.h" #include "qgsclipboard.h" #include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsoptionswidgetfactory.h" #include "qgslocatorwidget.h" #include "qgslocatoroptionswidget.h" @@ -358,7 +359,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetValue( QgsNetworkAccessManager::timeout() ); - mNetworkTimeoutSpinBox->setClearValue( 60000 ); + mNetworkTimeoutSpinBox->setClearValue( QgsNetworkAccessManager::settingsNetworkTimeout.defaultValue() ); leUserAgent->setText( mSettings->value( QStringLiteral( "/qgis/networkAndProxy/userAgent" ), "Mozilla/5.0" ).toString() ); // WMS capabilities expiry time @@ -578,7 +579,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetCurrentIndex( mAngleUnitsComboBox->findData( unit ) ); // set decimal places of the measure tool - int decimalPlaces = mSettings->value( QStringLiteral( "/qgis/measure/decimalplaces" ), "3" ).toInt(); + int decimalPlaces = mSettings->value( QStringLiteral( "/qgis/measure/decimalplaces" ), 3 ).toInt(); mDecimalPlacesSpinBox->setClearValue( 3 ); mDecimalPlacesSpinBox->setRange( 0, 12 ); mDecimalPlacesSpinBox->setValue( decimalPlaces ); @@ -1049,34 +1050,30 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetValue( mSettings->value( QStringLiteral( "/qgis/digitizing/line_width" ), 1 ).toInt() ); - red = mSettings->value( QStringLiteral( "/qgis/digitizing/line_color_red" ), 255 ).toInt(); - green = mSettings->value( QStringLiteral( "/qgis/digitizing/line_color_green" ), 0 ).toInt(); - blue = mSettings->value( QStringLiteral( "/qgis/digitizing/line_color_blue" ), 0 ).toInt(); - alpha = mSettings->value( QStringLiteral( "/qgis/digitizing/line_color_alpha" ), 200 ).toInt(); - mLineColorToolButton->setColor( QColor( red, green, blue, alpha ) ); + mLineWidthSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingLineWidth.value() ); + mLineColorToolButton->setColor( QColor( QgsSettingsRegistryCore::settingsDigitizingLineColorRed.value(), + QgsSettingsRegistryCore::settingsDigitizingLineColorGreen.value(), + QgsSettingsRegistryCore::settingsDigitizingLineColorBlue.value(), + QgsSettingsRegistryCore::settingsDigitizingLineColorAlpha.value() ) ); mLineColorToolButton->setAllowOpacity( true ); mLineColorToolButton->setContext( QStringLiteral( "gui" ) ); mLineColorToolButton->setDefaultColor( QColor( 255, 0, 0, 200 ) ); - red = mSettings->value( QStringLiteral( "/qgis/digitizing/fill_color_red" ), 255 ).toInt(); - green = mSettings->value( QStringLiteral( "/qgis/digitizing/fill_color_green" ), 0 ).toInt(); - blue = mSettings->value( QStringLiteral( "/qgis/digitizing/fill_color_blue" ), 0 ).toInt(); - alpha = mSettings->value( QStringLiteral( "/qgis/digitizing/fill_color_alpha" ), 30 ).toInt(); - mFillColorToolButton->setColor( QColor( red, green, blue, alpha ) ); + mFillColorToolButton->setColor( QColor( QgsSettingsRegistryCore::settingsDigitizingFillColorRed.value(), + QgsSettingsRegistryCore::settingsDigitizingFillColorGreen.value(), + QgsSettingsRegistryCore::settingsDigitizingFillColorBlue.value(), + QgsSettingsRegistryCore::settingsDigitizingFillColorAlpha.value() ) ); mFillColorToolButton->setAllowOpacity( true ); mFillColorToolButton->setContext( QStringLiteral( "gui" ) ); mFillColorToolButton->setDefaultColor( QColor( 255, 0, 0, 30 ) ); - mLineGhostCheckBox->setChecked( mSettings->value( QStringLiteral( "/qgis/digitizing/line_ghost" ), false ).toBool() ); + mLineGhostCheckBox->setChecked( QgsSettingsRegistryCore::settingsDigitizingLineGhost.value() ); - mDefaultZValueSpinBox->setValue( - mSettings->value( QStringLiteral( "/qgis/digitizing/default_z_value" ), Qgis::DEFAULT_Z_COORDINATE ).toDouble() - ); - mDefaultZValueSpinBox->setClearValue( Qgis::DEFAULT_Z_COORDINATE ); + mDefaultZValueSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.value() ); + mDefaultZValueSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.defaultValue() ); //default snap mode - mSnappingEnabledDefault->setChecked( mSettings->value( QStringLiteral( "/qgis/digitizing/default_snap_enabled" ), false ).toBool() ); + mSnappingEnabledDefault->setChecked( QgsSettingsRegistryCore::settingsDigitizingDefaultSnapEnabled.value() ); for ( QgsSnappingConfig::SnappingTypes type : { @@ -1096,10 +1093,10 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListflagValue( QStringLiteral( "/qgis/digitizing/default_snap_type" ), QgsSnappingConfig::VertexFlag ); mDefaultSnapModeComboBox->setCurrentIndex( mDefaultSnapModeComboBox->findData( static_cast( defaultSnapMode ) ) ); - mDefaultSnappingToleranceSpinBox->setValue( mSettings->value( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance" ), Qgis::DEFAULT_SNAP_TOLERANCE ).toDouble() ); - mDefaultSnappingToleranceSpinBox->setClearValue( Qgis::DEFAULT_SNAP_TOLERANCE ); - mSearchRadiusVertexEditSpinBox->setValue( mSettings->value( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit" ), 10 ).toDouble() ); - mSearchRadiusVertexEditSpinBox->setClearValue( 10 ); + mDefaultSnappingToleranceSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.value() ); + mDefaultSnappingToleranceSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.defaultValue() ); + mSearchRadiusVertexEditSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.value() ); + mSearchRadiusVertexEditSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.defaultValue() ); QgsTolerance::UnitType defSnapUnits = mSettings->enumValue( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), Qgis::DEFAULT_SNAP_UNITS ); if ( defSnapUnits == QgsTolerance::ProjectUnits || defSnapUnits == QgsTolerance::LayerUnits ) { @@ -1121,12 +1118,12 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetCurrentIndex( index ); - mSnappingMarkerColorButton->setColor( mSettings->value( QStringLiteral( "/qgis/digitizing/snap_color" ), QColor( Qt::magenta ) ).value() ); - mSnappingTooltipsCheckbox->setChecked( mSettings->value( QStringLiteral( "/qgis/digitizing/snap_tooltip" ), false ).toBool() ); - mEnableSnappingOnInvisibleFeatureCheckbox->setChecked( mSettings->value( QStringLiteral( "/qgis/digitizing/snap_invisible_feature" ), false ).toBool() ); + mSnappingMarkerColorButton->setColor( QgsSettingsRegistryCore::settingsDigitizingSnapColor.value() ); + mSnappingTooltipsCheckbox->setChecked( QgsSettingsRegistryCore::settingsDigitizingSnapTooltip.value() ); + mEnableSnappingOnInvisibleFeatureCheckbox->setChecked( QgsSettingsRegistryCore::settingsDigitizingSnapInvisibleFeature.value() ); //vertex marker - mMarkersOnlyForSelectedCheckBox->setChecked( mSettings->value( QStringLiteral( "/qgis/digitizing/marker_only_for_selected" ), true ).toBool() ); + mMarkersOnlyForSelectedCheckBox->setChecked( QgsSettingsRegistryCore::settingsDigitizingMarkerOnlyForSelected.value() ); mMarkerStyleComboBox->addItem( tr( "Semi Transparent Circle" ) ); mMarkerStyleComboBox->addItem( tr( "Cross" ) ); @@ -1137,7 +1134,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListaddItem( tr( "QGIS" ) ); mValidateGeometries->addItem( tr( "GEOS" ) ); - QString markerStyle = mSettings->value( QStringLiteral( "/qgis/digitizing/marker_style" ), "Cross" ).toString(); + QString markerStyle = QgsSettingsRegistryCore::settingsDigitizingMarkerStyle.value(); if ( markerStyle == QLatin1String( "SemiTransparentCircle" ) ) { mMarkerStyleComboBox->setCurrentIndex( mMarkerStyleComboBox->findText( tr( "Semi Transparent Circle" ) ) ); @@ -1150,12 +1147,12 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListsetCurrentIndex( mMarkerStyleComboBox->findText( tr( "None" ) ) ); } - mMarkerSizeSpinBox->setValue( mSettings->value( QStringLiteral( "/qgis/digitizing/marker_size_mm" ), 2.0 ).toDouble() ); - mMarkerSizeSpinBox->setClearValue( 2.0 ); + mMarkerSizeSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingMarkerSizeMm.value() ); + mMarkerSizeSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingMarkerSizeMm.defaultValue() ); - chkReuseLastValues->setChecked( mSettings->value( QStringLiteral( "/qgis/digitizing/reuseLastValues" ), false ).toBool() ); - chkDisableAttributeValuesDlg->setChecked( mSettings->value( QStringLiteral( "/qgis/digitizing/disable_enter_attribute_values_dialog" ), false ).toBool() ); - mValidateGeometries->setCurrentIndex( mSettings->value( QStringLiteral( "/qgis/digitizing/validate_geometries" ), 1 ).toInt() ); + chkReuseLastValues->setChecked( QgsSettingsRegistryCore::settingsDigitizingReuseLastValues.value() ); + chkDisableAttributeValuesDlg->setChecked( QgsSettingsRegistryCore::settingsDigitizingDisableEnterAttributeValuesDialog.value() ); + mValidateGeometries->setCurrentIndex( QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.value() ); mSnappingMainDialogComboBox->clear(); mSnappingMainDialogComboBox->addItem( tr( "Dialog" ), "dialog" ); @@ -1167,16 +1164,16 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListaddItem( tr( "Bevel" ), QgsGeometry::JoinStyleBevel ); QgsGeometry::JoinStyle joinStyleSetting = mSettings->enumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsGeometry::JoinStyleRound ); mOffsetJoinStyleComboBox->setCurrentIndex( mOffsetJoinStyleComboBox->findData( joinStyleSetting ) ); - mOffsetQuadSegSpinBox->setValue( mSettings->value( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), 8 ).toInt() ); - mOffsetQuadSegSpinBox->setClearValue( 8 ); - mCurveOffsetMiterLimitComboBox->setValue( mSettings->value( QStringLiteral( "/qgis/digitizing/offset_miter_limit" ), 5.0 ).toDouble() ); - mCurveOffsetMiterLimitComboBox->setClearValue( 5.0 ); + mOffsetQuadSegSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.value() ); + mOffsetQuadSegSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.defaultValue() ); + mCurveOffsetMiterLimitComboBox->setValue( QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.value() ); + mCurveOffsetMiterLimitComboBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.defaultValue() ); - mTracingConvertToCurveCheckBox->setChecked( mSettings->value( QStringLiteral( "/qgis/digitizing/convert_to_curve" ), false ).toBool() ); - mTracingCustomAngleToleranceSpinBox->setValue( mSettings->value( QStringLiteral( "/qgis/digitizing/convert_to_curve_angle_tolerance" ), 1e-6 ).toDouble() ); - mTracingCustomAngleToleranceSpinBox->setClearValue( 1e-6 ); - mTracingCustomDistanceToleranceSpinBox->setValue( mSettings->value( QStringLiteral( "/qgis/digitizing/convert_to_curve_distance_tolerance" ), 1e-6 ).toDouble() ); - mTracingCustomDistanceToleranceSpinBox->setClearValue( 1e-6 ); + mTracingConvertToCurveCheckBox->setChecked( QgsSettingsRegistryCore::settingsDigitizingConvertToCurve.value() ); + mTracingCustomAngleToleranceSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingConvertToCurveAngleTolerance.value() ); + mTracingCustomAngleToleranceSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingConvertToCurveAngleTolerance.defaultValue() ); + mTracingCustomDistanceToleranceSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingConvertToCurveDistanceTolerance.value() ); + mTracingCustomDistanceToleranceSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingConvertToCurveDistanceTolerance.defaultValue() ); // load gdal driver list only when gdal tab is first opened mLoadedGdalDriverList = false; @@ -1739,65 +1736,65 @@ void QgsOptions::saveOptions() mSettings->setValue( QStringLiteral( "/qgis/zoom_factor" ), zoomFactorValue() ); //digitizing - mSettings->setValue( QStringLiteral( "/qgis/digitizing/line_width" ), mLineWidthSpinBox->value() ); + QgsSettingsRegistryCore::settingsDigitizingLineWidth.setValue( mLineWidthSpinBox->value() ); QColor digitizingColor = mLineColorToolButton->color(); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/line_color_red" ), digitizingColor.red() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/line_color_green" ), digitizingColor.green() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/line_color_blue" ), digitizingColor.blue() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/line_color_alpha" ), digitizingColor.alpha() ); + QgsSettingsRegistryCore::settingsDigitizingLineColorRed.setValue( digitizingColor.red() ); + QgsSettingsRegistryCore::settingsDigitizingLineColorGreen.setValue( digitizingColor.green() ); + QgsSettingsRegistryCore::settingsDigitizingLineColorBlue.setValue( digitizingColor.blue() ); + QgsSettingsRegistryCore::settingsDigitizingLineColorAlpha.setValue( digitizingColor.alpha() ); digitizingColor = mFillColorToolButton->color(); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/fill_color_red" ), digitizingColor.red() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/fill_color_green" ), digitizingColor.green() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/fill_color_blue" ), digitizingColor.blue() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/fill_color_alpha" ), digitizingColor.alpha() ); + QgsSettingsRegistryCore::settingsDigitizingFillColorRed.setValue( digitizingColor.red() ); + QgsSettingsRegistryCore::settingsDigitizingFillColorGreen.setValue( digitizingColor.green() ); + QgsSettingsRegistryCore::settingsDigitizingFillColorBlue.setValue( digitizingColor.blue() ); + QgsSettingsRegistryCore::settingsDigitizingFillColorAlpha.setValue( digitizingColor.alpha() ); - settings.setValue( QStringLiteral( "/qgis/digitizing/line_ghost" ), mLineGhostCheckBox->isChecked() ); + QgsSettingsRegistryCore::settingsDigitizingLineGhost.setValue( mLineGhostCheckBox->isChecked() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), mDefaultZValueSpinBox->value() ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( mDefaultZValueSpinBox->value() ); //default snap mode - mSettings->setValue( QStringLiteral( "/qgis/digitizing/default_snap_enabled" ), mSnappingEnabledDefault->isChecked() ); + QgsSettingsRegistryCore::settingsDigitizingDefaultSnapEnabled.setValue( mSnappingEnabledDefault->isChecked() ); mSettings->setFlagValue( QStringLiteral( "/qgis/digitizing/default_snap_type" ), static_cast( mDefaultSnapModeComboBox->currentData().toInt() ) ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance" ), mDefaultSnappingToleranceSpinBox->value() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit" ), mSearchRadiusVertexEditSpinBox->value() ); + QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.setValue( mDefaultSnappingToleranceSpinBox->value() ); + QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.setValue( mSearchRadiusVertexEditSpinBox->value() ); mSettings->setEnumValue( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), ( mDefaultSnappingToleranceComboBox->currentIndex() == 0 ? QgsTolerance::ProjectUnits : QgsTolerance::Pixels ) ); mSettings->setEnumValue( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit_unit" ), ( mSearchRadiusVertexEditComboBox->currentIndex() == 0 ? QgsTolerance::ProjectUnits : QgsTolerance::Pixels ) ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/snap_color" ), mSnappingMarkerColorButton->color() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/snap_tooltip" ), mSnappingTooltipsCheckbox->isChecked() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/snap_invisible_feature" ), mEnableSnappingOnInvisibleFeatureCheckbox->isChecked() ); + QgsSettingsRegistryCore::settingsDigitizingSnapColor.setValue( mSnappingMarkerColorButton->color() ); + QgsSettingsRegistryCore::settingsDigitizingSnapTooltip.setValue( mSnappingTooltipsCheckbox->isChecked() ); + QgsSettingsRegistryCore::settingsDigitizingSnapInvisibleFeature.setValue( mEnableSnappingOnInvisibleFeatureCheckbox->isChecked() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/marker_only_for_selected" ), mMarkersOnlyForSelectedCheckBox->isChecked() ); + QgsSettingsRegistryCore::settingsDigitizingMarkerOnlyForSelected.setValue( mMarkersOnlyForSelectedCheckBox->isChecked() ); QString markerComboText = mMarkerStyleComboBox->currentText(); if ( markerComboText == tr( "Semi Transparent Circle" ) ) { - mSettings->setValue( QStringLiteral( "/qgis/digitizing/marker_style" ), "SemiTransparentCircle" ); + QgsSettingsRegistryCore::settingsDigitizingMarkerStyle.setValue( QStringLiteral( "SemiTransparentCircle" ) ); } else if ( markerComboText == tr( "Cross" ) ) { - mSettings->setValue( QStringLiteral( "/qgis/digitizing/marker_style" ), "Cross" ); + QgsSettingsRegistryCore::settingsDigitizingMarkerStyle.setValue( QStringLiteral( "Cross" ) ); } else if ( markerComboText == tr( "None" ) ) { - mSettings->setValue( QStringLiteral( "/qgis/digitizing/marker_style" ), "None" ); + QgsSettingsRegistryCore::settingsDigitizingMarkerStyle.setValue( QStringLiteral( "None" ) ); } - mSettings->setValue( QStringLiteral( "/qgis/digitizing/marker_size_mm" ), ( mMarkerSizeSpinBox->value() ) ); + QgsSettingsRegistryCore::settingsDigitizingMarkerSizeMm.setValue( mMarkerSizeSpinBox->value() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/reuseLastValues" ), chkReuseLastValues->isChecked() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/disable_enter_attribute_values_dialog" ), chkDisableAttributeValuesDlg->isChecked() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/validate_geometries" ), mValidateGeometries->currentIndex() ); + QgsSettingsRegistryCore::settingsDigitizingReuseLastValues.setValue( chkReuseLastValues->isChecked() ); + QgsSettingsRegistryCore::settingsDigitizingDisableEnterAttributeValuesDialog.setValue( chkDisableAttributeValuesDlg->isChecked() ); + QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.setValue( mValidateGeometries->currentIndex() ); mSettings->setEnumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), mOffsetJoinStyleComboBox->currentData().value() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), mOffsetQuadSegSpinBox->value() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/offset_miter_limit" ), mCurveOffsetMiterLimitComboBox->value() ); + QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.setValue( mOffsetQuadSegSpinBox->value() ); + QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.setValue( mCurveOffsetMiterLimitComboBox->value() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/convert_to_curve" ), mTracingConvertToCurveCheckBox->isChecked() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/convert_to_curve_angle_tolerance" ), mTracingCustomAngleToleranceSpinBox->value() ); - mSettings->setValue( QStringLiteral( "/qgis/digitizing/convert_to_curve_distance_tolerance" ), mTracingCustomDistanceToleranceSpinBox->value() ); + QgsSettingsRegistryCore::settingsDigitizingConvertToCurve.setValue( mTracingConvertToCurveCheckBox->isChecked() ); + QgsSettingsRegistryCore::settingsDigitizingConvertToCurveAngleTolerance.setValue( mTracingCustomAngleToleranceSpinBox->value() ); + QgsSettingsRegistryCore::settingsDigitizingConvertToCurveDistanceTolerance.setValue( mTracingCustomDistanceToleranceSpinBox->value() ); // default scale list QString myPaths; diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index 8e53561d916..d1c56645608 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -76,7 +76,7 @@ #include #include -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsnetworkaccessmanager.h" #include "qgsrelationmanager.h" #include "qgsapplication.h" @@ -11111,9 +11111,8 @@ bool QgisApp::toggleEditing( QgsMapLayer *layer, bool allowCancel ) vlayer->startEditing(); - QgsSettings settings; - QString markerType = settings.value( QStringLiteral( "qgis/digitizing/marker_style" ), "Cross" ).toString(); - bool markSelectedOnly = settings.value( QStringLiteral( "qgis/digitizing/marker_only_for_selected" ), true ).toBool(); + QString markerType = QgsSettingsRegistryCore::settingsDigitizingMarkerStyle.value(); + bool markSelectedOnly = QgsSettingsRegistryCore::settingsDigitizingMarkerOnlyForSelected.value(); // redraw only if markers will be drawn if ( ( !markSelectedOnly || vlayer->selectedFeatureCount() > 0 ) && @@ -14347,7 +14346,7 @@ void QgisApp::showPanMessage( double distance, QgsUnitTypes::DistanceUnit unit, return; const double distanceInProjectUnits = distance * QgsUnitTypes::fromUnitToUnitFactor( unit, QgsProject::instance()->distanceUnits() ); - const int distanceDecimalPlaces = QgsSettings().value( QStringLiteral( "qgis/measure/decimalplaces" ), "3" ).toInt(); + const int distanceDecimalPlaces = QgsSettings().value( QStringLiteral( "qgis/measure/decimalplaces" ), 3 ).toInt(); const QString distanceString = QgsDistanceArea::formatDistance( distanceInProjectUnits, distanceDecimalPlaces, QgsProject::instance()->distanceUnits() ); const QString bearingString = mBearingNumericFormat->formatDouble( bearing, QgsNumericFormatContext() ); mStatusBar->showMessage( tr( "Pan distance %1 (%2)" ).arg( distanceString, bearingString ), 2000 ); diff --git a/src/app/qgsdisplayangle.cpp b/src/app/qgsdisplayangle.cpp index 65f66117b5e..a455d40c4f7 100644 --- a/src/app/qgsdisplayangle.cpp +++ b/src/app/qgsdisplayangle.cpp @@ -39,6 +39,6 @@ void QgsDisplayAngle::updateUi() { QgsSettings settings; QgsUnitTypes::AngleUnit unit = QgsUnitTypes::decodeAngleUnit( settings.value( QStringLiteral( "qgis/measure/angleunits" ), QgsUnitTypes::encodeUnit( QgsUnitTypes::AngleDegrees ) ).toString() ); - int decimals = settings.value( QStringLiteral( "qgis/measure/decimalplaces" ), "3" ).toInt(); + int decimals = settings.value( QStringLiteral( "qgis/measure/decimalplaces" ), 3 ).toInt(); mAngleLineEdit->setText( QgsUnitTypes::formatAngle( mValue * QgsUnitTypes::fromUnitToUnitFactor( QgsUnitTypes::AngleRadians, unit ), decimals, unit ) ); } diff --git a/src/app/qgsfeatureaction.cpp b/src/app/qgsfeatureaction.cpp index e913047fed2..dce15056353 100644 --- a/src/app/qgsfeatureaction.cpp +++ b/src/app/qgsfeatureaction.cpp @@ -30,7 +30,7 @@ #include "qgsactionmanager.h" #include "qgsaction.h" #include "qgsvectorlayerutils.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include @@ -173,8 +173,7 @@ bool QgsFeatureAction::addFeature( const QgsAttributeMap &defaultAttributes, boo if ( !mLayer || !mLayer->isEditable() ) return false; - QgsSettings settings; - const bool reuseAllLastValues = settings.value( QStringLiteral( "qgis/digitizing/reuseLastValues" ), false ).toBool(); + const bool reuseAllLastValues = QgsSettingsRegistryCore::settingsDigitizingReuseLastValues.value(); QgsDebugMsgLevel( QStringLiteral( "reuseAllLastValues: %1" ).arg( reuseAllLastValues ), 2 ); QgsFields fields = mLayer->fields(); @@ -204,7 +203,7 @@ bool QgsFeatureAction::addFeature( const QgsAttributeMap &defaultAttributes, boo //show the dialog to enter attribute values //only show if enabled in settings - bool isDisabledAttributeValuesDlg = settings.value( QStringLiteral( "qgis/digitizing/disable_enter_attribute_values_dialog" ), false ).toBool(); + bool isDisabledAttributeValuesDlg = QgsSettingsRegistryCore::settingsDigitizingDisableEnterAttributeValuesDialog.value(); // override application-wide setting if layer is non-spatial -- BECAUSE it's bad UX if // it appears that nothing happens when you click the add row button for a non-spatial layer. Unlike diff --git a/src/app/qgsmaptooladdellipse.h b/src/app/qgsmaptooladdellipse.h index 81480e204b9..0fc30791221 100644 --- a/src/app/qgsmaptooladdellipse.h +++ b/src/app/qgsmaptooladdellipse.h @@ -18,7 +18,7 @@ #include "qgsmaptoolcapture.h" #include "qgsellipse.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgis_app.h" class QgsGeometryRubberBand; @@ -57,7 +57,7 @@ class APP_EXPORT QgsMapToolAddEllipse: public QgsMapToolCapture //! Ellipse QgsEllipse mEllipse; //! convenient method to return the number of segments - unsigned int segments( ) { return QgsSettings().value( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), 8 ).toInt() * 12; } + unsigned int segments( ) { return QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.value() * 12; } //! Layer type which will be used for rubberband QgsWkbTypes::GeometryType mLayerType = QgsWkbTypes::LineGeometry; diff --git a/src/app/qgsmaptooloffsetcurve.cpp b/src/app/qgsmaptooloffsetcurve.cpp index 917d9d5e0f3..6a7aaf7efff 100644 --- a/src/app/qgsmaptooloffsetcurve.cpp +++ b/src/app/qgsmaptooloffsetcurve.cpp @@ -27,7 +27,7 @@ #include "qgsvectorlayer.h" #include "qgssnapindicator.h" #include "qgssnappingconfig.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgisapp.h" #include "qgsmapmouseevent.h" #include "qgslogger.h" @@ -619,11 +619,10 @@ void QgsMapToolOffsetCurve::updateGeometryAndRubberBand( double offset ) } QgsGeometry offsetGeom; - QgsSettings s; - QgsGeometry::JoinStyle joinStyle = s.enumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsGeometry::JoinStyleRound ); - int quadSegments = s.value( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), 8 ).toInt(); - double miterLimit = s.value( QStringLiteral( "/qgis/digitizing/offset_miter_limit" ), 5.0 ).toDouble(); - QgsGeometry::EndCapStyle capStyle = s.enumValue( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), QgsGeometry::CapRound ); + QgsGeometry::JoinStyle joinStyle = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsGeometry::JoinStyleRound ); + int quadSegments = QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.value(); + double miterLimit = QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.value(); + QgsGeometry::EndCapStyle capStyle = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), QgsGeometry::CapRound ); if ( QgsWkbTypes::geometryType( mOriginalGeometry.wkbType() ) == QgsWkbTypes::LineGeometry ) @@ -671,11 +670,10 @@ QgsOffsetUserWidget::QgsOffsetUserWidget( QWidget *parent ) mCapStyleComboBox->addItem( tr( "Flat" ), QgsGeometry::CapFlat ); mCapStyleComboBox->addItem( tr( "Square" ), QgsGeometry::CapSquare ); - QgsSettings s; - QgsGeometry::JoinStyle joinStyle = s.enumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsGeometry::JoinStyleRound ); - int quadSegments = s.value( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), 8 ).toInt(); - double miterLimit = s.value( QStringLiteral( "/qgis/digitizing/offset_miter_limit" ), 5.0 ).toDouble(); - QgsGeometry::EndCapStyle capStyle = s.enumValue( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), QgsGeometry::CapRound ); + QgsGeometry::JoinStyle joinStyle = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsGeometry::JoinStyleRound ); + int quadSegments = QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.value(); + double miterLimit = QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.value(); + QgsGeometry::EndCapStyle capStyle = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), QgsGeometry::CapRound ); mJoinStyleComboBox->setCurrentIndex( mJoinStyleComboBox->findData( joinStyle ) ); mQuadrantSpinBox->setValue( quadSegments ); @@ -689,15 +687,15 @@ QgsOffsetUserWidget::QgsOffsetUserWidget( QWidget *parent ) connect( mOffsetSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsOffsetUserWidget::offsetChanged ); connect( mJoinStyleComboBox, static_cast < void ( QComboBox::* )( int ) > ( &QComboBox::currentIndexChanged ), this, [ = ] { QgsSettings().setEnumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), static_cast< QgsGeometry::JoinStyle >( mJoinStyleComboBox->currentData().toInt() ) ); emit offsetConfigChanged(); } ); - connect( mQuadrantSpinBox, static_cast < void ( QSpinBox::* )( int ) > ( &QSpinBox::valueChanged ), this, [ = ]( const int quadSegments ) { QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), quadSegments ); emit offsetConfigChanged(); } ); - connect( mMiterLimitSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, [ = ]( double miterLimit ) { QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/offset_miter_limit" ), miterLimit ); emit offsetConfigChanged(); } ); + connect( mQuadrantSpinBox, static_cast < void ( QSpinBox::* )( int ) > ( &QSpinBox::valueChanged ), this, [ = ]( const int quadSegments ) { QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.setValue( quadSegments ); emit offsetConfigChanged(); } ); + connect( mMiterLimitSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, [ = ]( double miterLimit ) { QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.setValue( miterLimit ); emit offsetConfigChanged(); } ); connect( mCapStyleComboBox, static_cast < void ( QComboBox::* )( int ) > ( &QComboBox::currentIndexChanged ), this, [ = ] { QgsSettings().setEnumValue( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), static_cast< QgsGeometry::EndCapStyle >( mCapStyleComboBox->currentData().toInt() ) ); emit offsetConfigChanged(); } ); - bool showAdvanced = s.value( QStringLiteral( "/qgis/digitizing/offset_show_advanced" ), false ).toBool(); + bool showAdvanced = QgsSettingsRegistryCore::settingsDigitizingOffsetShowAdvanced.value(); mShowAdvancedButton->setChecked( showAdvanced ); mAdvancedConfigWidget->setVisible( showAdvanced ); connect( mShowAdvancedButton, &QToolButton::clicked, mAdvancedConfigWidget, &QWidget::setVisible ); - connect( mShowAdvancedButton, &QToolButton::clicked, this, [ = ]( const bool clicked ) {QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/offset_show_advanced" ), clicked );} ); + connect( mShowAdvancedButton, &QToolButton::clicked, this, [ = ]( const bool clicked ) {QgsSettingsRegistryCore::settingsDigitizingConvertToCurveDistanceTolerance.setValue( clicked );} ); // config focus setFocusProxy( mOffsetSpinBox ); diff --git a/src/app/qgsmeasuredialog.cpp b/src/app/qgsmeasuredialog.cpp index 0e4c96d14cf..83821d9e95b 100644 --- a/src/app/qgsmeasuredialog.cpp +++ b/src/app/qgsmeasuredialog.cpp @@ -143,7 +143,7 @@ void QgsMeasureDialog::updateSettings() { QgsSettings settings; - mDecimalPlaces = settings.value( QStringLiteral( "qgis/measure/decimalplaces" ), "3" ).toInt(); + mDecimalPlaces = settings.value( QStringLiteral( "qgis/measure/decimalplaces" ), 3 ).toInt(); mCanvasUnits = mCanvas->mapUnits(); // Configure QgsDistanceArea mDistanceUnits = QgsProject::instance()->distanceUnits(); diff --git a/src/app/qgssnappingwidget.cpp b/src/app/qgssnappingwidget.cpp index 546bb7dba4b..d2163610ccf 100644 --- a/src/app/qgssnappingwidget.cpp +++ b/src/app/qgssnappingwidget.cpp @@ -40,7 +40,7 @@ #include "qgssnappinglayertreemodel.h" #include "qgssnappingwidget.h" #include "qgsunittypes.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsscalewidget.h" #ifdef ENABLE_MODELTEST @@ -417,8 +417,7 @@ QgsSnappingWidget::QgsSnappingWidget( QgsProject *project, QgsMapCanvas *canvas, modeChanged(); updateToleranceDecimals(); - bool defaultSnapEnabled = QgsSettings().value( QStringLiteral( "/qgis/digitizing/default_snap_enabled" ), false ).toBool(); - enableSnapping( defaultSnapEnabled ); + enableSnapping( QgsSettingsRegistryCore::settingsDigitizingDefaultSnapEnabled.value() ); restoreGeometry( QgsSettings().value( QStringLiteral( "/Windows/SnappingWidget/geometry" ) ).toByteArray() ); } diff --git a/src/app/vertextool/qgslockedfeature.cpp b/src/app/vertextool/qgslockedfeature.cpp index 671bef2d547..d9c9c44e8c0 100644 --- a/src/app/vertextool/qgslockedfeature.cpp +++ b/src/app/vertextool/qgslockedfeature.cpp @@ -18,7 +18,7 @@ #include "qgsfeatureiterator.h" #include "qgspoint.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgslogger.h" #include "qgsvertexmarker.h" #include "qgsgeometryvalidator.h" @@ -123,8 +123,7 @@ void QgsLockedFeature::geometryChanged( QgsFeatureId fid, const QgsGeometry &geo void QgsLockedFeature::validateGeometry( QgsGeometry *g ) { - QgsSettings settings; - if ( settings.value( QStringLiteral( "qgis/digitizing/validate_geometries" ), 1 ).toInt() == 0 ) + if ( QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.value() == 0 ) return; if ( !g ) @@ -149,7 +148,7 @@ void QgsLockedFeature::validateGeometry( QgsGeometry *g ) } QgsGeometry::ValidationMethod method = QgsGeometry::ValidatorQgisInternal; - if ( settings.value( QStringLiteral( "qgis/digitizing/validate_geometries" ), 1 ).toInt() == 2 ) + if ( QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.value() == 2 ) method = QgsGeometry::ValidatorGeos; mValidator = new QgsGeometryValidator( *g, nullptr, method ); connect( mValidator, &QgsGeometryValidator::errorFound, this, &QgsLockedFeature::addError ); diff --git a/src/app/vertextool/qgsvertextool.cpp b/src/app/vertextool/qgsvertextool.cpp index d141e873227..30720e23c09 100644 --- a/src/app/vertextool/qgsvertextool.cpp +++ b/src/app/vertextool/qgsvertextool.cpp @@ -28,7 +28,7 @@ #include "qgspointlocator.h" #include "qgsproject.h" #include "qgsrubberband.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgssnapindicator.h" #include "qgssnappingutils.h" #include "qgsvectorlayer.h" @@ -2728,8 +2728,7 @@ void QgsVertexTool::GeometryValidation::start( QgsGeometry &geom, QgsVertexTool tool = t; layer = l; QgsGeometry::ValidationMethod method = QgsGeometry::ValidatorQgisInternal; - QgsSettings settings; - if ( settings.value( QStringLiteral( "qgis/digitizing/validate_geometries" ), 1 ).toInt() == 2 ) + if ( QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.value() == 2 ) method = QgsGeometry::ValidatorGeos; validator = new QgsGeometryValidator( geom, nullptr, method ); @@ -2778,8 +2777,7 @@ void QgsVertexTool::GeometryValidation::cleanup() void QgsVertexTool::validateGeometry( QgsVectorLayer *layer, QgsFeatureId featureId ) { - QgsSettings settings; - if ( settings.value( QStringLiteral( "qgis/digitizing/validate_geometries" ), 1 ).toInt() == 0 ) + if ( QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.value() == 0 ) return; QPair id( layer, featureId ); diff --git a/src/core/qgssnappingconfig.cpp b/src/core/qgssnappingconfig.cpp index 48ad2c26dbe..25683afb7de 100644 --- a/src/core/qgssnappingconfig.cpp +++ b/src/core/qgssnappingconfig.cpp @@ -19,7 +19,7 @@ #include #include -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgslogger.h" #include "qgsvectorlayer.h" #include "qgsproject.h" @@ -189,7 +189,7 @@ bool QgsSnappingConfig::operator==( const QgsSnappingConfig &other ) const void QgsSnappingConfig::reset() { // get defaults values. They are both used for standard and advanced configuration (per layer) - bool enabled = QgsSettings().value( QStringLiteral( "/qgis/digitizing/default_snap_enabled" ), false ).toBool(); + bool enabled = QgsSettingsRegistryCore::settingsDigitizingDefaultSnapEnabled.value(); SnappingMode mode = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/default_snap_mode" ), AllLayers ); if ( mode == 0 ) { @@ -198,7 +198,7 @@ void QgsSnappingConfig::reset() mode = AllLayers; } QgsSnappingConfig::SnappingTypeFlag type = QgsSettings().flagValue( QStringLiteral( "/qgis/digitizing/default_snap_type" ), VertexFlag ); - double tolerance = QgsSettings().value( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance" ), Qgis::DEFAULT_SNAP_TOLERANCE ).toDouble(); + double tolerance = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.value(); QgsTolerance::UnitType units = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), Qgis::DEFAULT_SNAP_UNITS ); // assign main (standard) config @@ -597,9 +597,9 @@ void QgsSnappingConfig::writeProject( QDomDocument &doc ) bool QgsSnappingConfig::addLayers( const QList &layers ) { bool changed = false; - bool enabled = QgsSettings().value( QStringLiteral( "/qgis/digitizing/default_snap_enabled" ), true ).toBool(); + bool enabled = QgsSettingsRegistryCore::settingsDigitizingDefaultSnapEnabled.value( QString(), true, true ); QgsSnappingConfig::SnappingTypeFlag type = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/default_snap_type" ), VertexFlag ); - double tolerance = QgsSettings().value( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance" ), Qgis::DEFAULT_SNAP_TOLERANCE ).toDouble(); + double tolerance = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.value(); QgsTolerance::UnitType units = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), Qgis::DEFAULT_SNAP_UNITS ); const auto constLayers = layers; diff --git a/src/core/qgstolerance.cpp b/src/core/qgstolerance.cpp index ff25de4e69b..c87b7e2f812 100644 --- a/src/core/qgstolerance.cpp +++ b/src/core/qgstolerance.cpp @@ -15,7 +15,7 @@ #include "qgstolerance.h" #include "qgsmapsettings.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgspointxy.h" #include @@ -73,7 +73,7 @@ double QgsTolerance::toleranceInMapUnits( double tolerance, QgsMapLayer *layer, double QgsTolerance::vertexSearchRadius( const QgsMapSettings &mapSettings ) { QgsSettings settings; - double tolerance = settings.value( QStringLiteral( "qgis/digitizing/search_radius_vertex_edit" ), 10 ).toDouble(); + double tolerance = QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.value(); UnitType units = settings.enumValue( QStringLiteral( "qgis/digitizing/search_radius_vertex_edit_unit" ), QgsTolerance::Pixels ); if ( units == LayerUnits ) units = ProjectUnits; @@ -83,7 +83,7 @@ double QgsTolerance::vertexSearchRadius( const QgsMapSettings &mapSettings ) double QgsTolerance::vertexSearchRadius( QgsMapLayer *layer, const QgsMapSettings &mapSettings ) { QgsSettings settings; - double tolerance = settings.value( QStringLiteral( "qgis/digitizing/search_radius_vertex_edit" ), 10 ).toDouble(); + double tolerance = QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.value(); UnitType units = settings.enumValue( QStringLiteral( "qgis/digitizing/search_radius_vertex_edit_unit" ), QgsTolerance::Pixels ); return toleranceInMapUnits( tolerance, layer, mapSettings, units ); } @@ -91,7 +91,7 @@ double QgsTolerance::vertexSearchRadius( QgsMapLayer *layer, const QgsMapSetting double QgsTolerance::defaultTolerance( QgsMapLayer *layer, const QgsMapSettings &mapSettings ) { QgsSettings settings; - double tolerance = settings.value( QStringLiteral( "qgis/digitizing/default_snapping_tolerance" ), Qgis::DEFAULT_SNAP_TOLERANCE ).toDouble(); + double tolerance = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.value(); UnitType units = settings.enumValue( QStringLiteral( "qgis/digitizing/default_snapping_tolerance_unit" ), Qgis::DEFAULT_SNAP_UNITS ); return toleranceInMapUnits( tolerance, layer, mapSettings, units ); } diff --git a/src/core/qgstracer.cpp b/src/core/qgstracer.cpp index 19ea5f8bf87..4b69e732518 100644 --- a/src/core/qgstracer.cpp +++ b/src/core/qgstracer.cpp @@ -24,7 +24,7 @@ #include "qgsvectorlayer.h" #include "qgsexception.h" #include "qgsrenderer.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsexpressioncontextutils.h" #include @@ -484,7 +484,6 @@ bool QgsTracer::initGraph() t1.start(); int featuresCounted = 0; - bool enableInvisibleFeature = QgsSettings().value( QStringLiteral( "/qgis/digitizing/snap_invisible_feature" ), false ).toBool(); for ( const QgsVectorLayer *vl : std::as_const( mLayers ) ) { QgsFeatureRequest request; @@ -492,6 +491,7 @@ bool QgsTracer::initGraph() std::unique_ptr< QgsFeatureRenderer > renderer; std::unique_ptr ctx; + bool enableInvisibleFeature = QgsSettingsRegistryCore::settingsDigitizingSnapInvisibleFeature.value(); if ( !enableInvisibleFeature && mRenderContext && vl->renderer() ) { renderer.reset( vl->renderer()->clone() ); diff --git a/src/core/settings/qgssettingsregistrycore.h b/src/core/settings/qgssettingsregistrycore.h index 15e82e05786..da0a25902ac 100644 --- a/src/core/settings/qgssettingsregistrycore.h +++ b/src/core/settings/qgssettingsregistrycore.h @@ -91,7 +91,7 @@ class CORE_EXPORT QgsSettingsRegistryCore : public QgsSettingsRegistry static const inline QgsSettingsEntryBool settingsDigitizingDefaultSnapEnabled = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/default_snap_enabled" ), QgsSettings::NoSection, false ); //! Settings entry digitizing default snap type - static const inline QgsSettingsEntryEnumFlag settingsDigitizingDefaultSnapType = QgsSettingsEntryEnumFlag( QStringLiteral( "/qgis/digitizing/default_snap_type" ), QgsSettings::NoSection, QgsSnappingConfig::VertexFlag ); +// static const inline QgsSettingsEntryEnumFlag settingsDigitizingDefaultSnapType = QgsSettingsEntryEnumFlag( QStringLiteral( "/qgis/digitizing/default_snap_type" ), QgsSettings::NoSection, QgsSnappingConfig::VertexFlag ); //! Settings entry digitizing default snapping tolerance static const inline QgsSettingsEntryDouble settingsDigitizingDefaultSnappingTolerance = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance" ), QgsSettings::NoSection, Qgis::DEFAULT_SNAP_TOLERANCE ); diff --git a/src/core/vector/qgsvectorlayerrenderer.cpp b/src/core/vector/qgsvectorlayerrenderer.cpp index 5030c3a2f04..e344cceddea 100644 --- a/src/core/vector/qgsvectorlayerrenderer.cpp +++ b/src/core/vector/qgsvectorlayerrenderer.cpp @@ -35,7 +35,7 @@ #include "qgsfeaturefilterprovider.h" #include "qgsexception.h" #include "qgslogger.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsexpressioncontextutils.h" #include "qgsrenderedfeaturehandlerinterface.h" #include "qgsvectorlayertemporalproperties.h" @@ -115,10 +115,9 @@ QgsVectorLayerRenderer::QgsVectorLayerRenderer( QgsVectorLayer *layer, QgsRender mSimplifyGeometry = layer->simplifyDrawingCanbeApplied( *renderContext(), QgsVectorSimplifyMethod::GeometrySimplification ); } - QgsSettings settings; - mVertexMarkerOnlyForSelection = settings.value( QStringLiteral( "qgis/digitizing/marker_only_for_selected" ), true ).toBool(); + mVertexMarkerOnlyForSelection = QgsSettingsRegistryCore::settingsDigitizingMarkerOnlyForSelected.value(); - QString markerTypeString = settings.value( QStringLiteral( "qgis/digitizing/marker_style" ), "Cross" ).toString(); + QString markerTypeString = QgsSettingsRegistryCore::settingsDigitizingMarkerStyle.value(); if ( markerTypeString == QLatin1String( "Cross" ) ) { mVertexMarkerStyle = QgsSymbolLayerUtils::Cross; @@ -132,7 +131,7 @@ QgsVectorLayerRenderer::QgsVectorLayerRenderer( QgsVectorLayer *layer, QgsRender mVertexMarkerStyle = QgsSymbolLayerUtils::NoMarker; } - mVertexMarkerSize = settings.value( QStringLiteral( "qgis/digitizing/marker_size_mm" ), 2.0 ).toDouble(); + mVertexMarkerSize = QgsSettingsRegistryCore::settingsDigitizingMarkerSizeMm.value(); QgsDebugMsgLevel( "rendering v2:\n " + mRenderer->dump(), 2 ); diff --git a/src/gui/qgsmapcanvassnappingutils.cpp b/src/gui/qgsmapcanvassnappingutils.cpp index 3b119b8e9b3..46cf9feae57 100644 --- a/src/gui/qgsmapcanvassnappingutils.cpp +++ b/src/gui/qgsmapcanvassnappingutils.cpp @@ -16,13 +16,13 @@ #include "qgsmapcanvas.h" #include "qgsvectorlayer.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include #include QgsMapCanvasSnappingUtils::QgsMapCanvasSnappingUtils( QgsMapCanvas *canvas, QObject *parent ) - : QgsSnappingUtils( parent, QgsSettings().value( QStringLiteral( "/qgis/digitizing/snap_invisible_feature" ), false ).toBool() ) + : QgsSnappingUtils( parent, QgsSettingsRegistryCore::settingsDigitizingSnapInvisibleFeature.value() ) , mCanvas( canvas ) { @@ -39,7 +39,7 @@ QgsMapCanvasSnappingUtils::QgsMapCanvasSnappingUtils( QgsMapCanvas *canvas, QObj void QgsMapCanvasSnappingUtils::canvasMapSettingsChanged() { setMapSettings( mCanvas->mapSettings() ); - setEnableSnappingForInvisibleFeature( QgsSettings().value( QStringLiteral( "/qgis/digitizing/snap_invisible_feature" ), false ).toBool() ); + setEnableSnappingForInvisibleFeature( QgsSettingsRegistryCore::settingsDigitizingSnapInvisibleFeature.value() ); } void QgsMapCanvasSnappingUtils::canvasTransformContextChanged() @@ -56,7 +56,7 @@ void QgsMapCanvasSnappingUtils::canvasCurrentLayerChanged() void QgsMapCanvasSnappingUtils::canvasMapToolChanged() { - setEnableSnappingForInvisibleFeature( QgsSettings().value( QStringLiteral( "/qgis/digitizing/snap_invisible_feature" ), false ).toBool() ); + setEnableSnappingForInvisibleFeature( QgsSettingsRegistryCore::settingsDigitizingSnapInvisibleFeature.value() ); } void QgsMapCanvasSnappingUtils::prepareIndexStarting( int count ) diff --git a/src/gui/qgsmapcanvastracer.cpp b/src/gui/qgsmapcanvastracer.cpp index 949ea7894e8..cd682700776 100644 --- a/src/gui/qgsmapcanvastracer.cpp +++ b/src/gui/qgsmapcanvastracer.cpp @@ -22,7 +22,7 @@ #include "qgssnappingutils.h" #include "qgsvectorlayer.h" #include "qgssnappingconfig.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include @@ -49,7 +49,7 @@ QgsMapCanvasTracer::QgsMapCanvasTracer( QgsMapCanvas *canvas, QgsMessageBar *mes // arbitrarily chosen limit that should allow for fairly fast initialization // of the underlying graph structure - setMaxFeatureCount( QgsSettings().value( QStringLiteral( "/qgis/digitizing/tracing_max_feature_count" ), 10000 ).toInt() ); + setMaxFeatureCount( QgsSettingsRegistryCore::settingsDigitizingTracingMaxFeatureCount.value() ); } QgsMapCanvasTracer::~QgsMapCanvasTracer() diff --git a/src/gui/qgsmaptoolcapture.cpp b/src/gui/qgsmaptoolcapture.cpp index 7de1b12e9a2..93d851c5ceb 100644 --- a/src/gui/qgsmaptoolcapture.cpp +++ b/src/gui/qgsmaptoolcapture.cpp @@ -28,7 +28,7 @@ #include "qgssnapindicator.h" #include "qgsvectorlayer.h" #include "qgsvertexmarker.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsapplication.h" #include "qgsadvanceddigitizingdockwidget.h" #include "qgsproject.h" @@ -284,8 +284,7 @@ bool QgsMapToolCapture::tracingAddVertex( const QgsPointXY &point ) resetRubberBand(); // Curves de-approximation - QgsSettings settings; - if ( settings.value( QStringLiteral( "/qgis/digitizing/convert_to_curve" ), false ).toBool() ) + if ( QgsSettingsRegistryCore::settingsDigitizingConvertToCurve.value() ) { // If the tool and the layer support curves QgsVectorLayer *vlayer = qobject_cast( mCanvas->currentLayer() ); @@ -293,8 +292,8 @@ bool QgsMapToolCapture::tracingAddVertex( const QgsPointXY &point ) { QgsGeometry linear = QgsGeometry( mCaptureCurve.segmentize() ); QgsGeometry curved = linear.convertToCurves( - settings.value( QStringLiteral( "/qgis/digitizing/convert_to_curve_angle_tolerance" ), 1e-6 ).toDouble(), - settings.value( QStringLiteral( "/qgis/digitizing/convert_to_curve_distance_tolerance" ), 1e-6 ).toDouble() + QgsSettingsRegistryCore::settingsDigitizingConvertToCurveAngleTolerance.value(), + QgsSettingsRegistryCore::settingsDigitizingConvertToCurveDistanceTolerance.value() ); mCaptureCurve = *qgsgeometry_cast( curved.constGet() ); } @@ -316,12 +315,11 @@ bool QgsMapToolCapture::tracingAddVertex( const QgsPointXY &point ) QgsMapToolCaptureRubberBand *QgsMapToolCapture::createCurveRubberBand() const { - QgsSettings settings; QgsMapToolCaptureRubberBand *rb = new QgsMapToolCaptureRubberBand( mCanvas ); rb->setStrokeWidth( digitizingStrokeWidth() ); QColor color = digitizingStrokeColor(); - double alphaScale = settings.value( QStringLiteral( "qgis/digitizing/line_color_alpha_scale" ), 0.75 ).toDouble(); + double alphaScale = QgsSettingsRegistryCore::settingsDigitizingLineColorAlphaScale.value(); color.setAlphaF( color.alphaF() * alphaScale ); rb->setLineStyle( Qt::DotLine ); rb->setStrokeColor( color ); @@ -370,8 +368,7 @@ void QgsMapToolCapture::setStreamDigitizingEnabled( bool enable ) mStartNewCurve = true; if ( enable ) { - QgsSettings settings; - mStreamingToleranceInPixels = settings.value( QStringLiteral( "/qgis/digitizing/stream_tolerance" ), 2 ).toInt(); + mStreamingToleranceInPixels = QgsSettingsRegistryCore::settingsDigitizingStreamTolerance.value(); } } @@ -865,8 +862,7 @@ void QgsMapToolCapture::closePolygon() void QgsMapToolCapture::validateGeometry() { - QgsSettings settings; - if ( settings.value( QStringLiteral( "qgis/digitizing/validate_geometries" ), 1 ).toInt() == 0 ) + if ( QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.value() == 0 ) return; if ( mValidator ) @@ -908,7 +904,7 @@ void QgsMapToolCapture::validateGeometry() return; QgsGeometry::ValidationMethod method = QgsGeometry::ValidatorQgisInternal; - if ( settings.value( QStringLiteral( "qgis/digitizing/validate_geometries" ), 1 ).toInt() == 2 ) + if ( QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.value() == 2 ) method = QgsGeometry::ValidatorGeos; mValidator = new QgsGeometryValidator( geom, nullptr, method ); connect( mValidator, &QgsGeometryValidator::errorFound, this, &QgsMapToolCapture::addError ); diff --git a/src/gui/qgsmaptooledit.cpp b/src/gui/qgsmaptooledit.cpp index 06a86abc628..0f75699f281 100644 --- a/src/gui/qgsmaptooledit.cpp +++ b/src/gui/qgsmaptooledit.cpp @@ -19,7 +19,7 @@ #include "qgsgeometryrubberband.h" #include "qgsrubberband.h" #include "qgsvectorlayer.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include @@ -36,37 +36,28 @@ QgsMapToolEdit::QgsMapToolEdit( QgsMapCanvas *canvas ) double QgsMapToolEdit::defaultZValue() const { - return QgsSettings().value( QStringLiteral( "/qgis/digitizing/default_z_value" ), Qgis::DEFAULT_Z_COORDINATE ).toDouble(); + return QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.value(); } QColor QgsMapToolEdit::digitizingStrokeColor() { - QgsSettings settings; - QColor color( - settings.value( QStringLiteral( "qgis/digitizing/line_color_red" ), 255 ).toInt(), - settings.value( QStringLiteral( "qgis/digitizing/line_color_green" ), 0 ).toInt(), - settings.value( QStringLiteral( "qgis/digitizing/line_color_blue" ), 0 ).toInt() ); - double myAlpha = settings.value( QStringLiteral( "qgis/digitizing/line_color_alpha" ), 200 ).toInt() / 255.0; - color.setAlphaF( myAlpha ); - return color; + return QColor( QgsSettingsRegistryCore::settingsDigitizingLineColorRed.value(), + QgsSettingsRegistryCore::settingsDigitizingLineColorGreen.value(), + QgsSettingsRegistryCore::settingsDigitizingLineColorBlue.value(), + QgsSettingsRegistryCore::settingsDigitizingLineColorAlpha.value() ); } int QgsMapToolEdit::digitizingStrokeWidth() { - QgsSettings settings; - return settings.value( QStringLiteral( "qgis/digitizing/line_width" ), 1 ).toInt(); + return QgsSettingsRegistryCore::settingsDigitizingLineWidth.value(); } QColor QgsMapToolEdit::digitizingFillColor() { - QgsSettings settings; - QColor fillColor( - settings.value( QStringLiteral( "qgis/digitizing/fill_color_red" ), 255 ).toInt(), - settings.value( QStringLiteral( "qgis/digitizing/fill_color_green" ), 0 ).toInt(), - settings.value( QStringLiteral( "qgis/digitizing/fill_color_blue" ), 0 ).toInt() ); - double myAlpha = settings.value( QStringLiteral( "qgis/digitizing/fill_color_alpha" ), 30 ).toInt() / 255.0; - fillColor.setAlphaF( myAlpha ); - return fillColor; + return QColor( QgsSettingsRegistryCore::settingsDigitizingFillColorRed.value(), + QgsSettingsRegistryCore::settingsDigitizingFillColorGreen.value(), + QgsSettingsRegistryCore::settingsDigitizingFillColorBlue.value(), + QgsSettingsRegistryCore::settingsDigitizingFillColorAlpha.value() ); } @@ -78,7 +69,7 @@ QgsRubberBand *QgsMapToolEdit::createRubberBand( QgsWkbTypes::GeometryType geome QColor color = digitizingStrokeColor(); if ( alternativeBand ) { - double alphaScale = settings.value( QStringLiteral( "qgis/digitizing/line_color_alpha_scale" ), 0.75 ).toDouble(); + double alphaScale = QgsSettingsRegistryCore::settingsDigitizingLineColorAlphaScale.value(); color.setAlphaF( color.alphaF() * alphaScale ); rb->setLineStyle( Qt::DotLine ); } @@ -148,15 +139,14 @@ QgsMapToolEdit::TopologicalResult QgsMapToolEdit::addTopologicalPoints( const QV QgsGeometryRubberBand *QgsMapToolEdit::createGeometryRubberBand( QgsWkbTypes::GeometryType geometryType, bool alternativeBand ) const { - QgsSettings settings; QgsGeometryRubberBand *rb = new QgsGeometryRubberBand( mCanvas, geometryType ); - QColor color( settings.value( QStringLiteral( "qgis/digitizing/line_color_red" ), 255 ).toInt(), - settings.value( QStringLiteral( "qgis/digitizing/line_color_green" ), 0 ).toInt(), - settings.value( QStringLiteral( "qgis/digitizing/line_color_blue" ), 0 ).toInt() ); - double myAlpha = settings.value( QStringLiteral( "qgis/digitizing/line_color_alpha" ), 200 ).toInt() / 255.0; + QColor color( QgsSettingsRegistryCore::settingsDigitizingLineColorRed.value(), + QgsSettingsRegistryCore::settingsDigitizingLineColorGreen.value(), + QgsSettingsRegistryCore::settingsDigitizingLineColorBlue.value() ); + double myAlpha = QgsSettingsRegistryCore::settingsDigitizingLineColorAlpha.value() / 255.0; if ( alternativeBand ) { - myAlpha = myAlpha * settings.value( QStringLiteral( "qgis/digitizing/line_color_alpha_scale" ), 0.75 ).toDouble(); + myAlpha = myAlpha * QgsSettingsRegistryCore::settingsDigitizingLineColorAlphaScale.value(); rb->setLineStyle( Qt::DotLine ); } color.setAlphaF( myAlpha ); diff --git a/src/gui/qgssnapindicator.cpp b/src/gui/qgssnapindicator.cpp index 581e877e464..176ac2315fb 100644 --- a/src/gui/qgssnapindicator.cpp +++ b/src/gui/qgssnapindicator.cpp @@ -17,7 +17,7 @@ #include "qgsguiutils.h" #include "qgsmapcanvas.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayer.h" #include "qgsvertexmarker.h" @@ -72,9 +72,7 @@ void QgsSnapIndicator::setMatch( const QgsPointLocator::Match &match ) mSnappingMarker->setPenWidth( QgsGuiUtils::scaleIconSize( 3 ) ); } - QgsSettings s; - - QColor color = s.value( QStringLiteral( "/qgis/digitizing/snap_color" ), QColor( Qt::magenta ) ).value(); + QColor color = QgsSettingsRegistryCore::settingsDigitizingSnapColor.value(); mSnappingMarker->setColor( color ); int iconType; @@ -111,7 +109,7 @@ void QgsSnapIndicator::setMatch( const QgsPointLocator::Match &match ) mSnappingMarker->setCenter( match.point() ); // tooltip - if ( s.value( QStringLiteral( "/qgis/digitizing/snap_tooltip" ), false ).toBool() ) + if ( QgsSettingsRegistryCore::settingsDigitizingSnapTooltip.value() ) { QPoint ptCanvas = mSnappingMarker->toCanvasCoordinates( match.point() ).toPoint(); QPoint ptGlobal = mCanvas->mapToGlobal( ptCanvas ); diff --git a/src/gui/vector/qgsattributesformproperties.cpp b/src/gui/vector/qgsattributesformproperties.cpp index 6d59c00bfa9..650c2e550b8 100644 --- a/src/gui/vector/qgsattributesformproperties.cpp +++ b/src/gui/vector/qgsattributesformproperties.cpp @@ -30,6 +30,7 @@ #include "qgsattributeeditorcontainer.h" #include "qgsattributeeditorqmlelement.h" #include "qgsattributeeditorhtmlelement.h" +#include "qgssettingsregistrycore.h" QgsAttributesFormProperties::QgsAttributesFormProperties( QgsVectorLayer *layer, QWidget *parent ) @@ -169,9 +170,7 @@ void QgsAttributesFormProperties::initFormLayoutTree() void QgsAttributesFormProperties::initSuppressCombo() { - QgsSettings settings; - - if ( settings.value( QStringLiteral( "qgis/digitizing/disable_enter_attribute_values_dialog" ), false ).toBool() ) + if ( QgsSettingsRegistryCore::settingsDigitizingDisableEnterAttributeValuesDialog.value() ) { mFormSuppressCmbBx->addItem( tr( "Hide Form on Add Feature (global settings)" ) ); } diff --git a/tests/src/app/testqgsgpsinformationwidget.cpp b/tests/src/app/testqgsgpsinformationwidget.cpp index 56e0a88859f..2c2181beb01 100644 --- a/tests/src/app/testqgsgpsinformationwidget.cpp +++ b/tests/src/app/testqgsgpsinformationwidget.cpp @@ -20,6 +20,7 @@ #include "qgsvectorlayer.h" #include "qgsproject.h" #include "qgsmapcanvas.h" +#include "qgssettingsregistrycore.h" #include "gps/qgsgpsinformationwidget.h" #include "nmeatime.h" @@ -86,7 +87,7 @@ void TestQgsGpsInformationWidget::initTestCase() QStringLiteral( "vl4" ), QStringLiteral( "memory" ) ); - QgsSettings().setValue( QStringLiteral( "qgis/digitizing/disable_enter_attribute_values_dialog" ), true ); + QgsSettingsRegistryCore::settingsDigitizingDisableEnterAttributeValuesDialog.setValue( true ); QString tempPath = QDir::tempPath() + QStringLiteral( "/gps_timestamp.gpkg" ); QFile::copy( TEST_DATA_DIR + QStringLiteral( "/gps_timestamp.gpkg" ), tempPath ); diff --git a/tests/src/app/testqgsmaptooladdfeatureline.cpp b/tests/src/app/testqgsmaptooladdfeatureline.cpp index 606fa2105aa..62fe2b06e9a 100644 --- a/tests/src/app/testqgsmaptooladdfeatureline.cpp +++ b/tests/src/app/testqgsmaptooladdfeatureline.cpp @@ -24,7 +24,7 @@ #include "qgsmaptooladdfeature.h" #include "qgsmapcanvastracer.h" #include "qgsproject.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayer.h" #include "qgswkbtypes.h" #include "qgsmapmouseevent.h" @@ -461,7 +461,7 @@ void TestQgsMapToolAddFeatureLine::testTracingWithConvertToCurves() QSet oldFids = utils.existingFeatureIds(); // tracing enabled - without converting to curves - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/convert_to_curve" ), false ); + QgsSettingsRegistryCore::settingsDigitizingConvertToCurve.setValue( false ); utils.mouseClick( 6, 1, Qt::LeftButton ); utils.mouseClick( 7, 1, Qt::LeftButton ); @@ -477,7 +477,7 @@ void TestQgsMapToolAddFeatureLine::testTracingWithConvertToCurves() mLayerLineCurved->undoStack()->undo(); // we redo the same with convert to curves enabled - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/convert_to_curve" ), true ); + QgsSettingsRegistryCore::settingsDigitizingConvertToCurve.setValue( true ); // tracing enabled - without converting to curves utils.mouseClick( 6, 1, Qt::LeftButton ); @@ -506,8 +506,8 @@ void TestQgsMapToolAddFeatureLine::testTracingWithConvertToCurvesCustomTolerance // At this distance, the arcs aren't correctly detected with the default tolerance double offset = 100000000; // remember to change the feature geometry accordingly in initTestCase (sic) - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/convert_to_curve_angle_tolerance" ), 1e-5 ); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/convert_to_curve_distance_tolerance" ), 1e-5 ); + QgsSettingsRegistryCore::settingsDigitizingConvertToCurveAngleTolerance.setValue( 1e-5 ); + QgsSettingsRegistryCore::settingsDigitizingConvertToCurveDistanceTolerance.setValue( 1e-5 ); mCanvas->setExtent( QgsRectangle( offset + 0, offset + 0, offset + 8, offset + 8 ) ); QCOMPARE( mCanvas->mapSettings().visibleExtent(), QgsRectangle( offset + 0, offset + 0, offset + 8, offset + 8 ) ); @@ -522,7 +522,7 @@ void TestQgsMapToolAddFeatureLine::testTracingWithConvertToCurvesCustomTolerance QSet oldFids = utils.existingFeatureIds(); // tracing enabled - without converting to curves - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/convert_to_curve" ), false ); + QgsSettingsRegistryCore::settingsDigitizingConvertToCurve.setValue( false ); utils.mouseClick( offset + 6, offset + 1, Qt::LeftButton ); utils.mouseClick( offset + 7, offset + 1, Qt::LeftButton ); @@ -538,7 +538,7 @@ void TestQgsMapToolAddFeatureLine::testTracingWithConvertToCurvesCustomTolerance mLayerLineCurvedOffset->undoStack()->undo(); // we redo the same with convert to curves enabled - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/convert_to_curve" ), true ); + QgsSettingsRegistryCore::settingsDigitizingConvertToCurve.setValue( true ); // tracing enabled - without converting to curves utils.mouseClick( offset + 6, offset + 1, Qt::LeftButton ); @@ -572,7 +572,7 @@ void TestQgsMapToolAddFeatureLine::testZ() mCanvas->setCurrentLayer( mLayerLineZ ); // test with default Z value = 333 - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); QSet oldFids = utils.existingFeatureIds(); utils.mouseClick( 4, 0, Qt::LeftButton ); @@ -588,7 +588,7 @@ void TestQgsMapToolAddFeatureLine::testZ() mLayerLine->undoStack()->undo(); // test with default Z value = 222 - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); oldFids = utils.existingFeatureIds(); utils.mouseClick( 4, 0, Qt::LeftButton ); @@ -633,7 +633,7 @@ void TestQgsMapToolAddFeatureLine::testZMSnapping() mCanvas->setCurrentLayer( mLayerLineZ ); oldFids = utils.existingFeatureIds(); // test with default Z value = 222 - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); // snap a on a layer without ZM support utils.mouseClick( 9, 9, Qt::LeftButton, Qt::KeyboardModifiers(), true ); utils.mouseClick( 8, 7, Qt::LeftButton ); @@ -656,7 +656,7 @@ void TestQgsMapToolAddFeatureLine::testZMSnapping() mCanvas->snappingUtils()->setConfig( cfg ); // create geometry will be snapped - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 123 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 123 ); oldFids = utils.existingFeatureIds(); utils.mouseClick( 20, 20, Qt::LeftButton, Qt::KeyboardModifiers(), true ); @@ -668,7 +668,7 @@ void TestQgsMapToolAddFeatureLine::testZMSnapping() wkt = "LineStringZ (20 20 123, 30 20 123)"; QCOMPARE( mLayerLineZ->getFeature( newFid ).geometry(), QgsGeometry::fromWkt( wkt ) ); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 321 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 321 ); oldFids = utils.existingFeatureIds(); utils.mouseClick( 25, 20, Qt::LeftButton, Qt::KeyboardModifiers(), true ); utils.mouseClick( 25, 25, Qt::LeftButton ); @@ -693,7 +693,7 @@ void TestQgsMapToolAddFeatureLine::testTopologicalEditingZ() mCanvas->setCurrentLayer( mLayerTopoZ ); // test with default Z value = 333 - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); QSet oldFids = utils.existingFeatureIds(); @@ -995,8 +995,7 @@ void TestQgsMapToolAddFeatureLine::testUndo() void TestQgsMapToolAddFeatureLine::testStreamTolerance() { // test streaming mode digitizing with tolerance - QgsSettings settings; - settings.setValue( QStringLiteral( "/qgis/digitizing/stream_tolerance" ), 10 ); + QgsSettingsRegistryCore::settingsDigitizingStreamTolerance.setValue( 10 ); TestQgsMapToolAdvancedDigitizingUtils utils( mCaptureTool ); diff --git a/tests/src/app/testqgsmaptooladdfeaturepoint.cpp b/tests/src/app/testqgsmaptooladdfeaturepoint.cpp index eab6a5409d9..60c02689aa8 100644 --- a/tests/src/app/testqgsmaptooladdfeaturepoint.cpp +++ b/tests/src/app/testqgsmaptooladdfeaturepoint.cpp @@ -25,7 +25,7 @@ #include "qgsmaptooladdfeature.h" #include "qgsmapcanvastracer.h" #include "qgsproject.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayer.h" #include "qgsmapmouseevent.h" #include "testqgsmaptoolutils.h" @@ -158,7 +158,7 @@ void TestQgsMapToolAddFeaturePoint::testPointZ() TestQgsMapToolAdvancedDigitizingUtils utils( mCaptureTool ); // test with default Z value = 333 - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); QSet oldFids = utils.existingFeatureIds(); @@ -190,7 +190,7 @@ void TestQgsMapToolAddFeaturePoint::testTopologicalEditingZ() TestQgsMapToolAdvancedDigitizingUtils utils( mCaptureTool ); // test with default Z value = 333 - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); QSet oldFids = utils.existingFeatureIds(); diff --git a/tests/src/app/testqgsmaptoolcircle.cpp b/tests/src/app/testqgsmaptoolcircle.cpp index 85dd8d067bb..f544e96f372 100644 --- a/tests/src/app/testqgsmaptoolcircle.cpp +++ b/tests/src/app/testqgsmaptoolcircle.cpp @@ -18,7 +18,7 @@ #include "qgisapp.h" #include "qgsgeometry.h" #include "qgsmapcanvas.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayer.h" #include "qgsmaptooladdfeature.h" @@ -86,7 +86,7 @@ void TestQgsMapToolCircle::cleanupTestCase() void TestQgsMapToolCircle::testCircleFrom2Points() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolCircle2Points mapTool( mParentTool, mCanvas ); @@ -105,12 +105,12 @@ void TestQgsMapToolCircle::testCircleFrom2Points() QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolCircle::testCircleFrom2PointsWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolCircle2Points mapTool( mParentTool, mCanvas ); @@ -132,12 +132,12 @@ void TestQgsMapToolCircle::testCircleFrom2PointsWithDeletedVertex() QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolCircle::testCircleFrom3Points() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolCircle3Points mapTool( mParentTool, mCanvas ); @@ -157,12 +157,12 @@ void TestQgsMapToolCircle::testCircleFrom3Points() QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolCircle::testCircleFrom3PointsWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolCircle3Points mapTool( mParentTool, mCanvas ); @@ -184,12 +184,12 @@ void TestQgsMapToolCircle::testCircleFrom3PointsWithDeletedVertex() QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolCircle::testCircleFromCenterPoint() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); mLayer->startEditing(); QgsMapToolCircleCenterPoint mapTool( mParentTool, mCanvas ); @@ -208,12 +208,12 @@ void TestQgsMapToolCircle::testCircleFromCenterPoint() QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolCircle::testCircleFromCenterPointWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); mLayer->startEditing(); QgsMapToolCircleCenterPoint mapTool( mParentTool, mCanvas ); @@ -235,7 +235,7 @@ void TestQgsMapToolCircle::testCircleFromCenterPointWithDeletedVertex() QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } QGSTEST_MAIN( TestQgsMapToolCircle ) diff --git a/tests/src/app/testqgsmaptoolcircularstring.cpp b/tests/src/app/testqgsmaptoolcircularstring.cpp index f2f0eb29a90..2b2b48ea0d9 100644 --- a/tests/src/app/testqgsmaptoolcircularstring.cpp +++ b/tests/src/app/testqgsmaptoolcircularstring.cpp @@ -18,7 +18,7 @@ #include "qgisapp.h" #include "qgsgeometry.h" #include "qgsmapcanvas.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayer.h" #include "qgsmaptooladdfeature.h" @@ -84,7 +84,7 @@ void TestQgsMapToolCircularString::cleanupTestCase() void TestQgsMapToolCircularString::testAddCircularStringCurvePoint() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolCircularStringCurvePoint mapTool( mParentTool, mCanvas ); @@ -104,12 +104,12 @@ void TestQgsMapToolCircularString::testAddCircularStringCurvePoint() QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolCircularString::testAddCircularStringCurvePointWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolCircularStringCurvePoint mapTool( mParentTool, mCanvas ); @@ -133,11 +133,11 @@ void TestQgsMapToolCircularString::testAddCircularStringCurvePointWithDeletedVer QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolCircularString::testAddCircularStringRadius() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolCircularStringRadius mapTool( mParentTool, mCanvas ); @@ -157,12 +157,12 @@ void TestQgsMapToolCircularString::testAddCircularStringRadius() QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolCircularString::testAddCircularStringRadiusWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolCircularStringRadius mapTool( mParentTool, mCanvas ); @@ -186,12 +186,12 @@ void TestQgsMapToolCircularString::testAddCircularStringRadiusWithDeletedVertex( QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolCircularString::testAddCircularStringAfterClassicDigitizing() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); TestQgsMapToolAdvancedDigitizingUtils utilsClassic( mParentTool ); @@ -224,7 +224,7 @@ void TestQgsMapToolCircularString::testAddCircularStringAfterClassicDigitizing() QCOMPARE( f.geometry().asWkt(), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } QGSTEST_MAIN( TestQgsMapToolCircularString ) #include "testqgsmaptoolcircularstring.moc" diff --git a/tests/src/app/testqgsmaptoolellipse.cpp b/tests/src/app/testqgsmaptoolellipse.cpp index d2aaf58aa8a..39af1504f05 100644 --- a/tests/src/app/testqgsmaptoolellipse.cpp +++ b/tests/src/app/testqgsmaptoolellipse.cpp @@ -18,7 +18,7 @@ #include "qgisapp.h" #include "qgsgeometry.h" #include "qgsmapcanvas.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayer.h" #include "qgsmaptooladdfeature.h" #include "qgsgeometryutils.h" @@ -90,7 +90,7 @@ void TestQgsMapToolEllipse::cleanupTestCase() void TestQgsMapToolEllipse::testEllipseFromCenterAndPoint() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolEllipseCenterPoint mapTool( mParentTool, mCanvas ); @@ -114,11 +114,11 @@ void TestQgsMapToolEllipse::testEllipseFromCenterAndPoint() } mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolEllipse::testEllipseFromCenterAndPointWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolEllipseCenterPoint mapTool( mParentTool, mCanvas ); @@ -144,13 +144,13 @@ void TestQgsMapToolEllipse::testEllipseFromCenterAndPointWithDeletedVertex() } mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolEllipse::testEllipseFromCenterAnd2Points() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolEllipseCenter2Points mapTool( mParentTool, mCanvas ); @@ -175,12 +175,12 @@ void TestQgsMapToolEllipse::testEllipseFromCenterAnd2Points() } mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolEllipse::testEllipseFromCenterAnd2PointsWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolEllipseCenter2Points mapTool( mParentTool, mCanvas ); @@ -207,12 +207,12 @@ void TestQgsMapToolEllipse::testEllipseFromCenterAnd2PointsWithDeletedVertex() } mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolEllipse::testEllipseFromExtent() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); mLayer->startEditing(); QgsMapToolEllipseExtent mapTool( mParentTool, mCanvas ); @@ -236,12 +236,12 @@ void TestQgsMapToolEllipse::testEllipseFromExtent() } mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolEllipse::testEllipseFromExtentWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); mLayer->startEditing(); QgsMapToolEllipseExtent mapTool( mParentTool, mCanvas ); @@ -267,12 +267,12 @@ void TestQgsMapToolEllipse::testEllipseFromExtentWithDeletedVertex() } mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolEllipse::testEllipseFromFoci() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 444 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 444 ); mLayer->startEditing(); QgsMapToolEllipseFoci mapTool( mParentTool, mCanvas ); @@ -297,12 +297,12 @@ void TestQgsMapToolEllipse::testEllipseFromFoci() } mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolEllipse::testEllipseFromFociWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 444 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 444 ); mLayer->startEditing(); QgsMapToolEllipseFoci mapTool( mParentTool, mCanvas ); @@ -329,7 +329,7 @@ void TestQgsMapToolEllipse::testEllipseFromFociWithDeletedVertex() } mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } QGSTEST_MAIN( TestQgsMapToolEllipse ) diff --git a/tests/src/app/testqgsmaptoolrectangle.cpp b/tests/src/app/testqgsmaptoolrectangle.cpp index ec477bc883c..6b7c27182a6 100644 --- a/tests/src/app/testqgsmaptoolrectangle.cpp +++ b/tests/src/app/testqgsmaptoolrectangle.cpp @@ -18,7 +18,7 @@ #include "qgisapp.h" #include "qgsgeometry.h" #include "qgsmapcanvas.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayer.h" #include "qgsmaptooladdfeature.h" #include "qgsgeometryutils.h" @@ -89,7 +89,7 @@ void TestQgsMapToolRectangle::cleanupTestCase() void TestQgsMapToolRectangle::testRectangleFromCenter() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolRectangleCenter mapTool( mParentTool, mCanvas ); @@ -110,12 +110,12 @@ void TestQgsMapToolRectangle::testRectangleFromCenter() QVERIFY( static_cast( f.geometry().get() )->equals( line ) ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRectangle::testRectangleFromCenterWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolRectangleCenter mapTool( mParentTool, mCanvas ); @@ -138,12 +138,12 @@ void TestQgsMapToolRectangle::testRectangleFromCenterWithDeletedVertex() QVERIFY( static_cast( f.geometry().get() )->equals( line ) ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRectangle::testRectangleFromExtent() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); mLayer->startEditing(); QgsMapToolRectangleExtent mapTool( mParentTool, mCanvas ); @@ -164,11 +164,11 @@ void TestQgsMapToolRectangle::testRectangleFromExtent() QVERIFY( static_cast( f.geometry().get() )->equals( line ) ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRectangle::testRectangleFromExtentWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); mLayer->startEditing(); QgsMapToolRectangleExtent mapTool( mParentTool, mCanvas ); @@ -191,13 +191,13 @@ void TestQgsMapToolRectangle::testRectangleFromExtentWithDeletedVertex() QVERIFY( static_cast( f.geometry().get() )->equals( line ) ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRectangle::testRectangleFrom3PointsDistance() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolRectangle3Points mapTool( mParentTool, mCanvas, QgsMapToolRectangle3Points::DistanceMode ); @@ -220,11 +220,11 @@ void TestQgsMapToolRectangle::testRectangleFrom3PointsDistance() QVERIFY( static_cast( f.geometry().get() )->equals( line ) ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRectangle::testRectangleFrom3PointsDistanceWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolRectangle3Points mapTool( mParentTool, mCanvas, QgsMapToolRectangle3Points::DistanceMode ); @@ -249,12 +249,12 @@ void TestQgsMapToolRectangle::testRectangleFrom3PointsDistanceWithDeletedVertex( QVERIFY( static_cast( f.geometry().get() )->equals( line ) ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRectangle::testRectangleFrom3PointsProjected() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolRectangle3Points mapTool( mParentTool, mCanvas, QgsMapToolRectangle3Points::ProjectedMode ); @@ -277,11 +277,11 @@ void TestQgsMapToolRectangle::testRectangleFrom3PointsProjected() QVERIFY( static_cast( f.geometry().get() )->equals( line ) ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRectangle::testRectangleFrom3PointsProjectedWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolRectangle3Points mapTool( mParentTool, mCanvas, QgsMapToolRectangle3Points::ProjectedMode ); @@ -306,7 +306,7 @@ void TestQgsMapToolRectangle::testRectangleFrom3PointsProjectedWithDeletedVertex QVERIFY( static_cast( f.geometry().get() )->equals( line ) ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } QGSTEST_MAIN( TestQgsMapToolRectangle ) #include "testqgsmaptoolrectangle.moc" diff --git a/tests/src/app/testqgsmaptoolregularpolygon.cpp b/tests/src/app/testqgsmaptoolregularpolygon.cpp index 5122ae88fc2..55b45b9a75e 100644 --- a/tests/src/app/testqgsmaptoolregularpolygon.cpp +++ b/tests/src/app/testqgsmaptoolregularpolygon.cpp @@ -18,7 +18,7 @@ #include "qgisapp.h" #include "qgsgeometry.h" #include "qgsmapcanvas.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayer.h" #include "qgsmaptooladdfeature.h" #include "qgsgeometryutils.h" @@ -87,7 +87,7 @@ void TestQgsMapToolRegularPolygon::cleanupTestCase() void TestQgsMapToolRegularPolygon::testRegularPolygonFrom2Points() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolRegularPolygon2Points mapTool( mParentTool, mCanvas ); @@ -106,11 +106,11 @@ void TestQgsMapToolRegularPolygon::testRegularPolygonFrom2Points() QCOMPARE( f.geometry().asWkt( 0 ), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRegularPolygon::testRegularPolygonFrom2PointsWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); mLayer->startEditing(); QgsMapToolRegularPolygon2Points mapTool( mParentTool, mCanvas ); @@ -131,13 +131,13 @@ void TestQgsMapToolRegularPolygon::testRegularPolygonFrom2PointsWithDeletedVerte QCOMPARE( f.geometry().asWkt( 0 ), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRegularPolygon::testRegularPolygonFromCenterAndPoint() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); mLayer->startEditing(); QgsMapToolRegularPolygonCenterPoint mapTool( mParentTool, mCanvas ); @@ -156,11 +156,11 @@ void TestQgsMapToolRegularPolygon::testRegularPolygonFromCenterAndPoint() QCOMPARE( f.geometry().asWkt( 0 ), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRegularPolygon::testRegularPolygonFromCenterAndPointWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 222 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 222 ); mLayer->startEditing(); QgsMapToolRegularPolygonCenterPoint mapTool( mParentTool, mCanvas ); @@ -181,13 +181,13 @@ void TestQgsMapToolRegularPolygon::testRegularPolygonFromCenterAndPointWithDelet QCOMPARE( f.geometry().asWkt( 0 ), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRegularPolygon::testRegularPolygonFromCenterAndCroner() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolRegularPolygonCenterCorner mapTool( mParentTool, mCanvas ); @@ -206,11 +206,11 @@ void TestQgsMapToolRegularPolygon::testRegularPolygonFromCenterAndCroner() QCOMPARE( f.geometry().asWkt( 0 ), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } void TestQgsMapToolRegularPolygon::testRegularPolygonFromCenterAndCronerWithDeletedVertex() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 111 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 111 ); mLayer->startEditing(); QgsMapToolRegularPolygonCenterCorner mapTool( mParentTool, mCanvas ); @@ -231,7 +231,7 @@ void TestQgsMapToolRegularPolygon::testRegularPolygonFromCenterAndCronerWithDele QCOMPARE( f.geometry().asWkt( 0 ), wkt ); mLayer->rollBack(); - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 0 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 0 ); } diff --git a/tests/src/app/testqgsmaptoolreshape.cpp b/tests/src/app/testqgsmaptoolreshape.cpp index 6e59b373e6d..c6eeaf1a679 100644 --- a/tests/src/app/testqgsmaptoolreshape.cpp +++ b/tests/src/app/testqgsmaptoolreshape.cpp @@ -24,7 +24,7 @@ #include "qgssnappingutils.h" #include "qgsmaptoolreshape.h" #include "qgsproject.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "qgsvectorlayer.h" #include "qgsmapmouseevent.h" #include "testqgsmaptoolutils.h" @@ -191,7 +191,7 @@ void TestQgsMapToolReshape::testReshapeZ() TestQgsMapToolAdvancedDigitizingUtils utils( mCaptureTool ); // test with default Z value = 333 - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); // snap on a linestringz layer utils.mouseClick( 1, 2, Qt::LeftButton, Qt::KeyboardModifiers(), true ); @@ -233,7 +233,7 @@ void TestQgsMapToolReshape::testTopologicalEditing() TestQgsMapToolAdvancedDigitizingUtils utils( mCaptureTool ); // test with default Z value = 333 - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); utils.mouseClick( 4, 4, Qt::LeftButton, Qt::KeyboardModifiers(), true ); utils.mouseClick( 7, 2, Qt::LeftButton, Qt::KeyboardModifiers(), true ); diff --git a/tests/src/app/testqgsvertextool.cpp b/tests/src/app/testqgsvertextool.cpp index f9b88c29642..855eab3449d 100644 --- a/tests/src/app/testqgsvertextool.cpp +++ b/tests/src/app/testqgsvertextool.cpp @@ -26,7 +26,7 @@ #include "qgslinestring.h" #include "qgscircularstring.h" #include "qgssnappingconfig.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" #include "testqgsmaptoolutils.h" bool operator==( const QgsGeometry &g1, const QgsGeometry &g2 ) @@ -373,7 +373,7 @@ void TestQgsVertexTool::testTopologicalEditingMoveVertexZ() void TestQgsVertexTool::testTopologicalEditingMoveVertexOnSegmentZ() { - QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( 333 ); bool topologicalEditing = QgsProject::instance()->topologicalEditing(); QgsProject::instance()->setTopologicalEditing( true ); diff --git a/tests/src/gui/testqgsmaptooledit.cpp b/tests/src/gui/testqgsmaptooledit.cpp index 4cfb228c4df..266273b981d 100644 --- a/tests/src/gui/testqgsmaptooledit.cpp +++ b/tests/src/gui/testqgsmaptooledit.cpp @@ -20,7 +20,7 @@ #include "qgsapplication.h" #include "qgsmapcanvas.h" #include "qgslogger.h" -#include "qgssettings.h" +#include "qgssettingsregistrycore.h" class TestQgsMapToolEdit : public QObject { @@ -65,14 +65,13 @@ void TestQgsMapToolEdit::cleanup() void TestQgsMapToolEdit::checkDefaultZValue() { - QgsSettings settings; - settings.remove( QStringLiteral( "/qgis/digitizing/default_z_value" ) ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.remove(); QgsMapToolEdit *tool = new QgsMapToolEdit( mCanvas ); QCOMPARE( tool->defaultZValue(), Qgis::DEFAULT_Z_COORDINATE ); double z_value_for_test = Qgis::DEFAULT_Z_COORDINATE + 1; - settings.setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), z_value_for_test ); + QgsSettingsRegistryCore::settingsDigitizingDefaultZValue.setValue( z_value_for_test ); QCOMPARE( tool->defaultZValue(), z_value_for_test ); } From 91f96a2fba63c4ca7bf2e27c7b26044390baee68 Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 22 Apr 2021 14:13:09 +0200 Subject: [PATCH 05/14] Moved remaining digitizing settings (enum/flag) --- .../settings/qgssettingsregistrycore.sip.in | 65 +++++++++++++++++++ src/app/options/qgsoptions.cpp | 16 ++--- src/core/qgssnappingconfig.cpp | 8 +-- src/core/qgstolerance.cpp | 9 +-- src/core/settings/qgssettingsregistrycore.cpp | 10 +-- src/core/settings/qgssettingsregistrycore.h | 10 +-- tests/src/core/testqgssettingsentry.cpp | 8 +-- 7 files changed, 94 insertions(+), 32 deletions(-) diff --git a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in index 9e8393cf500..ed01941c58f 100644 --- a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in +++ b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in @@ -5,6 +5,66 @@ * * * Do not edit manually ! Edit header and run scripts/sipify.pl again * ************************************************************************/ +class QgsSettingsEntryEnumFlag_settingsDigitizingOffsetCapStyle +{ +%TypeHeaderCode +#include "qgssettingsregistrycore.h" +#include "qgssettingsentry.h" +typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingOffsetCapStyle; +%End + public: + QgsSettingsEntryEnumFlag_settingsDigitizingOffsetCapStyle( const QString &key, QgsSettings::Section section, const QgsGeometry::EndCapStyle &defaultValue, const QString &description = QString() ); + QString key( const QString &dynamicKeyPart = QString() ) const; + QgsGeometry::EndCapStyle value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsGeometry::EndCapStyle &defaultValueOverride = QgsGeometry::EndCapStyle() ) const; +}; +class QgsSettingsEntryEnumFlag_settingsDigitizingOffsetJoinStyle +{ +%TypeHeaderCode +#include "qgssettingsregistrycore.h" +#include "qgssettingsentry.h" +typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingOffsetJoinStyle; +%End + public: + QgsSettingsEntryEnumFlag_settingsDigitizingOffsetJoinStyle( const QString &key, QgsSettings::Section section, const QgsGeometry::JoinStyle &defaultValue, const QString &description = QString() ); + QString key( const QString &dynamicKeyPart = QString() ) const; + QgsGeometry::JoinStyle value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsGeometry::JoinStyle &defaultValueOverride = QgsGeometry::JoinStyle() ) const; +}; +class QgsSettingsEntryEnumFlag_settingsDigitizingSearchRadiusVertexEditUnit +{ +%TypeHeaderCode +#include "qgssettingsregistrycore.h" +#include "qgssettingsentry.h" +typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingSearchRadiusVertexEditUnit; +%End + public: + QgsSettingsEntryEnumFlag_settingsDigitizingSearchRadiusVertexEditUnit( const QString &key, QgsSettings::Section section, const QgsTolerance::UnitType &defaultValue, const QString &description = QString() ); + QString key( const QString &dynamicKeyPart = QString() ) const; + QgsTolerance::UnitType value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsTolerance::UnitType &defaultValueOverride = QgsTolerance::UnitType() ) const; +}; +class QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnappingToleranceUnit +{ +%TypeHeaderCode +#include "qgssettingsregistrycore.h" +#include "qgssettingsentry.h" +typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnappingToleranceUnit; +%End + public: + QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnappingToleranceUnit( const QString &key, QgsSettings::Section section, const QgsTolerance::UnitType &defaultValue, const QString &description = QString() ); + QString key( const QString &dynamicKeyPart = QString() ) const; + QgsTolerance::UnitType value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsTolerance::UnitType &defaultValueOverride = QgsTolerance::UnitType() ) const; +}; +class QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType +{ +%TypeHeaderCode +#include "qgssettingsregistrycore.h" +#include "qgssettingsentry.h" +typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType; +%End + public: + QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType( const QString &key, QgsSettings::Section section, const QgsSnappingConfig::SnappingTypes &defaultValue, const QString &description = QString() ); + QString key( const QString &dynamicKeyPart = QString() ) const; + QgsSnappingConfig::SnappingTypes value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsSnappingConfig::SnappingTypes &defaultValueOverride = QgsSnappingConfig::SnappingTypes() ) const; +}; @@ -72,12 +132,15 @@ Add ``settingsEntry`` to the register. const QgsSettingsEntryBool settingsDigitizingDefaultSnapEnabled; + const QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType settingsDigitizingDefaultSnapType; const QgsSettingsEntryDouble settingsDigitizingDefaultSnappingTolerance; + const QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnappingToleranceUnit settingsDigitizingDefaultSnappingToleranceUnit; const QgsSettingsEntryDouble settingsDigitizingSearchRadiusVertexEdit; + const QgsSettingsEntryEnumFlag_settingsDigitizingSearchRadiusVertexEditUnit settingsDigitizingSearchRadiusVertexEditUnit; const QgsSettingsEntryColor settingsDigitizingSnapColor; @@ -97,6 +160,7 @@ Add ``settingsEntry`` to the register. const QgsSettingsEntryInteger settingsDigitizingValidateGeometries; + const QgsSettingsEntryEnumFlag_settingsDigitizingOffsetJoinStyle settingsDigitizingOffsetJoinStyle; const QgsSettingsEntryInteger settingsDigitizingOffsetQuadSeg; @@ -108,6 +172,7 @@ Add ``settingsEntry`` to the register. const QgsSettingsEntryDouble settingsDigitizingConvertToCurveDistanceTolerance; + const QgsSettingsEntryEnumFlag_settingsDigitizingOffsetCapStyle settingsDigitizingOffsetCapStyle; const QgsSettingsEntryBool settingsDigitizingOffsetShowAdvanced; diff --git a/src/app/options/qgsoptions.cpp b/src/app/options/qgsoptions.cpp index 61f0d76ed1f..023316a9972 100644 --- a/src/app/options/qgsoptions.cpp +++ b/src/app/options/qgsoptions.cpp @@ -1091,13 +1091,13 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListflagValue( QStringLiteral( "/qgis/digitizing/default_snap_type" ), QgsSnappingConfig::VertexFlag ); + QgsSnappingConfig::SnappingTypeFlag defaultSnapMode = QgsSettingsRegistryCore::settingsDigitizingDefaultSnapType.value(); mDefaultSnapModeComboBox->setCurrentIndex( mDefaultSnapModeComboBox->findData( static_cast( defaultSnapMode ) ) ); mDefaultSnappingToleranceSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.value() ); mDefaultSnappingToleranceSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.defaultValue() ); mSearchRadiusVertexEditSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.value() ); mSearchRadiusVertexEditSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.defaultValue() ); - QgsTolerance::UnitType defSnapUnits = mSettings->enumValue( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), Qgis::DEFAULT_SNAP_UNITS ); + QgsTolerance::UnitType defSnapUnits = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingToleranceUnit.value(); if ( defSnapUnits == QgsTolerance::ProjectUnits || defSnapUnits == QgsTolerance::LayerUnits ) { index = mDefaultSnappingToleranceComboBox->findText( tr( "map units" ) ); @@ -1107,7 +1107,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListfindText( tr( "pixels" ) ); } mDefaultSnappingToleranceComboBox->setCurrentIndex( index ); - QgsTolerance::UnitType defRadiusUnits = mSettings->enumValue( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit_unit" ), QgsTolerance::Pixels ); + QgsTolerance::UnitType defRadiusUnits = QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEditUnit.value(); if ( defRadiusUnits == QgsTolerance::ProjectUnits || defRadiusUnits == QgsTolerance::LayerUnits ) { index = mSearchRadiusVertexEditComboBox->findText( tr( "map units" ) ); @@ -1755,13 +1755,13 @@ void QgsOptions::saveOptions() //default snap mode QgsSettingsRegistryCore::settingsDigitizingDefaultSnapEnabled.setValue( mSnappingEnabledDefault->isChecked() ); - mSettings->setFlagValue( QStringLiteral( "/qgis/digitizing/default_snap_type" ), static_cast( mDefaultSnapModeComboBox->currentData().toInt() ) ); + QgsSettingsRegistryCore::settingsDigitizingDefaultSnapType.setValue( static_cast( mDefaultSnapModeComboBox->currentData().toInt() ) ); QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.setValue( mDefaultSnappingToleranceSpinBox->value() ); QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.setValue( mSearchRadiusVertexEditSpinBox->value() ); - mSettings->setEnumValue( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), - ( mDefaultSnappingToleranceComboBox->currentIndex() == 0 ? QgsTolerance::ProjectUnits : QgsTolerance::Pixels ) ); - mSettings->setEnumValue( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit_unit" ), - ( mSearchRadiusVertexEditComboBox->currentIndex() == 0 ? QgsTolerance::ProjectUnits : QgsTolerance::Pixels ) ); + QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingToleranceUnit.setValue( + ( mDefaultSnappingToleranceComboBox->currentIndex() == 0 ? QgsTolerance::ProjectUnits : QgsTolerance::Pixels ) ); + QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEditUnit.setValue( + ( mSearchRadiusVertexEditComboBox->currentIndex() == 0 ? QgsTolerance::ProjectUnits : QgsTolerance::Pixels ) ); QgsSettingsRegistryCore::settingsDigitizingSnapColor.setValue( mSnappingMarkerColorButton->color() ); QgsSettingsRegistryCore::settingsDigitizingSnapTooltip.setValue( mSnappingTooltipsCheckbox->isChecked() ); diff --git a/src/core/qgssnappingconfig.cpp b/src/core/qgssnappingconfig.cpp index 25683afb7de..beceb33daf1 100644 --- a/src/core/qgssnappingconfig.cpp +++ b/src/core/qgssnappingconfig.cpp @@ -197,9 +197,9 @@ void QgsSnappingConfig::reset() // could be removed in 3.4+ mode = AllLayers; } - QgsSnappingConfig::SnappingTypeFlag type = QgsSettings().flagValue( QStringLiteral( "/qgis/digitizing/default_snap_type" ), VertexFlag ); + QgsSnappingConfig::SnappingTypeFlag type = QgsSettingsRegistryCore::settingsDigitizingDefaultSnapType.value(); double tolerance = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.value(); - QgsTolerance::UnitType units = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), Qgis::DEFAULT_SNAP_UNITS ); + QgsTolerance::UnitType units = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingToleranceUnit.value(); // assign main (standard) config mEnabled = enabled; @@ -598,9 +598,9 @@ bool QgsSnappingConfig::addLayers( const QList &layers ) { bool changed = false; bool enabled = QgsSettingsRegistryCore::settingsDigitizingDefaultSnapEnabled.value( QString(), true, true ); - QgsSnappingConfig::SnappingTypeFlag type = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/default_snap_type" ), VertexFlag ); + QgsSnappingConfig::SnappingTypeFlag type = QgsSettingsRegistryCore::settingsDigitizingDefaultSnapType.value(); double tolerance = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.value(); - QgsTolerance::UnitType units = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), Qgis::DEFAULT_SNAP_UNITS ); + QgsTolerance::UnitType units = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingToleranceUnit.value(); const auto constLayers = layers; for ( QgsMapLayer *ml : constLayers ) diff --git a/src/core/qgstolerance.cpp b/src/core/qgstolerance.cpp index c87b7e2f812..f8655d8a7be 100644 --- a/src/core/qgstolerance.cpp +++ b/src/core/qgstolerance.cpp @@ -72,9 +72,8 @@ double QgsTolerance::toleranceInMapUnits( double tolerance, QgsMapLayer *layer, double QgsTolerance::vertexSearchRadius( const QgsMapSettings &mapSettings ) { - QgsSettings settings; double tolerance = QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.value(); - UnitType units = settings.enumValue( QStringLiteral( "qgis/digitizing/search_radius_vertex_edit_unit" ), QgsTolerance::Pixels ); + UnitType units = QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEditUnit.value(); if ( units == LayerUnits ) units = ProjectUnits; return toleranceInProjectUnits( tolerance, nullptr, mapSettings, units ); @@ -82,17 +81,15 @@ double QgsTolerance::vertexSearchRadius( const QgsMapSettings &mapSettings ) double QgsTolerance::vertexSearchRadius( QgsMapLayer *layer, const QgsMapSettings &mapSettings ) { - QgsSettings settings; double tolerance = QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEdit.value(); - UnitType units = settings.enumValue( QStringLiteral( "qgis/digitizing/search_radius_vertex_edit_unit" ), QgsTolerance::Pixels ); + UnitType units = QgsSettingsRegistryCore::settingsDigitizingSearchRadiusVertexEditUnit.value(); return toleranceInMapUnits( tolerance, layer, mapSettings, units ); } double QgsTolerance::defaultTolerance( QgsMapLayer *layer, const QgsMapSettings &mapSettings ) { - QgsSettings settings; double tolerance = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingTolerance.value(); - UnitType units = settings.enumValue( QStringLiteral( "qgis/digitizing/default_snapping_tolerance_unit" ), Qgis::DEFAULT_SNAP_UNITS ); + UnitType units = QgsSettingsRegistryCore::settingsDigitizingDefaultSnappingToleranceUnit.value(); return toleranceInMapUnits( tolerance, layer, mapSettings, units ); } diff --git a/src/core/settings/qgssettingsregistrycore.cpp b/src/core/settings/qgssettingsregistrycore.cpp index 23fbb8a622c..1b5e50f81dc 100644 --- a/src/core/settings/qgssettingsregistrycore.cpp +++ b/src/core/settings/qgssettingsregistrycore.cpp @@ -72,11 +72,11 @@ QgsSettingsRegistryCore::QgsSettingsRegistryCore() addSettingsEntry( &settingsDigitizingLineGhost ); addSettingsEntry( &settingsDigitizingDefaultZValue ); addSettingsEntry( &settingsDigitizingDefaultSnapEnabled ); -// addSettingsEntry( &settingsDigitizingDefaultSnapType ); + addSettingsEntry( &settingsDigitizingDefaultSnapType ); addSettingsEntry( &settingsDigitizingDefaultSnappingTolerance ); -// addSettingsEntry( &settingsDigitizingDefaultSnappingToleranceUnit ); + addSettingsEntry( &settingsDigitizingDefaultSnappingToleranceUnit ); addSettingsEntry( &settingsDigitizingSearchRadiusVertexEdit ); -// addSettingsEntry( &settingsDigitizingSearchRadiusVertexEditUnit ); + addSettingsEntry( &settingsDigitizingSearchRadiusVertexEditUnit ); addSettingsEntry( &settingsDigitizingSnapColor ); addSettingsEntry( &settingsDigitizingSnapTooltip ); addSettingsEntry( &settingsDigitizingSnapInvisibleFeature ); @@ -86,13 +86,13 @@ QgsSettingsRegistryCore::QgsSettingsRegistryCore() addSettingsEntry( &settingsDigitizingReuseLastValues ); addSettingsEntry( &settingsDigitizingDisableEnterAttributeValuesDialog ); addSettingsEntry( &settingsDigitizingValidateGeometries ); -// addSettingsEntry( &settingsDigitizingOffsetJoinStyle ); + addSettingsEntry( &settingsDigitizingOffsetJoinStyle ); addSettingsEntry( &settingsDigitizingOffsetQuadSeg ); addSettingsEntry( &settingsDigitizingOffsetMiterLimit ); addSettingsEntry( &settingsDigitizingConvertToCurve ); addSettingsEntry( &settingsDigitizingConvertToCurveAngleTolerance ); addSettingsEntry( &settingsDigitizingConvertToCurveDistanceTolerance ); -// addSettingsEntry( &settingsDigitizingOffsetCapStyle ); + addSettingsEntry( &settingsDigitizingOffsetCapStyle ); addSettingsEntry( &settingsDigitizingOffsetShowAdvanced ); addSettingsEntry( &settingsDigitizingTracingMaxFeatureCount ); } diff --git a/src/core/settings/qgssettingsregistrycore.h b/src/core/settings/qgssettingsregistrycore.h index da0a25902ac..1d68d9cccc9 100644 --- a/src/core/settings/qgssettingsregistrycore.h +++ b/src/core/settings/qgssettingsregistrycore.h @@ -91,19 +91,19 @@ class CORE_EXPORT QgsSettingsRegistryCore : public QgsSettingsRegistry static const inline QgsSettingsEntryBool settingsDigitizingDefaultSnapEnabled = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/default_snap_enabled" ), QgsSettings::NoSection, false ); //! Settings entry digitizing default snap type -// static const inline QgsSettingsEntryEnumFlag settingsDigitizingDefaultSnapType = QgsSettingsEntryEnumFlag( QStringLiteral( "/qgis/digitizing/default_snap_type" ), QgsSettings::NoSection, QgsSnappingConfig::VertexFlag ); + static const inline QgsSettingsEntryEnumFlag settingsDigitizingDefaultSnapType = QgsSettingsEntryEnumFlag( QStringLiteral( "/qgis/digitizing/default_snap_type" ), QgsSettings::NoSection, QgsSnappingConfig::VertexFlag ); //! Settings entry digitizing default snapping tolerance static const inline QgsSettingsEntryDouble settingsDigitizingDefaultSnappingTolerance = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance" ), QgsSettings::NoSection, Qgis::DEFAULT_SNAP_TOLERANCE ); //! Settings entry digitizing default snapping tolerance unit -// static const inline QgsSettingsEntryEnum settingsDigitizingDefaultSnappingToleranceUnit = QgsSettingsEntryEnum( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), QgsSettings::NoSection, Qgis::DEFAULT_SNAP_UNITS ); + static const inline QgsSettingsEntryEnumFlag settingsDigitizingDefaultSnappingToleranceUnit = QgsSettingsEntryEnumFlag( QStringLiteral( "/qgis/digitizing/default_snapping_tolerance_unit" ), QgsSettings::NoSection, Qgis::DEFAULT_SNAP_UNITS ); //! Settings entry digitizing search radius vertex edit static const inline QgsSettingsEntryDouble settingsDigitizingSearchRadiusVertexEdit = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit" ), QgsSettings::NoSection, 10 ); //! Settings entry digitizing search radius vertex edit unit -// static const inline QgsSettingsEntryEnum settingsDigitizingSearchRadiusVertexEditUnit = QgsSettingsEntryEnum( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit_unit" ), QgsSettings::NoSection, QgsTolerance::Pixels ); + static const inline QgsSettingsEntryEnumFlag settingsDigitizingSearchRadiusVertexEditUnit = QgsSettingsEntryEnumFlag( QStringLiteral( "/qgis/digitizing/search_radius_vertex_edit_unit" ), QgsSettings::NoSection, QgsTolerance::Pixels ); //! Settings entry digitizing snap color static const inline QgsSettingsEntryColor settingsDigitizingSnapColor = QgsSettingsEntryColor( QStringLiteral( "/qgis/digitizing/snap_color" ), QgsSettings::NoSection, QColor( Qt::magenta ) ); @@ -133,7 +133,7 @@ class CORE_EXPORT QgsSettingsRegistryCore : public QgsSettingsRegistry static const inline QgsSettingsEntryInteger settingsDigitizingValidateGeometries = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/validate_geometries" ), QgsSettings::NoSection, 1 ); //! Settings entry digitizing offset join style -// static const inline QgsSettingsEntryEnum settingsDigitizingOffsetJoinStyle = QgsSettingsEntryEnum( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsSettings::NoSection, QgsGeometry::JoinStyleRound ); + static const inline QgsSettingsEntryEnumFlag settingsDigitizingOffsetJoinStyle = QgsSettingsEntryEnumFlag( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsSettings::NoSection, QgsGeometry::JoinStyleRound ); //! Settings entry digitizing offset quad seg static const inline QgsSettingsEntryInteger settingsDigitizingOffsetQuadSeg = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), QgsSettings::NoSection, 8 ); @@ -151,7 +151,7 @@ class CORE_EXPORT QgsSettingsRegistryCore : public QgsSettingsRegistry static const inline QgsSettingsEntryDouble settingsDigitizingConvertToCurveDistanceTolerance = QgsSettingsEntryDouble( QStringLiteral( "/qgis/digitizing/convert_to_curve_distance_tolerance" ), QgsSettings::NoSection, 1e-6 ); //! Settings entry digitizing offset cap style -// static const inline QgsSettingsEntryEnum settingsDigitizingOffsetCapStyle = QgsSettingsEntryEnum( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), QgsSettings::NoSection, QgsGeometry::CapRound ); + static const inline QgsSettingsEntryEnumFlag settingsDigitizingOffsetCapStyle = QgsSettingsEntryEnumFlag( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), QgsSettings::NoSection, QgsGeometry::CapRound ); //! Settings entry digitizing offset show advanced static const inline QgsSettingsEntryBool settingsDigitizingOffsetShowAdvanced = QgsSettingsEntryBool( QStringLiteral( "/qgis/digitizing/offset_show_advanced" ), QgsSettings::NoSection, false ); diff --git a/tests/src/core/testqgssettingsentry.cpp b/tests/src/core/testqgssettingsentry.cpp index 52962fe3e7d..f3826cc1556 100644 --- a/tests/src/core/testqgssettingsentry.cpp +++ b/tests/src/core/testqgssettingsentry.cpp @@ -101,7 +101,7 @@ void TestQgsSettingsEntry::enumValue() // Make sure the setting is not existing QgsSettings().remove( settingsKey, QgsSettings::NoSection ); - QgsSettingsEntryEnum settingsEntryEnum( settingsKey, QgsSettings::NoSection, QgsUnitTypes::LayoutMeters, QStringLiteral( "Layout unit" ) ); + QgsSettingsEntryEnumFlag settingsEntryEnum( settingsKey, QgsSettings::NoSection, QgsUnitTypes::LayoutMeters, "Layout unit" ); // Check default value QCOMPARE( settingsEntryEnum.defaultValue(), QgsUnitTypes::LayoutMeters ); @@ -119,7 +119,7 @@ void TestQgsSettingsEntry::enumValue() QCOMPARE( settingsEntryEnum.value(), QgsUnitTypes::LayoutPicas ); // Check settings type - QCOMPARE( settingsEntryEnum.settingsType(), QgsSettingsEntryBase::SettingsType::Enum ); + QCOMPARE( settingsEntryEnum.settingsType(), QgsSettingsEntryBase::SettingsType::EnumFlag ); // assign to inexisting value { @@ -150,7 +150,7 @@ void TestQgsSettingsEntry::flagValue() // Make sure the setting is not existing QgsSettings().remove( settingsKey, QgsSettings::NoSection ); - QgsSettingsEntryFlag settingsEntryFlag( settingsKey, QgsSettings::NoSection, pointAndLine, QStringLiteral( "Filters" ) ); + QgsSettingsEntryEnumFlag settingsEntryFlag( settingsKey, QgsSettings::NoSection, pointAndLine, "Filters" ); // Check default value QCOMPARE( settingsEntryFlag.defaultValue(), pointAndLine ); @@ -168,7 +168,7 @@ void TestQgsSettingsEntry::flagValue() QCOMPARE( settingsEntryFlag.value(), pointAndLine ); // Check settings type - QCOMPARE( settingsEntryFlag.settingsType(), QgsSettingsEntryBase::SettingsType::Flag ); + QCOMPARE( settingsEntryFlag.settingsType(), QgsSettingsEntryBase::SettingsType::EnumFlag ); // check that value is stored as string QCOMPARE( settingsEntryFlag.valueAsVariant().toByteArray(), QMetaEnum::fromType().valueToKeys( pointAndLine ) ); From 65583b4a051e1ef1903fba6e481bef6dce3612bb Mon Sep 17 00:00:00 2001 From: Damiano Date: Tue, 20 Apr 2021 14:50:40 +0200 Subject: [PATCH 06/14] Added missing QStringLiteral in tests --- tests/src/core/testqgssettingsentry.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/src/core/testqgssettingsentry.cpp b/tests/src/core/testqgssettingsentry.cpp index f3826cc1556..a28502e1a40 100644 --- a/tests/src/core/testqgssettingsentry.cpp +++ b/tests/src/core/testqgssettingsentry.cpp @@ -101,7 +101,7 @@ void TestQgsSettingsEntry::enumValue() // Make sure the setting is not existing QgsSettings().remove( settingsKey, QgsSettings::NoSection ); - QgsSettingsEntryEnumFlag settingsEntryEnum( settingsKey, QgsSettings::NoSection, QgsUnitTypes::LayoutMeters, "Layout unit" ); + QgsSettingsEntryEnumFlag settingsEntryEnum( settingsKey, QgsSettings::NoSection, QgsUnitTypes::LayoutMeters, QStringLiteral( "Layout unit" ) ); // Check default value QCOMPARE( settingsEntryEnum.defaultValue(), QgsUnitTypes::LayoutMeters ); @@ -150,7 +150,7 @@ void TestQgsSettingsEntry::flagValue() // Make sure the setting is not existing QgsSettings().remove( settingsKey, QgsSettings::NoSection ); - QgsSettingsEntryEnumFlag settingsEntryFlag( settingsKey, QgsSettings::NoSection, pointAndLine, "Filters" ); + QgsSettingsEntryEnumFlag settingsEntryFlag( settingsKey, QgsSettings::NoSection, pointAndLine, QStringLiteral( "Filters" ) ); // Check default value QCOMPARE( settingsEntryFlag.defaultValue(), pointAndLine ); From 1def5e7b94a652842c23edbdfb66d49eaf56b2be Mon Sep 17 00:00:00 2001 From: Damiano Date: Sun, 25 Apr 2021 22:48:32 +0200 Subject: [PATCH 07/14] Python QgsSettingsEnum and Flag unified in QgsSettingsEnumFlag --- python/core/__init__.py.in | 5 +- python/core/additions/qgssettingsentry.py | 90 ++++--------------- .../network/qgsnetworkaccessmanager.sip.in | 5 +- .../settings/qgssettingsentry.sip.in | 13 +-- tests/src/python/test_qgssettingsentry.py | 10 +-- tests/src/python/test_qgssettingsregistry.py | 5 -- 6 files changed, 29 insertions(+), 99 deletions(-) diff --git a/python/core/__init__.py.in b/python/core/__init__.py.in index 76eb01d58c7..6bc7f371ca2 100644 --- a/python/core/__init__.py.in +++ b/python/core/__init__.py.in @@ -34,7 +34,7 @@ from .additions.qgsfeature import mapping_feature from .additions.qgsfunction import register_function, qgsfunction from .additions.qgsgeometry import _geometryNonZero, mapping_geometry from .additions.qgssettings import _qgssettings_enum_value, _qgssettings_set_enum_value, _qgssettings_flag_value -from .additions.qgssettingsentry import PyQgsSettingsEntryEnum, PyQgsSettingsEntryFlag +from .additions.qgssettingsentry import PyQgsSettingsEntryEnumFlag from .additions.qgstaskwrapper import QgsTaskWrapper from .additions.readwritecontextentercategory import ReadWriteContextEnterCategory from .additions.runtimeprofiler import ScopedRuntimeProfileContextManager @@ -59,8 +59,7 @@ QgsDateTimeRange.__repr__ = datetime_range_repr QgsDateRange.__repr__ = date_range_repr # Classes patched -QgsSettingsEntryEnum = PyQgsSettingsEntryEnum -QgsSettingsEntryFlag = PyQgsSettingsEntryFlag +QgsSettingsEntryEnumFlag = PyQgsSettingsEntryEnumFlag # Classes patched using a derived class QgsProviderMetadata = PyProviderMetadata diff --git a/python/core/additions/qgssettingsentry.py b/python/core/additions/qgssettingsentry.py index 447a8228b3a..7a9564cb979 100644 --- a/python/core/additions/qgssettingsentry.py +++ b/python/core/additions/qgssettingsentry.py @@ -22,7 +22,7 @@ from qgis.core import QgsSettings, QgsSettingsEntryBase, QgsLogger import qgis # required to get base class of enums -class _PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): +class PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): """ class QgsSettingsEntryEnum ingroup core An enum settings entry. @@ -30,7 +30,7 @@ class _PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): """ def __init__(self, key, pluginName, defaultValue, description=str()): - """ Constructor for _PyQgsSettingsEntryEnumFlag. + """ Constructor for PyQgsSettingsEntryEnumFlag. :param self: the QgsSettingsEntryEnum object :param key: argument specifies the final part of the settings key. @@ -47,10 +47,10 @@ class _PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): if self.__metaEnum is None or not self.__metaEnum.isValid(): QgsLogger.debug("Invalid metaenum. Enum/Flag probably misses Q_ENUM/Q_FLAG declaration. Settings key: '{0}'".format(self.key())) else: - if self.settingsType() is self.SettingsType.Enum: - defaultValueStr = self.__metaEnum.valueToKey(defaultValue) - else: + if self.__metaEnum.isFlag(): defaultValueStr = self.__metaEnum.valueToKeys(defaultValue) + else: + defaultValueStr = self.__metaEnum.valueToKey(defaultValue) self.__enumFlagClass = defaultValue.__class__ super().__init__(key, pluginName, defaultValueStr, description) @@ -58,7 +58,7 @@ class _PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): def value(self, dynamicKeyPart=None, useDefaultValueOverride=False, defaultValueOverride=None): """ Get settings value. - :param self: the _PyQgsSettingsEntryEnumFlag object + :param self: the PyQgsSettingsEntryEnumFlag object :param dynamicKeyPart: argument specifies the dynamic part of the settings key. :param useDefaultValueOverride: argument specifies if defaultValueOverride should be used. :param defaultValueOverride: argument if valid is used instead of the normal default value. @@ -68,19 +68,19 @@ class _PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): if useDefaultValueOverride: defaultValue = defaultValueOverride - if self.settingsType() is self.SettingsType.Enum: - return QgsSettings().enumValue(self.key(dynamicKeyPart), + if self.__metaEnum.isFlag(): + return QgsSettings().flagValue(self.key(dynamicKeyPart), defaultValue, self.section()) else: - return QgsSettings().flagValue(self.key(dynamicKeyPart), + return QgsSettings().enumValue(self.key(dynamicKeyPart), defaultValue, self.section()) def defaultValue(self): """ Get settings default value. - :param self: the _PyQgsSettingsEntryEnumFlag object + :param self: the PyQgsSettingsEntryEnumFlag object """ if self.__metaEnum is None or not self.__metaEnum.isValid(): @@ -88,10 +88,10 @@ class _PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): return -1 defaultValueString = self.defaultValueAsVariant() - if self.settingsType() is self.SettingsType.Enum: - (defaultValue, ok) = self.__metaEnum.keyToValue(defaultValueString) - else: + if self.__metaEnum.isFlag(): (defaultValue, ok) = self.__metaEnum.keysToValue(defaultValueString) + else: + (defaultValue, ok) = self.__metaEnum.keyToValue(defaultValueString) if not ok: QgsLogger.debug("Invalid enum/flag key/s '{0}'.".format(self.defaultValueAsVariant())) return -1 @@ -103,7 +103,7 @@ class _PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): def setValue(self, value, dynamicKeyPart=None): """ Set settings value. - :param self: the _PyQgsSettingsEntryEnumFlag object + :param self: the PyQgsSettingsEntryEnumFlag object :param dynamicKeyPart: argument specifies the dynamic part of the settings key. """ @@ -112,72 +112,20 @@ class _PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): return False enumFlagKey = str() - if self.settingsType() is self.SettingsType.Enum: - enumFlagKey = self.__metaEnum.valueToKey(value) - else: + if self.__metaEnum.isFlag(): enumFlagKey = self.__metaEnum.valueToKeys(value) + else: + enumFlagKey = self.__metaEnum.valueToKey(value) if not enumFlagKey: QgsLogger.debug("Invalid enum/flag value '{0}'.".format(value)) return False return super().setVariantValue(enumFlagKey, dynamicKeyPart) - -class PyQgsSettingsEntryEnum(_PyQgsSettingsEntryEnumFlag): - """ class QgsSettingsEntryEnum - ingroup core - An enum settings entry. - since QGIS 3.20 - """ - - def __init__(self, key, pluginName, defaultValue, description=str()): - """ Constructor for QgsSettingsEntryEnum. - - :param self: the QgsSettingsEntryEnum object - :param key: argument specifies the final part of the settings key. - :param pluginName: argument is inserted in the key after the section. - :param defaultValue: argument specifies the default value for the settings entry. - :param description: argument specifies a description for the settings entry. - - .. note:: The enum needs to be declared with Q_ENUM. - """ - - super().__init__(key, pluginName, defaultValue, description) - def settingsType(self): """ Get the settings entry type. - :param self: the QgsSettingsEntryEnum object + :param self: the QgsSettingsEntryEnumFlag object """ - return self.SettingsType.Enum - - -class PyQgsSettingsEntryFlag(_PyQgsSettingsEntryEnumFlag): - """ class QgsSettingsEntryFlag - ingroup core - A flag settings entry. - since QGIS 3.20 - """ - - def __init__(self, key, pluginName, defaultValue, description=str()): - """ Constructor for QgsSettingsEntryFlag. - - :param self: the QgsSettingsEntryFlag object - :param key: argument specifies the final part of the settings key. - :param pluginName: argument is inserted in the key after the section. - :param defaultValue: argument specifies the default value for the settings entry. - :param description: argument specifies a description for the settings entry. - - .. note:: The flag needs to be declared with Q_FLAG (not Q_FLAGS). - """ - - super().__init__(key, pluginName, defaultValue, description) - - def settingsType(self): - """ Get the settings entry type. - - :param self: the QgsSettingsEntryFlag object - """ - - return self.SettingsType.Flag + return self.SettingsType.EnumFlag diff --git a/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in b/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in index a651e1adf58..a1123e57be2 100644 --- a/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in +++ b/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in @@ -321,7 +321,6 @@ The contents of the reply will be returned after the request is completed or an .. versionadded:: 3.6 %End -<<<<<<< HEAD void requestAuthOpenBrowser( const QUrl &url ) const; %Docstring Forwards an external browser login ``url`` opening request to the authentication handler. @@ -343,9 +342,9 @@ Forwards an external browser login closure request to the authentication handler .. versionadded:: 3.20 %End -======= + const QgsSettingsEntryInteger settingsNetworkTimeout; ->>>>>>> 2087a7f4f8 (Removed settings struct) + signals: diff --git a/python/core/auto_generated/settings/qgssettingsentry.sip.in b/python/core/auto_generated/settings/qgssettingsentry.sip.in index 2ff8ca0c582..bbc4b61713f 100644 --- a/python/core/auto_generated/settings/qgssettingsentry.sip.in +++ b/python/core/auto_generated/settings/qgssettingsentry.sip.in @@ -758,7 +758,6 @@ Returns how much decimals should be shown in the Gui. }; - template class QgsSettingsEntryEnumFlag : QgsSettingsEntryBase { @@ -779,7 +778,7 @@ A template class for enum and flag settings entry. QgsSettingsEntryEnumFlag( const QString &key, QgsSettings::Section section, const T &defaultValue, const QString &description = QString() ); %Docstring -Constructor for QgsSettingsEntryEnumFlag. +Constructor for :py:class:`QgsSettingsEntryEnumFlagBase`. The ``key`` argument specifies the final part of the settings key. The ``section`` argument specifies the section. @@ -836,16 +835,6 @@ Get settings default value. }; - - - - - - - - - - class QgsSettingsEntryColor : QgsSettingsEntryBase { %Docstring(signature="appended") diff --git a/tests/src/python/test_qgssettingsentry.py b/tests/src/python/test_qgssettingsentry.py index 161220f9e08..02e58a3c587 100644 --- a/tests/src/python/test_qgssettingsentry.py +++ b/tests/src/python/test_qgssettingsentry.py @@ -10,7 +10,7 @@ the Free Software Foundation; either version 2 of the License, or (at your option) any later version. """ -from qgis.core import QgsSettings, QgsSettingsEntryBase, QgsSettingsEntryVariant, QgsSettingsEntryString, QgsSettingsEntryStringList, QgsSettingsEntryBool, QgsSettingsEntryInteger, QgsSettingsEntryDouble, QgsSettingsEntryEnum, QgsSettingsEntryFlag, QgsUnitTypes, QgsMapLayerProxyModel +from qgis.core import QgsSettings, QgsSettingsEntryBase, QgsSettingsEntryVariant, QgsSettingsEntryString, QgsSettingsEntryStringList, QgsSettingsEntryBool, QgsSettingsEntryInteger, QgsSettingsEntryDouble, QgsSettingsEntryEnumFlag, QgsUnitTypes, QgsMapLayerProxyModel from qgis.testing import start_app, unittest __author__ = 'Damiano Lombardi' @@ -298,7 +298,7 @@ class TestQgsSettingsEntry(unittest.TestCase): defaultValue = QgsUnitTypes.LayoutMeters description = "Enum value functionality test" - settingsEntryEnum = QgsSettingsEntryEnum(settingsKey, self.pluginName, defaultValue, description) + settingsEntryEnum = QgsSettingsEntryEnumFlag(settingsKey, self.pluginName, defaultValue, description) # Check default value self.assertEqual(settingsEntryEnum.defaultValue(), QgsUnitTypes.LayoutMeters) @@ -314,7 +314,7 @@ class TestQgsSettingsEntry(unittest.TestCase): self.assertEqual(settingsEntryEnum.value(), QgsUnitTypes.LayoutPicas) # Check settings type - self.assertEqual(settingsEntryEnum.settingsType(), QgsSettingsEntryBase.SettingsType.Enum) + self.assertEqual(settingsEntryEnum.settingsType(), QgsSettingsEntryBase.SettingsType.EnumFlag) # assign to inexisting value success = settingsEntryEnum.setValue(-1) @@ -336,7 +336,7 @@ class TestQgsSettingsEntry(unittest.TestCase): QgsSettings().remove(settingsKeyComplete, QgsSettings.Plugins) description = "Flag value functionality test" - settingsEntryFlag = QgsSettingsEntryFlag(settingsKey, self.pluginName, pointAndLine, description) + settingsEntryFlag = QgsSettingsEntryEnumFlag(settingsKey, self.pluginName, pointAndLine, description) # Check default value self.assertEqual(settingsEntryFlag.defaultValue(), pointAndLine) @@ -352,7 +352,7 @@ class TestQgsSettingsEntry(unittest.TestCase): self.assertEqual(settingsEntryFlag.value(), pointAndPolygon) # Check settings type - self.assertEqual(settingsEntryFlag.settingsType(), QgsSettingsEntryBase.SettingsType.Flag) + self.assertEqual(settingsEntryFlag.settingsType(), QgsSettingsEntryBase.SettingsType.EnumFlag) if __name__ == '__main__': diff --git a/tests/src/python/test_qgssettingsregistry.py b/tests/src/python/test_qgssettingsregistry.py index f1ae8f8a802..7db9adbcac5 100644 --- a/tests/src/python/test_qgssettingsregistry.py +++ b/tests/src/python/test_qgssettingsregistry.py @@ -42,11 +42,6 @@ class PyQgsSettingsRegistry(unittest.TestCase): self.assertEqual(QgsApplication.settingsRegistryCore().getSettingsEntry(settingsEntry.key(), True), settingsEntry) - print(QgsApplication.settingsRegistryCore().settingsDigitizingDefaultZValue.key()) - - print(QgsApplication.settingsRegistryCore().settingsDigitizingDefaultSnapType.key()) - print(QgsApplication.settingsRegistryCore().settingsDigitizingDefaultSnapType.value()) - if __name__ == '__main__': unittest.main() From 79393b628421a174d0413cd0bc6519dfbdec7726 Mon Sep 17 00:00:00 2001 From: Damiano Date: Mon, 26 Apr 2021 09:10:44 +0200 Subject: [PATCH 08/14] QgsSettingsTree widget refresh setting list on show --- src/app/qgssettingstree.cpp | 35 +++++++++++++++----------- src/app/qgssettingstree.h | 1 + src/core/settings/qgssettingsentry.cpp | 6 +++++ 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/app/qgssettingstree.cpp b/src/app/qgssettingstree.cpp index 2e0d8396808..9c447417346 100644 --- a/src/app/qgssettingstree.cpp +++ b/src/app/qgssettingstree.cpp @@ -48,6 +48,7 @@ #include "qgssettingsentry.h" #include "qgssettingsregistrycore.h" #include "qgsapplication.h" +#include "qgsguiutils.h" #include #include @@ -80,14 +81,14 @@ QgsSettingsTree::QgsSettingsTree( QWidget *parent ) void QgsSettingsTree::setSettingsObject( QgsSettings *settings ) { - delete this->mSettings; - this->mSettings = settings; + mSettings = settings; clear(); - if ( settings ) + if ( mSettings ) { - settings->setParent( this ); - refresh(); + mSettings->setParent( this ); + if ( isVisible() ) + refresh(); if ( mAutoRefresh ) mRefreshTimer.start(); } @@ -104,18 +105,16 @@ QSize QgsSettingsTree::sizeHint() const void QgsSettingsTree::setAutoRefresh( bool autoRefresh ) { - this->mAutoRefresh = autoRefresh; - if ( mSettings ) + mAutoRefresh = autoRefresh; + if ( mAutoRefresh ) { - if ( autoRefresh ) - { - maybeRefresh(); + maybeRefresh(); + if ( mSettings ) mRefreshTimer.start(); - } - else - { - mRefreshTimer.stop(); - } + } + else + { + mRefreshTimer.stop(); } } @@ -162,6 +161,12 @@ bool QgsSettingsTree::event( QEvent *event ) return QTreeWidget::event( event ); } +void QgsSettingsTree::showEvent( QShowEvent * ) +{ + QgsTemporaryCursorOverride waitCursor( Qt::BusyCursor ); + refresh(); +} + void QgsSettingsTree::updateSetting( QTreeWidgetItem *item ) { QString key = itemKey( item ); diff --git a/src/app/qgssettingstree.h b/src/app/qgssettingstree.h index 4253b7a7362..ad07095eee3 100644 --- a/src/app/qgssettingstree.h +++ b/src/app/qgssettingstree.h @@ -83,6 +83,7 @@ class QgsSettingsTree : public QTreeWidget protected: bool event( QEvent *event ) override; + void showEvent( QShowEvent * ) override; private slots: void updateSetting( QTreeWidgetItem *item ); diff --git a/src/core/settings/qgssettingsentry.cpp b/src/core/settings/qgssettingsentry.cpp index 35f09a85a3b..f3b7c0b0fb6 100644 --- a/src/core/settings/qgssettingsentry.cpp +++ b/src/core/settings/qgssettingsentry.cpp @@ -85,6 +85,12 @@ QString QgsSettingsEntryBase::key( const QStringList &dynamicKeyPartList ) const bool QgsSettingsEntryBase::keyIsValid( const QString &key ) const { + if ( !hasDynamicKey() ) + { + if ( !key.contains( definitionKey() ) ) + return false; + } + // Key to check QString completeKeyToCheck = key; From 70ab21f121fc5ab7547b37b169ad5ddf6e75586e Mon Sep 17 00:00:00 2001 From: Damiano Date: Mon, 26 Apr 2021 15:45:04 +0200 Subject: [PATCH 09/14] Rebase to current master --- .../settings/qgssettingsentry.sip.in | 31 ------------------- .../settings/qgssettingsregistry.sip.in | 8 ----- .../settings/qgssettingsregistrycore.sip.in | 16 +--------- 3 files changed, 1 insertion(+), 54 deletions(-) diff --git a/python/core/auto_generated/settings/qgssettingsentry.sip.in b/python/core/auto_generated/settings/qgssettingsentry.sip.in index bbc4b61713f..b410cb872f0 100644 --- a/python/core/auto_generated/settings/qgssettingsentry.sip.in +++ b/python/core/auto_generated/settings/qgssettingsentry.sip.in @@ -86,7 +86,6 @@ Get settings entry key. The ``dynamicKeyParts`` argument specifies the list of dynamic parts of the settings key. %End -<<<<<<< HEAD bool keyIsValid( const QString &key ) const; %Docstring Returns ``True`` if the provided key match the settings entry. @@ -98,8 +97,6 @@ defined with the key "NewsFeed/%1/%2/content" The ``key`` to check %End -======= ->>>>>>> 7b8aad6203 (Removed settings struct) QString definitionKey() const; %Docstring Returns settings entry defining key. @@ -121,11 +118,7 @@ The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. bool exists( const QStringList &dynamicKeyPartList ) const; %Docstring -<<<<<<< HEAD Returns ``True`` if the settings is contained in the underlying QSettings. -======= -Returns true if the settings is contained in the underlying QSettings. ->>>>>>> 7b8aad6203 (Removed settings struct) The ``dynamicKeyParts`` argument specifies the list of dynamic parts of the settings key. %End @@ -306,19 +299,11 @@ The ``description`` argument specifies a description for the settings entry. bool setValue( const QString &value, const QString &dynamicKeyPart = QString() ) const; %Docstring Set settings value. -<<<<<<< HEAD The ``value`` to set. The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. %End -======= - -The ``value`` to set. -The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. -%End - ->>>>>>> 7b8aad6203 (Removed settings struct) bool setValue( const QString &value, const QStringList &dynamicKeyPartList ) const; %Docstring Set settings value. @@ -413,19 +398,11 @@ The ``description`` argument specifies a description for the settings entry. bool setValue( const QStringList &value, const QString &dynamicKeyPart = QString() ) const; %Docstring Set settings value. -<<<<<<< HEAD The ``value`` to set. The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. %End -======= - -The ``value`` to set. -The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. -%End - ->>>>>>> 7b8aad6203 (Removed settings struct) bool setValue( const QStringList &value, const QStringList &dynamicKeyPartList ) const; %Docstring Set settings value. @@ -670,19 +647,11 @@ The ``description`` argument specifies a description for the settings entry. bool setValue( double value, const QString &dynamicKeyPart = QString() ) const; %Docstring Set settings value. -<<<<<<< HEAD The ``value`` to set. The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. %End -======= - -The ``value`` to set. -The ``dynamicKeyPart`` argument specifies the dynamic part of the settings key. -%End - ->>>>>>> 7b8aad6203 (Removed settings struct) bool setValue( double value, const QStringList &dynamicKeyPartList ) const; %Docstring Set settings value. diff --git a/python/core/auto_generated/settings/qgssettingsregistry.sip.in b/python/core/auto_generated/settings/qgssettingsregistry.sip.in index 62b544792fa..1ddb3d0d201 100644 --- a/python/core/auto_generated/settings/qgssettingsregistry.sip.in +++ b/python/core/auto_generated/settings/qgssettingsregistry.sip.in @@ -31,7 +31,6 @@ Constructor for QgsSettingsRegistry. virtual ~QgsSettingsRegistry(); -<<<<<<< HEAD QList getChildSettingsEntries() const; %Docstring Returns the list of registered :py:class:`QgsSettingsEntryBase`. @@ -56,13 +55,6 @@ Returns the list of registered child QgsSettingsRegistry. protected: -======= - const QgsSettingsEntryBase *getSettingsEntry( const QString &key ); -%Docstring -Returns the :py:class:`QgsSettingsEntry` with the given ``key`` or None if not found. -%End - ->>>>>>> 7b8aad6203 (Removed settings struct) void addSettingsEntry( const QgsSettingsEntryBase *settingsEntry ); %Docstring Add ``settingsEntry`` to the register. diff --git a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in index ed01941c58f..941f777099e 100644 --- a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in +++ b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in @@ -70,9 +70,7 @@ typedef QgsSettingsEntryEnumFlag QgsSettingsEn - - -class QgsSettingsRegistryCore +class QgsSettingsRegistryCore : QgsSettingsRegistry { %Docstring(signature="appended") :py:class:`QgsSettingsRegistryCore` is used for settings introspection and collects all @@ -93,17 +91,6 @@ Constructor for QgsSettingsRegistryCore. virtual ~QgsSettingsRegistryCore(); -<<<<<<< HEAD - const QgsSettingsEntryBase *getSettingsEntry( const QString &key ); -%Docstring -Returns the :py:class:`QgsSettingsEntry` with the given ``key`` or None if not found. -%End - - void addSettingsEntry( const QgsSettingsEntryBase *settingsEntry ); -%Docstring -Add ``settingsEntry`` to the register. -%End -======= const QgsSettingsEntryInteger settingsDigitizingStreamTolerance; const QgsSettingsEntryInteger settingsDigitizingLineWidth; @@ -177,7 +164,6 @@ Add ``settingsEntry`` to the register. const QgsSettingsEntryBool settingsDigitizingOffsetShowAdvanced; const QgsSettingsEntryInteger settingsDigitizingTracingMaxFeatureCount; ->>>>>>> 27bb50bc4d (Enum flag sip) }; From 952a77afe9ce60cd1e184e97ce8e61ed4b3e3e09 Mon Sep 17 00:00:00 2001 From: Damiano Lombardi Date: Mon, 26 Apr 2021 18:19:49 +0200 Subject: [PATCH 10/14] Renamed some methods of QgsSettingsRegistry --- .../settings/qgssettingsregistry.sip.in | 8 +++--- src/app/qgssettingstree.cpp | 2 +- src/core/network/qgsnewsfeedparser.h | 8 +++--- src/core/settings/qgssettingsregistry.cpp | 10 +++---- src/core/settings/qgssettingsregistry.h | 8 +++--- tests/src/core/testqgssettingsregistry.cpp | 28 +++++++++---------- tests/src/python/test_qgssettingsregistry.py | 6 ++-- 7 files changed, 35 insertions(+), 35 deletions(-) diff --git a/python/core/auto_generated/settings/qgssettingsregistry.sip.in b/python/core/auto_generated/settings/qgssettingsregistry.sip.in index 1ddb3d0d201..e0c9d33db99 100644 --- a/python/core/auto_generated/settings/qgssettingsregistry.sip.in +++ b/python/core/auto_generated/settings/qgssettingsregistry.sip.in @@ -31,24 +31,24 @@ Constructor for QgsSettingsRegistry. virtual ~QgsSettingsRegistry(); - QList getChildSettingsEntries() const; + QList settingEntries() const; %Docstring Returns the list of registered :py:class:`QgsSettingsEntryBase`. %End - const QgsSettingsEntryBase *getSettingsEntry( const QString &key, bool searchChildRegistries = true ) const; + const QgsSettingsEntryBase *settingsEntry( const QString &key, bool searchChildRegistries = true ) const; %Docstring Returns the :py:class:`QgsSettingsEntry` with the given ``key`` or None if not found. The ``searchChildRegistries`` parameter specifies if child registries should be included in the search %End - void appendRegistry( const QgsSettingsRegistry *settingsRegistry ); + void addSubRegistry( const QgsSettingsRegistry *settingsRegistry ); %Docstring Append a child ``settingsRegistry`` to the register. %End - QList getChildSettingsRegistries() const; + QList subRegistries() const; %Docstring Returns the list of registered child QgsSettingsRegistry. %End diff --git a/src/app/qgssettingstree.cpp b/src/app/qgssettingstree.cpp index 9c447417346..df6a9ba2421 100644 --- a/src/app/qgssettingstree.cpp +++ b/src/app/qgssettingstree.cpp @@ -331,7 +331,7 @@ QTreeWidgetItem *QgsSettingsTree::createItem( const QString &text, // If settings registered add description if ( !isGroup ) { - const QgsSettingsEntryBase *settingsEntry = QgsApplication::settingsRegistryCore()->getSettingsEntry( completeSettingsPath, true ); + const QgsSettingsEntryBase *settingsEntry = QgsApplication::settingsRegistryCore()->settingsEntry( completeSettingsPath, true ); if ( settingsEntry ) { item->setText( ColumnDescription, settingsEntry->description() ); diff --git a/src/core/network/qgsnewsfeedparser.h b/src/core/network/qgsnewsfeedparser.h index fb06c082430..a1d44444626 100644 --- a/src/core/network/qgsnewsfeedparser.h +++ b/src/core/network/qgsnewsfeedparser.h @@ -112,13 +112,13 @@ class CORE_EXPORT QgsNewsFeedParser : public QObject static QString keyForFeed( const QString &baseUrl ); //! Settings entry last fetch time - static const inline QgsSettingsEntryInteger settingsFeedLastFetchTime = QgsSettingsEntryInteger( QStringLiteral( "%/lastFetchTime" ), QgsSettings::Core, 0, QObject::tr( "Feed last fetch time" ), 0 ); + static const inline QgsSettingsEntryInteger settingsFeedLastFetchTime = QgsSettingsEntryInteger( QStringLiteral( "%1/lastFetchTime" ), QgsSettings::Core, 0, QObject::tr( "Feed last fetch time" ), 0 ); //! Settings entry feed language - static const inline QgsSettingsEntryString settingsFeedLanguage = QgsSettingsEntryString( QStringLiteral( "%/lang" ), QgsSettings::Core, QString(), QObject::tr( "Feed language" ) ); + static const inline QgsSettingsEntryString settingsFeedLanguage = QgsSettingsEntryString( QStringLiteral( "%1/lang" ), QgsSettings::Core, QString(), QObject::tr( "Feed language" ) ); //! Settings entry feed latitude - static const inline QgsSettingsEntryDouble settingsFeedLatitude = QgsSettingsEntryDouble( QStringLiteral( "%/latitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed latitude" ) ); + static const inline QgsSettingsEntryDouble settingsFeedLatitude = QgsSettingsEntryDouble( QStringLiteral( "%1/latitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed latitude" ) ); //! Settings entry feed longitude - static const inline QgsSettingsEntryDouble settingsFeedLongitude = QgsSettingsEntryDouble( QStringLiteral( "%/longitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed longitude" ) ); + static const inline QgsSettingsEntryDouble settingsFeedLongitude = QgsSettingsEntryDouble( QStringLiteral( "%1/longitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed longitude" ) ); public slots: diff --git a/src/core/settings/qgssettingsregistry.cpp b/src/core/settings/qgssettingsregistry.cpp index 7e7d810ae52..372e57731be 100644 --- a/src/core/settings/qgssettingsregistry.cpp +++ b/src/core/settings/qgssettingsregistry.cpp @@ -52,12 +52,12 @@ void QgsSettingsRegistry::addSettingsEntry( const QgsSettingsEntryBase *settings mSettingsEntriesMap.insert( settingsEntry->definitionKey(), settingsEntry ); } -QList QgsSettingsRegistry::getChildSettingsEntries() const +QList QgsSettingsRegistry::settingEntries() const { return mSettingsEntriesMap.values(); } -const QgsSettingsEntryBase *QgsSettingsRegistry::getSettingsEntry( const QString &key, bool searchChildRegistries ) const +const QgsSettingsEntryBase *QgsSettingsRegistry::settingsEntry( const QString &key, bool searchChildRegistries ) const { // Search in this registry const QMap settingsEntriesMap = mSettingsEntriesMap; @@ -72,7 +72,7 @@ const QgsSettingsEntryBase *QgsSettingsRegistry::getSettingsEntry( const QString { for ( const QgsSettingsRegistry *settingsRegistry : std::as_const( mSettingsRegistryChildList ) ) { - const QgsSettingsEntryBase *settingsEntry = settingsRegistry->getSettingsEntry( key, true ); + const QgsSettingsEntryBase *settingsEntry = settingsRegistry->settingsEntry( key, true ); if ( settingsEntry ) return settingsEntry; } @@ -81,7 +81,7 @@ const QgsSettingsEntryBase *QgsSettingsRegistry::getSettingsEntry( const QString return nullptr; } -void QgsSettingsRegistry::appendRegistry( const QgsSettingsRegistry *settingsRegistry ) +void QgsSettingsRegistry::addSubRegistry( const QgsSettingsRegistry *settingsRegistry ) { if ( !settingsRegistry ) { @@ -98,7 +98,7 @@ void QgsSettingsRegistry::appendRegistry( const QgsSettingsRegistry *settingsReg mSettingsRegistryChildList.append( settingsRegistry ); } -QList QgsSettingsRegistry::getChildSettingsRegistries() const +QList QgsSettingsRegistry::subRegistries() const { return mSettingsRegistryChildList; } diff --git a/src/core/settings/qgssettingsregistry.h b/src/core/settings/qgssettingsregistry.h index eb32b050235..17d0edc2db3 100644 --- a/src/core/settings/qgssettingsregistry.h +++ b/src/core/settings/qgssettingsregistry.h @@ -48,24 +48,24 @@ class CORE_EXPORT QgsSettingsRegistry /** * Returns the list of registered QgsSettingsEntryBase. */ - QList getChildSettingsEntries() const; + QList settingEntries() const; /** * Returns the QgsSettingsEntry with the given \a key or nullptr if not found. * * The \a searchChildRegistries parameter specifies if child registries should be included in the search */ - const QgsSettingsEntryBase *getSettingsEntry( const QString &key, bool searchChildRegistries = true ) const; + const QgsSettingsEntryBase *settingsEntry( const QString &key, bool searchChildRegistries = true ) const; /** * Append a child \a settingsRegistry to the register. */ - void appendRegistry( const QgsSettingsRegistry *settingsRegistry ); + void addSubRegistry( const QgsSettingsRegistry *settingsRegistry ); /** * Returns the list of registered child QgsSettingsRegistry. */ - QList getChildSettingsRegistries() const; + QList subRegistries() const; protected: diff --git a/tests/src/core/testqgssettingsregistry.cpp b/tests/src/core/testqgssettingsregistry.cpp index 34171cc50c4..a820ca7b2bb 100644 --- a/tests/src/core/testqgssettingsregistry.cpp +++ b/tests/src/core/testqgssettingsregistry.cpp @@ -61,9 +61,9 @@ void TestQgsSettingsRegistry::getSettingsEntries() settingsRegistry.addSettingsEntry( &settingsEntryBool ); settingsRegistry.addSettingsEntry( &settingsEntryInteger ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryBoolKey ), &settingsEntryBool ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryIntegerKey ), &settingsEntryInteger ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryInexisting ), nullptr ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryBoolKey ), &settingsEntryBool ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryIntegerKey ), &settingsEntryInteger ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryInexisting ), nullptr ); } void TestQgsSettingsRegistry::getSettingsEntriesWithDynamicKeys() @@ -82,13 +82,13 @@ void TestQgsSettingsRegistry::getSettingsEntriesWithDynamicKeys() settingsRegistry.addSettingsEntry( &settingsEntryInteger ); settingsRegistry.addSettingsEntry( &settingsEntryDouble ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryBoolKey ), &settingsEntryBool ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryBoolKey.replace( QStringLiteral( "%1" ), QStringLiteral( "1st" ) ) ), &settingsEntryBool ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryIntegerKey ), &settingsEntryInteger ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryIntegerKey.replace( QStringLiteral( "%1" ), QStringLiteral( "Second" ) ) ), &settingsEntryInteger ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryDoubleKey ), &settingsEntryDouble ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryDoubleKey.replace( QStringLiteral( "%1" ), QStringLiteral( "1st" ) ).replace( QStringLiteral( "%2" ), QStringLiteral( "2nd" ) ) ), &settingsEntryDouble ); - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryInexisting ), nullptr ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryBoolKey ), &settingsEntryBool ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryBoolKey.replace( QStringLiteral( "%1" ), QStringLiteral( "1st" ) ) ), &settingsEntryBool ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryIntegerKey ), &settingsEntryInteger ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryIntegerKey.replace( QStringLiteral( "%1" ), QStringLiteral( "Second" ) ) ), &settingsEntryInteger ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryDoubleKey ), &settingsEntryDouble ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryDoubleKey.replace( QStringLiteral( "%1" ), QStringLiteral( "1st" ) ).replace( QStringLiteral( "%2" ), QStringLiteral( "2nd" ) ) ), &settingsEntryDouble ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryInexisting ), nullptr ); } void TestQgsSettingsRegistry::childRegistry() @@ -103,14 +103,14 @@ void TestQgsSettingsRegistry::childRegistry() SettingsRegistryTest settingsRegistry; settingsRegistry.addSettingsEntry( &settingsEntryBool ); - settingsRegistry.appendRegistry( nullptr ); // should not crash - settingsRegistry.appendRegistry( &settingsRegistryChild ); + settingsRegistry.addSubRegistry( nullptr ); // should not crash + settingsRegistry.addSubRegistry( &settingsRegistryChild ); // Search only in parent - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryIntegerKey, false ), nullptr ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryIntegerKey, false ), nullptr ); // Search including child registries - QCOMPARE( settingsRegistry.getSettingsEntry( settingsEntryIntegerKey, true ), &settingsEntryInteger ); + QCOMPARE( settingsRegistry.settingsEntry( settingsEntryIntegerKey, true ), &settingsEntryInteger ); } QGSTEST_MAIN( TestQgsSettingsRegistry ) diff --git a/tests/src/python/test_qgssettingsregistry.py b/tests/src/python/test_qgssettingsregistry.py index 7db9adbcac5..79b6a1cb402 100644 --- a/tests/src/python/test_qgssettingsregistry.py +++ b/tests/src/python/test_qgssettingsregistry.py @@ -35,12 +35,12 @@ class PyQgsSettingsRegistry(unittest.TestCase): settingsRegistry.addSettingsEntry(settingsEntry) # check get settings entry - self.assertEqual(settingsRegistry.getSettingsEntry(settingsEntry.key(), False), settingsEntry) + self.assertEqual(settingsRegistry.settingsEntry(settingsEntry.key(), False), settingsEntry) # add registry to core registry - QgsApplication.settingsRegistryCore().appendRegistry(settingsRegistry) + QgsApplication.settingsRegistryCore().addSubRegistry(settingsRegistry) - self.assertEqual(QgsApplication.settingsRegistryCore().getSettingsEntry(settingsEntry.key(), True), settingsEntry) + self.assertEqual(QgsApplication.settingsRegistryCore().settingsEntry(settingsEntry.key(), True), settingsEntry) if __name__ == '__main__': From 929bf6c84ef6dbd5418b4139ab9872af66b08d68 Mon Sep 17 00:00:00 2001 From: Damiano Lombardi Date: Mon, 26 Apr 2021 20:25:27 +0200 Subject: [PATCH 11/14] Some forgotten QgsSettings/Entry replacements --- src/app/options/qgsoptions.cpp | 4 ++-- src/app/qgsmaptooloffsetcurve.cpp | 12 ++++++------ src/core/network/qgsnewsfeedparser.cpp | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/app/options/qgsoptions.cpp b/src/app/options/qgsoptions.cpp index 023316a9972..d9891a5364e 100644 --- a/src/app/options/qgsoptions.cpp +++ b/src/app/options/qgsoptions.cpp @@ -1162,7 +1162,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QListaddItem( tr( "Round" ), QgsGeometry::JoinStyleRound ); mOffsetJoinStyleComboBox->addItem( tr( "Miter" ), QgsGeometry::JoinStyleMiter ); mOffsetJoinStyleComboBox->addItem( tr( "Bevel" ), QgsGeometry::JoinStyleBevel ); - QgsGeometry::JoinStyle joinStyleSetting = mSettings->enumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsGeometry::JoinStyleRound ); + QgsGeometry::JoinStyle joinStyleSetting = QgsSettingsRegistryCore::settingsDigitizingOffsetJoinStyle.value(); mOffsetJoinStyleComboBox->setCurrentIndex( mOffsetJoinStyleComboBox->findData( joinStyleSetting ) ); mOffsetQuadSegSpinBox->setValue( QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.value() ); mOffsetQuadSegSpinBox->setClearValue( QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.defaultValue() ); @@ -1788,7 +1788,7 @@ void QgsOptions::saveOptions() QgsSettingsRegistryCore::settingsDigitizingDisableEnterAttributeValuesDialog.setValue( chkDisableAttributeValuesDlg->isChecked() ); QgsSettingsRegistryCore::settingsDigitizingValidateGeometries.setValue( mValidateGeometries->currentIndex() ); - mSettings->setEnumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), mOffsetJoinStyleComboBox->currentData().value() ); + QgsSettingsRegistryCore::settingsDigitizingOffsetJoinStyle.setValue( mOffsetJoinStyleComboBox->currentData().value() ); QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.setValue( mOffsetQuadSegSpinBox->value() ); QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.setValue( mCurveOffsetMiterLimitComboBox->value() ); diff --git a/src/app/qgsmaptooloffsetcurve.cpp b/src/app/qgsmaptooloffsetcurve.cpp index 6a7aaf7efff..1bdf1e8d579 100644 --- a/src/app/qgsmaptooloffsetcurve.cpp +++ b/src/app/qgsmaptooloffsetcurve.cpp @@ -619,10 +619,10 @@ void QgsMapToolOffsetCurve::updateGeometryAndRubberBand( double offset ) } QgsGeometry offsetGeom; - QgsGeometry::JoinStyle joinStyle = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsGeometry::JoinStyleRound ); + QgsGeometry::JoinStyle joinStyle = QgsSettingsRegistryCore::settingsDigitizingOffsetJoinStyle.value(); int quadSegments = QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.value(); double miterLimit = QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.value(); - QgsGeometry::EndCapStyle capStyle = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), QgsGeometry::CapRound ); + QgsGeometry::EndCapStyle capStyle = QgsSettingsRegistryCore::settingsDigitizingOffsetCapStyle.value(); if ( QgsWkbTypes::geometryType( mOriginalGeometry.wkbType() ) == QgsWkbTypes::LineGeometry ) @@ -670,10 +670,10 @@ QgsOffsetUserWidget::QgsOffsetUserWidget( QWidget *parent ) mCapStyleComboBox->addItem( tr( "Flat" ), QgsGeometry::CapFlat ); mCapStyleComboBox->addItem( tr( "Square" ), QgsGeometry::CapSquare ); - QgsGeometry::JoinStyle joinStyle = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), QgsGeometry::JoinStyleRound ); + QgsGeometry::JoinStyle joinStyle = QgsSettingsRegistryCore::settingsDigitizingOffsetJoinStyle.value(); int quadSegments = QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.value(); double miterLimit = QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.value(); - QgsGeometry::EndCapStyle capStyle = QgsSettings().enumValue( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), QgsGeometry::CapRound ); + QgsGeometry::EndCapStyle capStyle = QgsSettingsRegistryCore::settingsDigitizingOffsetCapStyle.value(); mJoinStyleComboBox->setCurrentIndex( mJoinStyleComboBox->findData( joinStyle ) ); mQuadrantSpinBox->setValue( quadSegments ); @@ -686,10 +686,10 @@ QgsOffsetUserWidget::QgsOffsetUserWidget( QWidget *parent ) mOffsetSpinBox->installEventFilter( this ); connect( mOffsetSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsOffsetUserWidget::offsetChanged ); - connect( mJoinStyleComboBox, static_cast < void ( QComboBox::* )( int ) > ( &QComboBox::currentIndexChanged ), this, [ = ] { QgsSettings().setEnumValue( QStringLiteral( "/qgis/digitizing/offset_join_style" ), static_cast< QgsGeometry::JoinStyle >( mJoinStyleComboBox->currentData().toInt() ) ); emit offsetConfigChanged(); } ); + connect( mJoinStyleComboBox, static_cast < void ( QComboBox::* )( int ) > ( &QComboBox::currentIndexChanged ), this, [ = ] { QgsSettingsRegistryCore::settingsDigitizingOffsetJoinStyle.setValue( static_cast< QgsGeometry::JoinStyle >( mJoinStyleComboBox->currentData().toInt() ) ); emit offsetConfigChanged(); } ); connect( mQuadrantSpinBox, static_cast < void ( QSpinBox::* )( int ) > ( &QSpinBox::valueChanged ), this, [ = ]( const int quadSegments ) { QgsSettingsRegistryCore::settingsDigitizingOffsetQuadSeg.setValue( quadSegments ); emit offsetConfigChanged(); } ); connect( mMiterLimitSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, [ = ]( double miterLimit ) { QgsSettingsRegistryCore::settingsDigitizingOffsetMiterLimit.setValue( miterLimit ); emit offsetConfigChanged(); } ); - connect( mCapStyleComboBox, static_cast < void ( QComboBox::* )( int ) > ( &QComboBox::currentIndexChanged ), this, [ = ] { QgsSettings().setEnumValue( QStringLiteral( "/qgis/digitizing/offset_cap_style" ), static_cast< QgsGeometry::EndCapStyle >( mCapStyleComboBox->currentData().toInt() ) ); emit offsetConfigChanged(); } ); + connect( mCapStyleComboBox, static_cast < void ( QComboBox::* )( int ) > ( &QComboBox::currentIndexChanged ), this, [ = ] { QgsSettingsRegistryCore::settingsDigitizingOffsetCapStyle.setValue( static_cast< QgsGeometry::EndCapStyle >( mCapStyleComboBox->currentData().toInt() ) ); emit offsetConfigChanged(); } ); bool showAdvanced = QgsSettingsRegistryCore::settingsDigitizingOffsetShowAdvanced.value(); mShowAdvancedButton->setChecked( showAdvanced ); diff --git a/src/core/network/qgsnewsfeedparser.cpp b/src/core/network/qgsnewsfeedparser.cpp index 183c0bc91aa..5c4d5429be7 100644 --- a/src/core/network/qgsnewsfeedparser.cpp +++ b/src/core/network/qgsnewsfeedparser.cpp @@ -47,7 +47,7 @@ QgsNewsFeedParser::QgsNewsFeedParser( const QUrl &feedUrl, const QString &authcf QString feedLanguage = settingsFeedLanguage.value( mSettingsKey ); if ( feedLanguage.isEmpty() ) { - feedLanguage = QgsSettings().value( QgsApplication::settingsLocaleUserLocale.key(), QStringLiteral( "en_US" ) ).toString().left( 2 ); + feedLanguage = QgsApplication::settingsLocaleUserLocale.value( QString(), true, QStringLiteral( "en" ) ); } if ( !feedLanguage.isEmpty() && feedLanguage != QLatin1String( "C" ) ) query.addQueryItem( QStringLiteral( "lang" ), feedLanguage ); From 68460231ce035a434da9488ad594023f785a107e Mon Sep 17 00:00:00 2001 From: Damiano Date: Tue, 27 Apr 2021 09:11:54 +0200 Subject: [PATCH 12/14] Fix TestQgsProcessing --- src/core/processing/qgsprocessingprovider.cpp | 2 -- tests/src/analysis/testqgsprocessing.cpp | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/core/processing/qgsprocessingprovider.cpp b/src/core/processing/qgsprocessingprovider.cpp index 9a47efe8a38..203f3842923 100644 --- a/src/core/processing/qgsprocessingprovider.cpp +++ b/src/core/processing/qgsprocessingprovider.cpp @@ -193,7 +193,6 @@ bool QgsProcessingProvider::isSupportedOutputValue( const QVariant &outputValue, QString QgsProcessingProvider::defaultVectorFileExtension( bool hasGeometry ) const { - QgsSettings settings; const QString userDefault = QgsProcessingUtils::defaultVectorExtension(); const QStringList supportedExtensions = supportedOutputVectorLayerExtensions(); @@ -216,7 +215,6 @@ QString QgsProcessingProvider::defaultVectorFileExtension( bool hasGeometry ) co QString QgsProcessingProvider::defaultRasterFileExtension() const { - QgsSettings settings; const QString userDefault = QgsProcessingUtils::defaultRasterExtension(); const QStringList supportedExtensions = supportedOutputRasterLayerExtensions(); diff --git a/tests/src/analysis/testqgsprocessing.cpp b/tests/src/analysis/testqgsprocessing.cpp index 0f688306fa6..dbbfb242837 100644 --- a/tests/src/analysis/testqgsprocessing.cpp +++ b/tests/src/analysis/testqgsprocessing.cpp @@ -11530,7 +11530,7 @@ void TestQgsProcessing::defaultExtensionsForProvider() // unless the user has set a default format, which IS supported by that provider QgsProcessing::settingsDefaultOutputVectorLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "tab" ) ) ); - QgsProcessing::settingsDefaultOutputRasterLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "sdat" ) ) ); + QgsProcessing::settingsDefaultOutputRasterLayerExt.setValue( QgsRasterFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "sdat" ) ) ); QCOMPARE( provider.defaultVectorFileExtension( true ), QStringLiteral( "tab" ) ); QCOMPARE( provider.defaultRasterFileExtension(), QStringLiteral( "sdat" ) ); @@ -11542,7 +11542,7 @@ void TestQgsProcessing::defaultExtensionsForProvider() // but if default is not supported by provider, we use a supported format QgsProcessing::settingsDefaultOutputVectorLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "gpkg" ) ) ); - QgsProcessing::settingsDefaultOutputRasterLayerExt.setValue( QgsVectorFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "ecw" ) ) ); + QgsProcessing::settingsDefaultOutputRasterLayerExt.setValue( QgsRasterFileWriter::supportedFormatExtensions().indexOf( QLatin1String( "ecw" ) ) ); QCOMPARE( provider.defaultVectorFileExtension( true ), QStringLiteral( "mif" ) ); QCOMPARE( provider.defaultRasterFileExtension(), QStringLiteral( "mig" ) ); } From 221d9f7f018731abb33376b58746025b381a18ef Mon Sep 17 00:00:00 2001 From: Damiano Date: Tue, 27 Apr 2021 14:15:56 +0200 Subject: [PATCH 13/14] Fix docstrings --- python/core/additions/qgssettingsentry.py | 37 +++++++++++------------ 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/python/core/additions/qgssettingsentry.py b/python/core/additions/qgssettingsentry.py index 7a9564cb979..a416c53624e 100644 --- a/python/core/additions/qgssettingsentry.py +++ b/python/core/additions/qgssettingsentry.py @@ -23,23 +23,20 @@ import qgis # required to get base class of enums class PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): - """ class QgsSettingsEntryEnum - ingroup core - An enum settings entry. - since QGIS 3.20 + """ class PyQgsSettingsEntryEnumFlag + ingroup core + An enum settings entry. + since QGIS 3.20 """ def __init__(self, key, pluginName, defaultValue, description=str()): """ Constructor for PyQgsSettingsEntryEnumFlag. - :param self: the QgsSettingsEntryEnum object - :param key: argument specifies the final part of the settings key. - :param pluginName: argument is inserted in the key after the section. - :param defaultValue: argument specifies the default value for the settings entry. - :param description: argument specifies a description for the settings entry. - - .. note:: This constructor should not be used. Use PyQgsSettingsEntryEnum - or PyQgsSettingsEntryFlag instead. + :param self: the PyQgsSettingsEntryEnumFlag object + :param key: argument specifies the final part of the settings key. + :param pluginName: argument is inserted in the key after the section. + :param defaultValue: argument specifies the default value for the settings entry. + :param description: argument specifies a description for the settings entry. """ defaultValueStr = str() @@ -58,10 +55,10 @@ class PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): def value(self, dynamicKeyPart=None, useDefaultValueOverride=False, defaultValueOverride=None): """ Get settings value. - :param self: the PyQgsSettingsEntryEnumFlag object - :param dynamicKeyPart: argument specifies the dynamic part of the settings key. - :param useDefaultValueOverride: argument specifies if defaultValueOverride should be used. - :param defaultValueOverride: argument if valid is used instead of the normal default value. + :param self: the PyQgsSettingsEntryEnumFlag object + :param dynamicKeyPart: argument specifies the dynamic part of the settings key. + :param useDefaultValueOverride: argument specifies if defaultValueOverride should be used. + :param defaultValueOverride: argument if valid is used instead of the normal default value. """ defaultValue = self.defaultValue() @@ -80,7 +77,7 @@ class PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): def defaultValue(self): """ Get settings default value. - :param self: the PyQgsSettingsEntryEnumFlag object + :param self: the PyQgsSettingsEntryEnumFlag object """ if self.__metaEnum is None or not self.__metaEnum.isValid(): @@ -103,8 +100,8 @@ class PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): def setValue(self, value, dynamicKeyPart=None): """ Set settings value. - :param self: the PyQgsSettingsEntryEnumFlag object - :param dynamicKeyPart: argument specifies the dynamic part of the settings key. + :param self: the PyQgsSettingsEntryEnumFlag object + :param dynamicKeyPart: argument specifies the dynamic part of the settings key. """ if self.__metaEnum is None or not self.__metaEnum.isValid(): @@ -125,7 +122,7 @@ class PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase): def settingsType(self): """ Get the settings entry type. - :param self: the QgsSettingsEntryEnumFlag object + :param self: the PyQgsSettingsEntryEnumFlag object """ return self.SettingsType.EnumFlag From 810af987d3f6baa4fa54feaba379783789ca76f0 Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 29 Apr 2021 11:18:55 +0200 Subject: [PATCH 14/14] Removed setting entries from the python api --- .../auto_generated/layout/qgslayout.sip.in | 1 - .../auto_generated/locator/qgslocator.sip.in | 3 - .../network/qgsnetworkaccessmanager.sip.in | 1 - .../network/qgsnewsfeedparser.sip.in | 4 - .../processing/qgsprocessing.sip.in | 4 - .../core/auto_generated/qgsapplication.sip.in | 5 - .../auto_generated/qgsgeometryoptions.sip.in | 1 - .../qgslocalizeddatapathregistry.sip.in | 1 - .../auto_generated/qgsmaprendererjob.sip.in | 1 - .../settings/qgssettingsregistrycore.sip.in | 133 ------------------ src/core/layout/qgslayout.h | 2 + src/core/locator/qgslocator.h | 2 + src/core/network/qgsnetworkaccessmanager.h | 2 + src/core/network/qgsnewsfeedparser.h | 2 + src/core/processing/qgsprocessing.h | 2 + src/core/qgsapplication.h | 2 + src/core/qgsgeometryoptions.h | 2 + src/core/qgslocalizeddatapathregistry.h | 2 + src/core/qgsmaprendererjob.h | 2 + src/core/settings/qgssettingsregistrycore.h | 2 + 20 files changed, 20 insertions(+), 154 deletions(-) diff --git a/python/core/auto_generated/layout/qgslayout.sip.in b/python/core/auto_generated/layout/qgslayout.sip.in index 7918a46f736..7b62530f4fd 100644 --- a/python/core/auto_generated/layout/qgslayout.sip.in +++ b/python/core/auto_generated/layout/qgslayout.sip.in @@ -614,7 +614,6 @@ should be canceled. .. versionadded:: 3.10 %End - const QgsSettingsEntryStringList settingsSearchPathForTemplates; public slots: diff --git a/python/core/auto_generated/locator/qgslocator.sip.in b/python/core/auto_generated/locator/qgslocator.sip.in index 2c6dfcace92..82b783a7032 100644 --- a/python/core/auto_generated/locator/qgslocator.sip.in +++ b/python/core/auto_generated/locator/qgslocator.sip.in @@ -141,9 +141,6 @@ This list is updated when preparing the search .. versionadded:: 3.16 %End - const QgsSettingsEntryBool settingsLocatorFilterEnabled; - const QgsSettingsEntryBool settingsLocatorFilterDefault; - const QgsSettingsEntryString settingsLocatorFilterPrefix; signals: diff --git a/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in b/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in index a1123e57be2..fbb9f402fab 100644 --- a/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in +++ b/python/core/auto_generated/network/qgsnetworkaccessmanager.sip.in @@ -343,7 +343,6 @@ Forwards an external browser login closure request to the authentication handler .. versionadded:: 3.20 %End - const QgsSettingsEntryInteger settingsNetworkTimeout; signals: diff --git a/python/core/auto_generated/network/qgsnewsfeedparser.sip.in b/python/core/auto_generated/network/qgsnewsfeedparser.sip.in index b6643c4629d..bbeb4d74c76 100644 --- a/python/core/auto_generated/network/qgsnewsfeedparser.sip.in +++ b/python/core/auto_generated/network/qgsnewsfeedparser.sip.in @@ -93,10 +93,6 @@ Returns the authentication configuration for the parser. Returns the settings key used for a feed with the given ``baseUrl``. %End - const QgsSettingsEntryInteger settingsFeedLastFetchTime; - const QgsSettingsEntryString settingsFeedLanguage; - const QgsSettingsEntryDouble settingsFeedLatitude; - const QgsSettingsEntryDouble settingsFeedLongitude; public slots: diff --git a/python/core/auto_generated/processing/qgsprocessing.sip.in b/python/core/auto_generated/processing/qgsprocessing.sip.in index c14aec99208..d2be28c5a58 100644 --- a/python/core/auto_generated/processing/qgsprocessing.sip.in +++ b/python/core/auto_generated/processing/qgsprocessing.sip.in @@ -53,10 +53,6 @@ Converts a source ``type`` to a string representation. static const QString TEMPORARY_OUTPUT; - const QgsSettingsEntryBool settingsPreferFilenameAsLayerName; - const QgsSettingsEntryString settingsTempPath; - const QgsSettingsEntryInteger settingsDefaultOutputVectorLayerExt; - const QgsSettingsEntryInteger settingsDefaultOutputRasterLayerExt; }; /************************************************************************ diff --git a/python/core/auto_generated/qgsapplication.sip.in b/python/core/auto_generated/qgsapplication.sip.in index ccc34f85ec2..ff4aff7309b 100644 --- a/python/core/auto_generated/qgsapplication.sip.in +++ b/python/core/auto_generated/qgsapplication.sip.in @@ -1003,11 +1003,6 @@ Emits the signal to collect all the strings of .qgs to be included in ts file .. versionadded:: 3.4 %End - const QgsSettingsEntryString settingsLocaleUserLocale; - const QgsSettingsEntryBool settingsLocaleOverrideFlag; - const QgsSettingsEntryString settingsLocaleGlobalLocale; - const QgsSettingsEntryBool settingsLocaleShowGroupSeparator; - const QgsSettingsEntryStringList settingsSearchPathsForSVG; %If (ANDROID) //dummy method to workaround sip generation issue diff --git a/python/core/auto_generated/qgsgeometryoptions.sip.in b/python/core/auto_generated/qgsgeometryoptions.sip.in index 28da763994c..b6a4a272623 100644 --- a/python/core/auto_generated/qgsgeometryoptions.sip.in +++ b/python/core/auto_generated/qgsgeometryoptions.sip.in @@ -118,7 +118,6 @@ Read the geometry options from ``node``. .. versionadded:: 3.4 %End - const QgsSettingsEntryString settingsGeometryValidationDefaultChecks; signals: diff --git a/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in b/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in index 92873da33fe..efbc6a3c7c1 100644 --- a/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in +++ b/python/core/auto_generated/qgslocalizeddatapathregistry.sip.in @@ -60,7 +60,6 @@ Since the paths are stored by order of preference, lower positions in the list t Unregisters a localized path %End - const QgsSettingsEntryStringList settingsLocalizedDataPaths; private: QgsLocalizedDataPathRegistry( const QgsLocalizedDataPathRegistry &other ); diff --git a/python/core/auto_generated/qgsmaprendererjob.sip.in b/python/core/auto_generated/qgsmaprendererjob.sip.in index 9fc86cd5643..16bde1efd28 100644 --- a/python/core/auto_generated/qgsmaprendererjob.sip.in +++ b/python/core/auto_generated/qgsmaprendererjob.sip.in @@ -157,7 +157,6 @@ Returns map settings with which this job was started. - const QgsSettingsEntryBool settingsLogCanvasRefreshEvent; signals: diff --git a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in index 941f777099e..08f490b8034 100644 --- a/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in +++ b/python/core/auto_generated/settings/qgssettingsregistrycore.sip.in @@ -5,66 +5,6 @@ * * * Do not edit manually ! Edit header and run scripts/sipify.pl again * ************************************************************************/ -class QgsSettingsEntryEnumFlag_settingsDigitizingOffsetCapStyle -{ -%TypeHeaderCode -#include "qgssettingsregistrycore.h" -#include "qgssettingsentry.h" -typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingOffsetCapStyle; -%End - public: - QgsSettingsEntryEnumFlag_settingsDigitizingOffsetCapStyle( const QString &key, QgsSettings::Section section, const QgsGeometry::EndCapStyle &defaultValue, const QString &description = QString() ); - QString key( const QString &dynamicKeyPart = QString() ) const; - QgsGeometry::EndCapStyle value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsGeometry::EndCapStyle &defaultValueOverride = QgsGeometry::EndCapStyle() ) const; -}; -class QgsSettingsEntryEnumFlag_settingsDigitizingOffsetJoinStyle -{ -%TypeHeaderCode -#include "qgssettingsregistrycore.h" -#include "qgssettingsentry.h" -typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingOffsetJoinStyle; -%End - public: - QgsSettingsEntryEnumFlag_settingsDigitizingOffsetJoinStyle( const QString &key, QgsSettings::Section section, const QgsGeometry::JoinStyle &defaultValue, const QString &description = QString() ); - QString key( const QString &dynamicKeyPart = QString() ) const; - QgsGeometry::JoinStyle value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsGeometry::JoinStyle &defaultValueOverride = QgsGeometry::JoinStyle() ) const; -}; -class QgsSettingsEntryEnumFlag_settingsDigitizingSearchRadiusVertexEditUnit -{ -%TypeHeaderCode -#include "qgssettingsregistrycore.h" -#include "qgssettingsentry.h" -typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingSearchRadiusVertexEditUnit; -%End - public: - QgsSettingsEntryEnumFlag_settingsDigitizingSearchRadiusVertexEditUnit( const QString &key, QgsSettings::Section section, const QgsTolerance::UnitType &defaultValue, const QString &description = QString() ); - QString key( const QString &dynamicKeyPart = QString() ) const; - QgsTolerance::UnitType value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsTolerance::UnitType &defaultValueOverride = QgsTolerance::UnitType() ) const; -}; -class QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnappingToleranceUnit -{ -%TypeHeaderCode -#include "qgssettingsregistrycore.h" -#include "qgssettingsentry.h" -typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnappingToleranceUnit; -%End - public: - QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnappingToleranceUnit( const QString &key, QgsSettings::Section section, const QgsTolerance::UnitType &defaultValue, const QString &description = QString() ); - QString key( const QString &dynamicKeyPart = QString() ) const; - QgsTolerance::UnitType value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsTolerance::UnitType &defaultValueOverride = QgsTolerance::UnitType() ) const; -}; -class QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType -{ -%TypeHeaderCode -#include "qgssettingsregistrycore.h" -#include "qgssettingsentry.h" -typedef QgsSettingsEntryEnumFlag QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType; -%End - public: - QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType( const QString &key, QgsSettings::Section section, const QgsSnappingConfig::SnappingTypes &defaultValue, const QString &description = QString() ); - QString key( const QString &dynamicKeyPart = QString() ) const; - QgsSnappingConfig::SnappingTypes value( const QString &dynamicKeyPart = QString(), bool useDefaultValueOverride = false, const QgsSnappingConfig::SnappingTypes &defaultValueOverride = QgsSnappingConfig::SnappingTypes() ) const; -}; @@ -91,79 +31,6 @@ Constructor for QgsSettingsRegistryCore. virtual ~QgsSettingsRegistryCore(); - const QgsSettingsEntryInteger settingsDigitizingStreamTolerance; - - const QgsSettingsEntryInteger settingsDigitizingLineWidth; - - const QgsSettingsEntryInteger settingsDigitizingLineColorRed; - - const QgsSettingsEntryInteger settingsDigitizingLineColorGreen; - - const QgsSettingsEntryInteger settingsDigitizingLineColorBlue; - - const QgsSettingsEntryInteger settingsDigitizingLineColorAlpha; - - const QgsSettingsEntryDouble settingsDigitizingLineColorAlphaScale; - - const QgsSettingsEntryInteger settingsDigitizingFillColorRed; - - const QgsSettingsEntryInteger settingsDigitizingFillColorGreen; - - const QgsSettingsEntryInteger settingsDigitizingFillColorBlue; - - const QgsSettingsEntryInteger settingsDigitizingFillColorAlpha; - - const QgsSettingsEntryBool settingsDigitizingLineGhost; - - const QgsSettingsEntryDouble settingsDigitizingDefaultZValue; - - const QgsSettingsEntryBool settingsDigitizingDefaultSnapEnabled; - - const QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnapType settingsDigitizingDefaultSnapType; - - const QgsSettingsEntryDouble settingsDigitizingDefaultSnappingTolerance; - - const QgsSettingsEntryEnumFlag_settingsDigitizingDefaultSnappingToleranceUnit settingsDigitizingDefaultSnappingToleranceUnit; - - const QgsSettingsEntryDouble settingsDigitizingSearchRadiusVertexEdit; - - const QgsSettingsEntryEnumFlag_settingsDigitizingSearchRadiusVertexEditUnit settingsDigitizingSearchRadiusVertexEditUnit; - - const QgsSettingsEntryColor settingsDigitizingSnapColor; - - const QgsSettingsEntryBool settingsDigitizingSnapTooltip; - - const QgsSettingsEntryBool settingsDigitizingSnapInvisibleFeature; - - const QgsSettingsEntryBool settingsDigitizingMarkerOnlyForSelected; - - const QgsSettingsEntryString settingsDigitizingMarkerStyle; - - const QgsSettingsEntryDouble settingsDigitizingMarkerSizeMm; - - const QgsSettingsEntryBool settingsDigitizingReuseLastValues; - - const QgsSettingsEntryBool settingsDigitizingDisableEnterAttributeValuesDialog; - - const QgsSettingsEntryInteger settingsDigitizingValidateGeometries; - - const QgsSettingsEntryEnumFlag_settingsDigitizingOffsetJoinStyle settingsDigitizingOffsetJoinStyle; - - const QgsSettingsEntryInteger settingsDigitizingOffsetQuadSeg; - - const QgsSettingsEntryDouble settingsDigitizingOffsetMiterLimit; - - const QgsSettingsEntryBool settingsDigitizingConvertToCurve; - - const QgsSettingsEntryDouble settingsDigitizingConvertToCurveAngleTolerance; - - const QgsSettingsEntryDouble settingsDigitizingConvertToCurveDistanceTolerance; - - const QgsSettingsEntryEnumFlag_settingsDigitizingOffsetCapStyle settingsDigitizingOffsetCapStyle; - - const QgsSettingsEntryBool settingsDigitizingOffsetShowAdvanced; - - const QgsSettingsEntryInteger settingsDigitizingTracingMaxFeatureCount; }; diff --git a/src/core/layout/qgslayout.h b/src/core/layout/qgslayout.h index d045d0a3488..cd3483e2634 100644 --- a/src/core/layout/qgslayout.h +++ b/src/core/layout/qgslayout.h @@ -658,8 +658,10 @@ class CORE_EXPORT QgsLayout : public QGraphicsScene, public QgsExpressionContext */ bool accept( QgsStyleEntityVisitorInterface *visitor ) const; +#ifndef SIP_RUN //! Settings entry search path for templates static const inline QgsSettingsEntryStringList settingsSearchPathForTemplates = QgsSettingsEntryStringList( QStringLiteral( "Layout/searchPathsForTemplates" ), QgsSettings::Core, QStringList(), QObject::tr( "Search path for templates" ) ); +#endif public slots: diff --git a/src/core/locator/qgslocator.h b/src/core/locator/qgslocator.h index b5eb3629bfc..2102bf63d9c 100644 --- a/src/core/locator/qgslocator.h +++ b/src/core/locator/qgslocator.h @@ -153,12 +153,14 @@ class CORE_EXPORT QgsLocator : public QObject */ QStringList completionList() const {return mAutocompletionList;} +#ifndef SIP_RUN //! Settings entry locator filter enabled static const inline QgsSettingsEntryBool settingsLocatorFilterEnabled = QgsSettingsEntryBool( QStringLiteral( "locator_filters/enabled_%1" ), QgsSettings::Gui, true, "Locator filter enabled" ); //! Settings entry locator filter default value static const inline QgsSettingsEntryBool settingsLocatorFilterDefault = QgsSettingsEntryBool( QStringLiteral( "locator_filters/default_%1" ), QgsSettings::Gui, false, "Locator filter default value" ); //! Settings entry locator filter prefix static const inline QgsSettingsEntryString settingsLocatorFilterPrefix = QgsSettingsEntryString( QStringLiteral( "locator_filters/prefix_%1" ), QgsSettings::Gui, QString(), "Locator filter prefix" ); +#endif signals: diff --git a/src/core/network/qgsnetworkaccessmanager.h b/src/core/network/qgsnetworkaccessmanager.h index a4298c386f2..c867b3450ef 100644 --- a/src/core/network/qgsnetworkaccessmanager.h +++ b/src/core/network/qgsnetworkaccessmanager.h @@ -530,8 +530,10 @@ class CORE_EXPORT QgsNetworkAccessManager : public QNetworkAccessManager */ void requestAuthCloseBrowser() const; +#ifndef SIP_RUN //! Settings entry network timeout static const inline QgsSettingsEntryInteger settingsNetworkTimeout = QgsSettingsEntryInteger( QStringLiteral( "/qgis/networkAndProxy/networkTimeout" ), QgsSettings::NoSection, 60000, QObject::tr( "Network timeout" ) ); +#endif signals: diff --git a/src/core/network/qgsnewsfeedparser.h b/src/core/network/qgsnewsfeedparser.h index a1d44444626..8faea33e767 100644 --- a/src/core/network/qgsnewsfeedparser.h +++ b/src/core/network/qgsnewsfeedparser.h @@ -111,6 +111,7 @@ class CORE_EXPORT QgsNewsFeedParser : public QObject */ static QString keyForFeed( const QString &baseUrl ); +#ifndef SIP_RUN //! Settings entry last fetch time static const inline QgsSettingsEntryInteger settingsFeedLastFetchTime = QgsSettingsEntryInteger( QStringLiteral( "%1/lastFetchTime" ), QgsSettings::Core, 0, QObject::tr( "Feed last fetch time" ), 0 ); //! Settings entry feed language @@ -119,6 +120,7 @@ class CORE_EXPORT QgsNewsFeedParser : public QObject static const inline QgsSettingsEntryDouble settingsFeedLatitude = QgsSettingsEntryDouble( QStringLiteral( "%1/latitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed latitude" ) ); //! Settings entry feed longitude static const inline QgsSettingsEntryDouble settingsFeedLongitude = QgsSettingsEntryDouble( QStringLiteral( "%1/longitude" ), QgsSettings::Core, 0.0, QObject::tr( "Feed longitude" ) ); +#endif public slots: diff --git a/src/core/processing/qgsprocessing.h b/src/core/processing/qgsprocessing.h index 53eee28fdcf..c43a9e115a9 100644 --- a/src/core/processing/qgsprocessing.h +++ b/src/core/processing/qgsprocessing.h @@ -99,6 +99,7 @@ class CORE_EXPORT QgsProcessing */ static const QString TEMPORARY_OUTPUT; +#ifndef SIP_RUN //! Settings entry prefer filename as layer name static const inline QgsSettingsEntryBool settingsPreferFilenameAsLayerName = QgsSettingsEntryBool( QStringLiteral( "Processing/Configuration/PREFER_FILENAME_AS_LAYER_NAME" ), QgsSettings::NoSection, true, QObject::tr( "Prefer filename as layer name" ) ); //! Settings entry temp path @@ -107,6 +108,7 @@ class CORE_EXPORT QgsProcessing static const inline QgsSettingsEntryInteger settingsDefaultOutputVectorLayerExt = QgsSettingsEntryInteger( QStringLiteral( "Processing/Configuration/DefaultOutputVectorLayerExt" ), QgsSettings::NoSection, -1 ); //! Settings entry default output raster layer ext static const inline QgsSettingsEntryInteger settingsDefaultOutputRasterLayerExt = QgsSettingsEntryInteger( QStringLiteral( "Processing/Configuration/DefaultOutputRasterLayerExt" ), QgsSettings::NoSection, -1 ); +#endif }; #endif // QGSPROCESSING_H diff --git a/src/core/qgsapplication.h b/src/core/qgsapplication.h index 44e75ed7c8a..a2849cc8ead 100644 --- a/src/core/qgsapplication.h +++ b/src/core/qgsapplication.h @@ -944,6 +944,7 @@ class CORE_EXPORT QgsApplication : public QApplication */ void collectTranslatableObjects( QgsTranslationContext *translationContext ); +#ifndef SIP_RUN //! Settings entry locale user locale static const inline QgsSettingsEntryString settingsLocaleUserLocale = QgsSettingsEntryString( QStringLiteral( "locale/userLocale" ), QgsSettings::NoSection, QString() ); //! Settings entry locale override flag @@ -954,6 +955,7 @@ class CORE_EXPORT QgsApplication : public QApplication static const inline QgsSettingsEntryBool settingsLocaleShowGroupSeparator = QgsSettingsEntryBool( QStringLiteral( "locale/showGroupSeparator" ), QgsSettings::NoSection, false ); //! Settings entry search path for SVG static const inline QgsSettingsEntryStringList settingsSearchPathsForSVG = QgsSettingsEntryStringList( QStringLiteral( "svg/searchPathsForSVG" ), QgsSettings::NoSection, QStringList() ); +#endif #ifdef SIP_RUN SIP_IF_FEATURE( ANDROID ) diff --git a/src/core/qgsgeometryoptions.h b/src/core/qgsgeometryoptions.h index 8fae89986ef..5b446318fcc 100644 --- a/src/core/qgsgeometryoptions.h +++ b/src/core/qgsgeometryoptions.h @@ -132,8 +132,10 @@ class CORE_EXPORT QgsGeometryOptions : public QObject */ void readXml( const QDomNode &node ); +#ifndef SIP_RUN //! Settings entry search path for templates static const inline QgsSettingsEntryString settingsGeometryValidationDefaultChecks = QgsSettingsEntryString( QStringLiteral( "geometry_validation/default_checks" ), QgsSettings::NoSection, QString() ); +#endif signals: diff --git a/src/core/qgslocalizeddatapathregistry.h b/src/core/qgslocalizeddatapathregistry.h index b1e222c5efe..1521ecdba78 100644 --- a/src/core/qgslocalizeddatapathregistry.h +++ b/src/core/qgslocalizeddatapathregistry.h @@ -66,8 +66,10 @@ class CORE_EXPORT QgsLocalizedDataPathRegistry //! Unregisters a localized path void unregisterPath( const QString &path ); +#ifndef SIP_RUN //! Settings entry localized data paths static const inline QgsSettingsEntryStringList settingsLocalizedDataPaths = QgsSettingsEntryStringList( QStringLiteral( "/qgis/localized_data_paths" ), QgsSettings::NoSection, QStringList() ); +#endif private: #ifdef SIP_RUN diff --git a/src/core/qgsmaprendererjob.h b/src/core/qgsmaprendererjob.h index cc382738a86..cad83a37e6b 100644 --- a/src/core/qgsmaprendererjob.h +++ b/src/core/qgsmaprendererjob.h @@ -344,8 +344,10 @@ class CORE_EXPORT QgsMapRendererJob : public QObject */ static const QString LABEL_PREVIEW_CACHE_ID SIP_SKIP; +#ifndef SIP_RUN //! Settings entry log canvas refresh event static const inline QgsSettingsEntryBool settingsLogCanvasRefreshEvent = QgsSettingsEntryBool( QStringLiteral( "Map/logCanvasRefreshEvent" ), QgsSettings::NoSection, false ); +#endif signals: diff --git a/src/core/settings/qgssettingsregistrycore.h b/src/core/settings/qgssettingsregistrycore.h index 1d68d9cccc9..6b48f7156b8 100644 --- a/src/core/settings/qgssettingsregistrycore.h +++ b/src/core/settings/qgssettingsregistrycore.h @@ -48,6 +48,7 @@ class CORE_EXPORT QgsSettingsRegistryCore : public QgsSettingsRegistry */ virtual ~QgsSettingsRegistryCore(); +#ifndef SIP_RUN //! Settings entry digitizing stream tolerance static const inline QgsSettingsEntryInteger settingsDigitizingStreamTolerance = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/stream_tolerance" ), QgsSettings::NoSection, 2 ); @@ -158,6 +159,7 @@ class CORE_EXPORT QgsSettingsRegistryCore : public QgsSettingsRegistry //! Settings entry digitizing tracing max feature count static const inline QgsSettingsEntryInteger settingsDigitizingTracingMaxFeatureCount = QgsSettingsEntryInteger( QStringLiteral( "/qgis/digitizing/tracing_max_feature_count" ), QgsSettings::NoSection, 10000 ); +#endif };