diff --git a/python/core/qgssettings.sip b/python/core/qgssettings.sip index a5c99410dea..02233fb883c 100644 --- a/python/core/qgssettings.sip +++ b/python/core/qgssettings.sip @@ -58,8 +58,11 @@ typedef PyObject *(*pyqt5_from_qvariant_by_type)(QVariant &value, PyObject *type Gui, Server, Plugins, + Auth, + App, + Providers, Misc - }; + }; /** Construct a QgsSettings object for accessing settings of the application * called application from the organization called organization, and with parent parent. diff --git a/src/core/qgssettings.cpp b/src/core/qgssettings.cpp index b008b785e44..7419f22ff49 100644 --- a/src/core/qgssettings.cpp +++ b/src/core/qgssettings.cpp @@ -206,6 +206,15 @@ QString QgsSettings::prefixedKey( const QString &key, const Section section ) co case Section::Misc : prefix = "misc"; break; + case Section::Auth : + prefix = "auth"; + break; + case Section::App : + prefix = "app"; + break; + case Section::Providers : + prefix = "providers"; + break; case Section::NoSection: default: return sanitizeKey( key ); diff --git a/src/core/qgssettings.h b/src/core/qgssettings.h index 5f4b663aa23..98db25051ec 100644 --- a/src/core/qgssettings.h +++ b/src/core/qgssettings.h @@ -44,6 +44,7 @@ * - Server * - Plugins * - Misc + * - Auth * * @note added in QGIS 3 */ @@ -60,6 +61,9 @@ class CORE_EXPORT QgsSettings : public QObject Gui, Server, Plugins, + Auth, + App, + Providers, Misc }; diff --git a/tests/src/python/test_qgssettings.py b/tests/src/python/test_qgssettings.py index 2a2b474c5c1..e90a8fc8174 100644 --- a/tests/src/python/test_qgssettings.py +++ b/tests/src/python/test_qgssettings.py @@ -171,6 +171,18 @@ class TestQgsSettings(unittest.TestCase): self.settings.setValue('key1', 'misc1', section=QgsSettings.Misc) self.settings.setValue('key2', 'misc2', section=QgsSettings.Misc) + self.settings.setValue('key1', 'auth1', section=QgsSettings.Auth) + self.settings.setValue('key2', 'auth2', section=QgsSettings.Auth) + + self.settings.setValue('key1', 'app1', section=QgsSettings.App) + self.settings.setValue('key2', 'app2', section=QgsSettings.App) + + self.settings.setValue('key1', 'provider1', section=QgsSettings.Providers) + self.settings.setValue('key2', 'provider2', section=QgsSettings.Providers) + + self.settings.setValue('key1', 'auth1', section=QgsSettings.Auth) + self.settings.setValue('key2', 'auth2', section=QgsSettings.Auth) + # Test that the values are namespaced self.assertEqual(self.settings.value('core/key1'), 'core1') self.assertEqual(self.settings.value('core/key2'), 'core2') @@ -203,6 +215,15 @@ class TestQgsSettings(unittest.TestCase): self.assertEqual(self.settings.value('key1', None, section=QgsSettings.Misc), 'misc1') self.assertEqual(self.settings.value('key2', None, section=QgsSettings.Misc), 'misc2') + self.assertEqual(self.settings.value('key1', None, section=QgsSettings.Auth), 'auth1') + self.assertEqual(self.settings.value('key2', None, section=QgsSettings.Auth), 'auth2') + + self.assertEqual(self.settings.value('key1', None, section=QgsSettings.App), 'app1') + self.assertEqual(self.settings.value('key2', None, section=QgsSettings.App), 'app2') + + self.assertEqual(self.settings.value('key1', None, section=QgsSettings.Providers), 'provider1') + self.assertEqual(self.settings.value('key2', None, section=QgsSettings.Providers), 'provider2') + # Test default values on Section getter self.assertEqual(self.settings.value('key_not_exist', 'misc_not_exist', section=QgsSettings.Misc), 'misc_not_exist')