diff --git a/src/apps/marble-kde/marble_part.cpp b/src/apps/marble-kde/marble_part.cpp --- a/src/apps/marble-kde/marble_part.cpp +++ b/src/apps/marble-kde/marble_part.cpp @@ -1438,7 +1438,7 @@ w_timeSettings->setObjectName( "time_page" ); ui_timeSettings.setupUi( w_timeSettings ); m_configDialog->addPage( w_timeSettings, i18n( "Date & Time" ), "clock" ); - + // Sync page QWidget *w_cloudSyncSettings = new QWidget( 0 ); @@ -1649,6 +1649,10 @@ QHash hash; + QHash __; + __.insert(QStringLiteral("kconfig"), QVariant(true)); + hash.insert( QStringLiteral("__"), __ ); + foreach ( const QString& key, group.keyList() ) { hash.insert( key, group.readEntry( key ) ); } diff --git a/src/lib/marble/AbstractFloatItem.cpp b/src/lib/marble/AbstractFloatItem.cpp --- a/src/lib/marble/AbstractFloatItem.cpp +++ b/src/lib/marble/AbstractFloatItem.cpp @@ -73,14 +73,15 @@ QHash AbstractFloatItem::settings() const { QHash updated = RenderPlugin::settings(); - updated.insert(QStringLiteral("position"), position()); + updated.insert(QStringLiteral("position"), QVariant(position())); return updated; } void AbstractFloatItem::setSettings(const QHash &settings) { - if (settings.value(QStringLiteral("position")).type() == QVariant::String) { - // work around KConfig turning QPointFs into QStrings + if (settings.value(QStringLiteral("__")).toHash() + .value(QStringLiteral("kconfig"), QVariant(false)).toBool()) { + // work around for KConfig const QStringList coordinates = settings.value(QStringLiteral("position")).toString().split(QLatin1Char(',')); setPosition( QPointF( coordinates.at( 0 ).toFloat(), coordinates.at( 1 ).toFloat() ) ); }