diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2013-10-27 10:51:10 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-29 15:33:00 +0100 |
commit | d2acb7e3c1c05149101dd9860575799423e3cb0f (patch) | |
tree | d07da4e7180d798aef8f4d822b863afddaf0992d /src/imports/settings | |
parent | 8ac2c403a7deec9d192ad674040933c3a87a6971 (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.cpp | 5 |
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; |