From d2acb7e3c1c05149101dd9860575799423e3cb0f Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sun, 27 Oct 2013 10:51:10 +0100 Subject: 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 --- src/imports/settings/qqmlsettings.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/imports') 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; -- cgit v1.2.3