29using namespace Qt::StringLiterals;
91 explicit QgsSettings(
const QString &organization,
const QString &application = QString(), QObject *parent =
nullptr );
107 QgsSettings( QSettings::Scope scope,
const QString &organization,
const QString &application = QString(), QObject *parent =
nullptr );
123 QgsSettings( QSettings::Format format, QSettings::Scope scope,
const QString &organization,
const QString &application = QString(), QObject *parent =
nullptr );
145 QgsSettings(
const QString &fileName, QSettings::Format format, QObject *parent =
nullptr );
175 QString group()
const;
178 QStringList allKeys()
const;
180 QStringList childKeys()
const;
184 QStringList globalChildGroups()
const;
186 static QString globalSettingsPath();
188 static bool setGlobalSettingsPath(
const QString &path );
190 int beginReadArray(
const QString &prefix );
197 void beginWriteArray(
const QString &prefix,
int size = -1 );
205 void setArrayIndex(
int i );
227 QVariant value(
const QString &key,
const QVariant &defaultValue = QVariant(), Section section = NoSection )
const;
230 SIP_PYOBJECT value(
const QString &key,
const QVariant &defaultValue = QVariant(),
231 SIP_PYOBJECT type = 0,
234 typedef PyObject *( *pyqt_from_qvariant_by_type )( QVariant &value, PyObject *type );
238 Py_BEGIN_ALLOW_THREADS
239 value = sipCpp->value( *a0, *a1, a3 );
242 pyqt_from_qvariant_by_type f = ( pyqt_from_qvariant_by_type ) sipImportSymbol( SIP_PYQT_FROM_QVARIANT_BY_TYPE );
243 sipRes = f( value, a2 );
265 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
266 Q_ASSERT( metaEnum.isValid() );
267 if ( !metaEnum.isValid() )
269 QgsDebugError( u
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration."_s );
275 if ( metaEnum.isValid() )
278 QByteArray ba =
value( key, metaEnum.valueToKey(
static_cast<const int>( defaultValue ) ), section ).toString().toUtf8();
279 const char *vs = ba.data();
280 v =
static_cast<T
>( metaEnum.keyToValue( vs, &ok ) );
288 v =
static_cast<T
>(
value( key,
static_cast<const int>( defaultValue ), section ).toInt( &ok ) );
289 if ( metaEnum.isValid() )
291 if ( !ok || !metaEnum.valueToKey(
static_cast<int>( v ) ) )
315 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
316 Q_ASSERT( metaEnum.isValid() );
317 if ( metaEnum.isValid() )
319 setValue( key, metaEnum.valueToKey(
static_cast<const int>(
value ) ), section );
323 QgsDebugError( u
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration."_s );
339 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
340 Q_ASSERT( metaEnum.isValid() );
341 if ( !metaEnum.isValid() )
343 QgsDebugError( u
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration."_s );
349 if ( metaEnum.isValid() )
352 QByteArray ba =
value( key, metaEnum.valueToKeys(
static_cast< const int >( defaultValue ) ) ).toString().toUtf8();
353 const char *vs = ba.data();
354 v =
static_cast<T
>( metaEnum.keysToValue( vs, &ok ) );
359 const int intValue =
value( key,
static_cast<const int>( defaultValue ), section ).toInt( &ok );
360 if ( metaEnum.isValid() )
366 const QByteArray keys = metaEnum.valueToKeys( intValue );
367 const int intValueCheck = metaEnum.keysToValue( keys );
368 if ( intValue != intValueCheck )
401 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
402 Q_ASSERT( metaEnum.isValid() );
403 if ( metaEnum.isValid() )
405 setValue( key, metaEnum.valueToKeys(
static_cast< const int >(
value ) ), section );
409 QgsDebugError( u
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration."_s );
420 QString fileName()
const;
470 static
void releaseFlush()
SIP_SKIP;
489 QString sanitizeKey( const QString &key ) const;
490 std::unique_ptr<QSettings> mUserSettings;
491 std::unique_ptr<QSettings> mGlobalSettings;
492 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