summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qsettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/io/qsettings.cpp')
-rw-r--r--src/corelib/io/qsettings.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp
index 1d6f2dc912..34f07096eb 100644
--- a/src/corelib/io/qsettings.cpp
+++ b/src/corelib/io/qsettings.cpp
@@ -3254,6 +3254,9 @@ bool QSettings::event(QEvent *event)
#endif
/*!
+ \fn QSettings::value(const QString &key) const
+ \fn QSettings::value(const QString &key, const QVariant &defaultValue) const
+
Returns the value for setting \a key. If the setting doesn't
exist, returns \a defaultValue.
@@ -3271,14 +3274,29 @@ bool QSettings::event(QEvent *event)
\sa setValue(), contains(), remove()
*/
+QVariant QSettings::value(const QString &key) const
+{
+ Q_D(const QSettings);
+ return d->value(key, nullptr);
+}
+
QVariant QSettings::value(const QString &key, const QVariant &defaultValue) const
{
Q_D(const QSettings);
+ return d->value(key, &defaultValue);
+}
+
+QVariant QSettingsPrivate::value(const QString &key, const QVariant *defaultValue) const
+{
if (key.isEmpty()) {
qWarning("QSettings::value: Empty key passed");
return QVariant();
}
- return d->get(d->actualKey(key)).value_or(defaultValue);
+ if (std::optional r = get(actualKey(key)))
+ return std::move(*r);
+ if (defaultValue)
+ return *defaultValue;
+ return QVariant();
}
/*!