90 const QString &application = QString(), QObject *parent =
nullptr );
106 QgsSettings( QSettings::Scope scope,
const QString &organization,
107 const QString &application = QString(), QObject *parent =
nullptr );
123 QgsSettings( QSettings::Format format, QSettings::Scope scope,
const QString &organization,
124 const QString &application = QString(), QObject *parent =
nullptr );
146 QgsSettings(
const QString &fileName, QSettings::Format format, QObject *parent =
nullptr );
176 QString group()
const;
179 QStringList allKeys()
const;
181 QStringList childKeys()
const;
185 QStringList globalChildGroups()
const;
187 static QString globalSettingsPath();
189 static bool setGlobalSettingsPath(
const QString &path );
191 int beginReadArray(
const QString &prefix );
198 void beginWriteArray(
const QString &prefix,
int size = -1 );
206 void setArrayIndex(
int i );
228 QVariant value(
const QString &key,
const QVariant &defaultValue = QVariant(),
229 Section section = NoSection )
const;
231 SIP_PYOBJECT value(
const QString &key,
const QVariant &defaultValue = QVariant(),
232 SIP_PYOBJECT type = 0,
235 typedef PyObject *( *pyqt_from_qvariant_by_type )( QVariant &value, PyObject *type );
239 Py_BEGIN_ALLOW_THREADS
240 value = sipCpp->value( *a0, *a1, a3 );
243 pyqt_from_qvariant_by_type f = ( pyqt_from_qvariant_by_type ) sipImportSymbol( SIP_PYQT_FROM_QVARIANT_BY_TYPE );
244 sipRes = f( value, a2 );
265 const Section section = NoSection )
267 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
268 Q_ASSERT( metaEnum.isValid() );
269 if ( !metaEnum.isValid() )
271 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
277 if ( metaEnum.isValid() )
280 QByteArray ba = value( key, metaEnum.valueToKey(
static_cast<const int>( defaultValue ) ), section ).toString().toUtf8();
281 const char *vs = ba.data();
282 v =
static_cast<T
>( metaEnum.keyToValue( vs, &ok ) );
290 v =
static_cast<T
>( value( key,
static_cast<const int>( defaultValue ), section ).toInt( &ok ) );
291 if ( metaEnum.isValid() )
293 if ( !ok || !metaEnum.valueToKey(
static_cast<int>( v ) ) )
301 setEnumValue( key, v, section );
317 const Section section = NoSection )
319 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
320 Q_ASSERT( metaEnum.isValid() );
321 if ( metaEnum.isValid() )
323 setValue( key, metaEnum.valueToKey(
static_cast<const int>( value ) ), section );
327 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
343 const Section section = NoSection )
345 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
346 Q_ASSERT( metaEnum.isValid() );
347 if ( !metaEnum.isValid() )
349 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
355 if ( metaEnum.isValid() )
358 QByteArray ba = value( key, metaEnum.valueToKeys(
static_cast< const int >( defaultValue ) ) ).toString().toUtf8();
359 const char *vs = ba.data();
360 v =
static_cast<T
>( metaEnum.keysToValue( vs, &ok ) );
365 const int intValue = value( key,
static_cast<const int>( defaultValue ), section ).toInt( &ok );
366 if ( metaEnum.isValid() )
372 const QByteArray keys = metaEnum.valueToKeys( intValue );
373 const int intValueCheck = metaEnum.keysToValue( keys );
374 if ( intValue != intValueCheck )
385 setFlagValue( key, v );
407 const Section section = NoSection )
409 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
410 Q_ASSERT( metaEnum.isValid() );
411 if ( metaEnum.isValid() )
413 setValue( key, metaEnum.valueToKeys(
static_cast< const int >( value ) ), section );
417 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
428 QString fileName()
const;
478 static
void releaseFlush()
SIP_SKIP;
497 QString sanitizeKey( const QString &key ) const;
498 std::unique_ptr<QSettings> mUserSettings;
499 std::unique_ptr<QSettings> mGlobalSettings;
500 bool mUsingGlobalArray = false;