aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/settings
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2013-10-27 10:51:10 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-29 15:33:00 +0100
commitd2acb7e3c1c05149101dd9860575799423e3cb0f (patch)
treed07da4e7180d798aef8f4d822b863afddaf0992d /src/imports/settings
parent8ac2c403a7deec9d192ad674040933c3a87a6971 (diff)
QQmlSettings: fix loading of initial values
When the initial value of a QML Settings var property is invalid ie. it has no initial value set, it must be loaded from QSettings as is without testing QVariant conversion (that would fail when the conversion target type is "invalid"). Change-Id: If002d52251e3f2d6373dcc305b439de61c6b8c79 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'src/imports/settings')
-rw-r--r--src/imports/settings/qqmlsettings.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/imports/settings/qqmlsettings.cpp b/src/imports/settings/qqmlsettings.cpp
index ffd24983e7..011a39f20c 100644
--- a/src/imports/settings/qqmlsettings.cpp
+++ b/src/imports/settings/qqmlsettings.cpp
@@ -297,9 +297,8 @@ void QQmlSettingsPrivate::load()
const QVariant previousValue = property.read(q);
const QVariant currentValue = instance()->value(property.name(), previousValue);
- if (!currentValue.isNull()
- && currentValue.canConvert(previousValue.type())
- && previousValue != currentValue) {
+ if (!currentValue.isNull() && (!previousValue.isValid()
+ || (currentValue.canConvert(previousValue.type()) && previousValue != currentValue))) {
property.write(q, currentValue);
#ifdef SETTINGS_DEBUG
qDebug() << "QQmlSettings: load" << property.name() << "setting:" << currentValue << "default:" << previousValue;