23 #include "qgis_core.h" 83 const QString &application = QString(), QObject *parent =
nullptr );
98 QgsSettings( QSettings::Scope scope,
const QString &organization,
99 const QString &application = QString(), QObject *parent =
nullptr );
113 QgsSettings( QSettings::Format format, QSettings::Scope scope,
const QString &organization,
114 const QString &application = QString(), QObject *parent =
nullptr );
135 QgsSettings(
const QString &fileName, QSettings::Format format, QObject *parent =
nullptr );
165 QString group()
const;
168 QStringList allKeys()
const;
170 QStringList childKeys()
const;
172 QStringList childGroups()
const;
174 QStringList globalChildGroups()
const;
176 static QString globalSettingsPath();
178 static bool setGlobalSettingsPath(
const QString &path );
180 int beginReadArray(
const QString &prefix );
187 void beginWriteArray(
const QString &prefix,
int size = -1 );
195 void setArrayIndex(
int i );
210 QVariant value(
const QString &key,
const QVariant &defaultValue = QVariant(),
211 Section section = NoSection )
const;
213 SIP_PYOBJECT value(
const QString &key,
const QVariant &defaultValue = QVariant(),
214 SIP_PYOBJECT type = 0,
217 typedef PyObject *( *pyqt5_from_qvariant_by_type )( QVariant &value, PyObject *type );
221 Py_BEGIN_ALLOW_THREADS
222 value = sipCpp->value( *a0, *a1, a3 );
225 pyqt5_from_qvariant_by_type f = ( pyqt5_from_qvariant_by_type ) sipImportSymbol(
"pyqt5_from_qvariant_by_type" );
226 sipRes = f( value, a2 );
246 const Section section = NoSection )
248 QMetaEnum metaEnum = QMetaEnum::fromType<T>();
249 Q_ASSERT( metaEnum.isValid() );
250 if ( !metaEnum.isValid() )
252 QgsDebugMsg( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
258 if ( metaEnum.isValid() )
261 QByteArray ba = value( key, metaEnum.valueToKey( static_cast<int>( defaultValue ) ), section ).toString().toUtf8();
262 const char *vs = ba.data();
263 v =
static_cast<T
>( metaEnum.keyToValue( vs, &ok ) );
271 v =
static_cast<T
>( value( key, static_cast<int>( defaultValue ), section ).toInt( &ok ) );
272 if ( metaEnum.isValid() )
274 if ( !ok || !metaEnum.valueToKey( static_cast<int>( v ) ) )
282 setEnumValue( key, v, section );
298 const Section section = NoSection )
300 QMetaEnum metaEnum = QMetaEnum::fromType<T>();
301 Q_ASSERT( metaEnum.isValid() );
302 if ( metaEnum.isValid() )
304 setValue( key, metaEnum.valueToKey( static_cast<int>( value ) ), section );
308 QgsDebugMsg( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
324 const Section section = NoSection )
326 QMetaEnum metaEnum = QMetaEnum::fromType<T>();
327 Q_ASSERT( metaEnum.isValid() );
328 if ( !metaEnum.isValid() )
330 QgsDebugMsg( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
336 if ( metaEnum.isValid() )
339 QByteArray ba = value( key, metaEnum.valueToKeys( defaultValue ) ).toString().toUtf8();
340 const char *vs = ba.data();
341 v =
static_cast<T
>( metaEnum.keysToValue( vs, &ok ) );
348 v = T( value( key, static_cast<int>( defaultValue ), section ).toInt( &ok ) );
349 if ( metaEnum.isValid() )
351 if ( !ok || metaEnum.valueToKeys( static_cast<int>( v ) ).isEmpty() )
359 setFlagValue( key, v, section );
376 const Section section = NoSection )
378 QMetaEnum metaEnum = QMetaEnum::fromType<T>();
379 Q_ASSERT( metaEnum.isValid() );
380 if ( metaEnum.isValid() )
382 setValue( key, metaEnum.valueToKeys( value ), section );
386 QgsDebugMsg( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
397 QString fileName()
const;
415 QString sanitizeKey(
const QString &key )
const;
416 QSettings *mUserSettings =
nullptr;
417 QSettings *mGlobalSettings =
nullptr;
418 bool mUsingGlobalArray =
false;
423 #endif // QGSSETTINGS_H
This class is a composition of two QSettings instances:
void setFlagValue(const QString &key, const T &value, const Section section=NoSection)
Set the value of a setting based on a flaf.
T flagValue(const QString &key, const T &defaultValue, const Section section=NoSection)
Returns the setting value for a setting based on a flag.
Section
Sections for namespaced settings.
void setEnumValue(const QString &key, const T &value, const Section section=NoSection)
Set the value of a setting based on an enum.
T enumValue(const QString &key, const T &defaultValue, const Section section=NoSection)
Returns the setting value for a setting based on an enum.