29using namespace Qt::StringLiterals;
93 const QString &application = QString(), QObject *parent =
nullptr );
109 QgsSettings( QSettings::Scope scope,
const QString &organization,
110 const QString &application = QString(), QObject *parent =
nullptr );
126 QgsSettings( QSettings::Format format, QSettings::Scope scope,
const QString &organization,
127 const QString &application = QString(), QObject *parent =
nullptr );
149 QgsSettings(
const QString &fileName, QSettings::Format format, QObject *parent =
nullptr );
179 QString group()
const;
182 QStringList allKeys()
const;
184 QStringList childKeys()
const;
188 QStringList globalChildGroups()
const;
190 static QString globalSettingsPath();
192 static bool setGlobalSettingsPath(
const QString &path );
194 int beginReadArray(
const QString &prefix );
201 void beginWriteArray(
const QString &prefix,
int size = -1 );
209 void setArrayIndex(
int i );
231 QVariant value(
const QString &key,
const QVariant &defaultValue = QVariant(),
232 Section section = NoSection )
const;
234 SIP_PYOBJECT value(
const QString &key,
const QVariant &defaultValue = QVariant(),
235 SIP_PYOBJECT type = 0,
238 typedef PyObject *( *pyqt_from_qvariant_by_type )( QVariant &value, PyObject *type );
242 Py_BEGIN_ALLOW_THREADS
243 value = sipCpp->value( *a0, *a1, a3 );
246 pyqt_from_qvariant_by_type f = ( pyqt_from_qvariant_by_type ) sipImportSymbol( SIP_PYQT_FROM_QVARIANT_BY_TYPE );
247 sipRes = f( value, a2 );
270 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
271 Q_ASSERT( metaEnum.isValid() );
272 if ( !metaEnum.isValid() )
274 QgsDebugError( u
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration."_s );
280 if ( metaEnum.isValid() )
283 QByteArray ba =
value( key, metaEnum.valueToKey(
static_cast<const int>( defaultValue ) ), section ).toString().toUtf8();
284 const char *vs = ba.data();
285 v =
static_cast<T
>( metaEnum.keyToValue( vs, &ok ) );
293 v =
static_cast<T
>(
value( key,
static_cast<const int>( defaultValue ), section ).toInt( &ok ) );
294 if ( metaEnum.isValid() )
296 if ( !ok || !metaEnum.valueToKey(
static_cast<int>( v ) ) )
322 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
323 Q_ASSERT( metaEnum.isValid() );
324 if ( metaEnum.isValid() )
326 setValue( key, metaEnum.valueToKey(
static_cast<const int>(
value ) ), section );
330 QgsDebugError( u
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration."_s );
348 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
349 Q_ASSERT( metaEnum.isValid() );
350 if ( !metaEnum.isValid() )
352 QgsDebugError( u
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration."_s );
358 if ( metaEnum.isValid() )
361 QByteArray ba =
value( key, metaEnum.valueToKeys(
static_cast< const int >( defaultValue ) ) ).toString().toUtf8();
362 const char *vs = ba.data();
363 v =
static_cast<T
>( metaEnum.keysToValue( vs, &ok ) );
368 const int intValue =
value( key,
static_cast<const int>( defaultValue ), section ).toInt( &ok );
369 if ( metaEnum.isValid() )
375 const QByteArray keys = metaEnum.valueToKeys( intValue );
376 const int intValueCheck = metaEnum.keysToValue( keys );
377 if ( intValue != intValueCheck )
412 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
413 Q_ASSERT( metaEnum.isValid() );
414 if ( metaEnum.isValid() )
416 setValue( key, metaEnum.valueToKeys(
static_cast< const int >(
value ) ), section );
420 QgsDebugError( u
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration."_s );
431 QString fileName()
const;
481 static
void releaseFlush()
SIP_SKIP;
500 QString sanitizeKey( const QString &key ) const;
501 std::unique_ptr<QSettings> mUserSettings;
502 std::unique_ptr<QSettings> mGlobalSettings;
503 bool mUsingGlobalArray = false;
SettingsOrigin
The setting origin describes where a setting is stored.
A helper class for access to either a temporary QgsSettings object or the thread local object.
Stores settings for use within QGIS.
T flagValue(const QString &key, const T &defaultValue, const Section section=NoSection)
Returns the setting value for a setting based on a flag.
void setFlagValue(const QString &key, const T &value, const Section section=NoSection)
Set the value of a setting based on a flag.
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key.
void setEnumValue(const QString &key, const T &value, const Section section=NoSection)
Set the value of a setting based on an enum.
QgsSettings(const QString &organization, const QString &application=QString(), QObject *parent=nullptr)
Constructs a QgsSettings object for accessing settings of the application called application from the...
Section
Sections for namespaced settings.
@ Gps
GPS section, since QGIS 3.22.
void setValue(const QString &key, const QVariant &value, QgsSettings::Section section=QgsSettings::NoSection)
Sets the value of setting key to value.
T enumValue(const QString &key, const T &defaultValue, const Section section=NoSection)
Returns the setting value for a setting based on an enum.
#define QgsDebugError(str)
QgsSettings * sQgsSettingsThreadSettings