aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/editorconfiguration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/editorconfiguration.cpp')
-rw-r--r--src/plugins/projectexplorer/editorconfiguration.cpp56
1 files changed, 33 insertions, 23 deletions
diff --git a/src/plugins/projectexplorer/editorconfiguration.cpp b/src/plugins/projectexplorer/editorconfiguration.cpp
index 0555deb7a6..286e8cf201 100644
--- a/src/plugins/projectexplorer/editorconfiguration.cpp
+++ b/src/plugins/projectexplorer/editorconfiguration.cpp
@@ -180,33 +180,38 @@ QMap<Utils::Id, ICodeStylePreferences *> EditorConfiguration::codeStyles() const
return d->m_languageCodeStylePreferences;
}
-QVariantMap EditorConfiguration::toMap() const
+static void toMapWithPrefix(QVariantMap *map, const QVariantMap &source)
{
- QVariantMap map;
- map.insert(kUseGlobal, d->m_useGlobal);
- map.insert(kCodec, d->m_textCodec->name());
+ for (auto it = source.constBegin(), end = source.constEnd(); it != end; ++it)
+ map->insert(kPrefix + it.key(), it.value());
+}
- map.insert(kCodeStyleCount, d->m_languageCodeStylePreferences.count());
+QVariantMap EditorConfiguration::toMap() const
+{
+ QVariantMap map = {
+ {kUseGlobal, d->m_useGlobal},
+ {kCodec, d->m_textCodec->name()},
+ {kCodeStyleCount, d->m_languageCodeStylePreferences.count()}
+ };
int i = 0;
for (auto itCodeStyle = d->m_languageCodeStylePreferences.cbegin(),
end = d->m_languageCodeStylePreferences.cend();
itCodeStyle != end; ++itCodeStyle) {
- QVariantMap settingsIdMap;
- settingsIdMap.insert(QLatin1String("language"), itCodeStyle.key().toSetting());
- QVariantMap value;
- itCodeStyle.value()->toMap(QString(), &value);
- settingsIdMap.insert(QLatin1String("value"), value);
+ const QVariantMap settingsIdMap = {
+ {"language", itCodeStyle.key().toSetting()},
+ {"value", itCodeStyle.value()->toMap()}
+ };
map.insert(kCodeStylePrefix + QString::number(i), settingsIdMap);
i++;
}
- d->m_defaultCodeStyle->tabSettings().toMap(kPrefix, &map);
- d->m_typingSettings.toMap(kPrefix, &map);
- d->m_storageSettings.toMap(kPrefix, &map);
- d->m_behaviorSettings.toMap(kPrefix, &map);
- d->m_extraEncodingSettings.toMap(kPrefix, &map);
- d->m_marginSettings.toMap(kPrefix, &map);
+ toMapWithPrefix(&map, d->m_defaultCodeStyle->tabSettings().toMap());
+ toMapWithPrefix(&map, d->m_typingSettings.toMap());
+ toMapWithPrefix(&map, d->m_storageSettings.toMap());
+ toMapWithPrefix(&map, d->m_behaviorSettings.toMap());
+ toMapWithPrefix(&map, d->m_extraEncodingSettings.toMap());
+ toMapWithPrefix(&map, d->m_marginSettings.toMap());
return map;
}
@@ -229,15 +234,20 @@ void EditorConfiguration::fromMap(const QVariantMap &map)
QVariantMap value = settingsIdMap.value(QLatin1String("value")).toMap();
ICodeStylePreferences *preferences = d->m_languageCodeStylePreferences.value(languageId);
if (preferences)
- preferences->fromMap(QString(), value);
+ preferences->fromMap(value);
}
- d->m_defaultCodeStyle->fromMap(kPrefix, map);
- d->m_typingSettings.fromMap(kPrefix, map);
- d->m_storageSettings.fromMap(kPrefix, map);
- d->m_behaviorSettings.fromMap(kPrefix, map);
- d->m_extraEncodingSettings.fromMap(kPrefix, map);
- d->m_marginSettings.fromMap(kPrefix, map);
+ QVariantMap submap;
+ for (auto it = map.constBegin(), end = map.constEnd(); it != end; ++it) {
+ if (it.key().startsWith(kPrefix))
+ submap.insert(it.key().mid(kPrefix.size()), it.value());
+ }
+ d->m_defaultCodeStyle->fromMap(submap);
+ d->m_typingSettings.fromMap(submap);
+ d->m_storageSettings.fromMap(submap);
+ d->m_behaviorSettings.fromMap(submap);
+ d->m_extraEncodingSettings.fromMap(submap);
+ d->m_marginSettings.fromMap(submap);
setUseGlobalSettings(map.value(kUseGlobal, d->m_useGlobal).toBool());
}