forked from qt-creator/qt-creator
Fix saving of xml files
Do not save XML config files (profiles.xml, toolchains.xml, etc.) if the file has not changed. Change-Id: I5f0dea374b33a05e7c428f4031d53c83d92de595 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
@@ -120,9 +120,11 @@ QString CodeStylePool::settingsDir() const
|
||||
return customCodeStylesPath().append(suffix);
|
||||
}
|
||||
|
||||
QString CodeStylePool::settingsPath(const QString &id) const
|
||||
Utils::FileName CodeStylePool::settingsPath(const QString &id) const
|
||||
{
|
||||
return settingsDir() + QLatin1Char('/') + id + QLatin1String(".xml");
|
||||
Utils::FileName path = Utils::FileName::fromString(settingsDir());
|
||||
path.appendPath(id + QLatin1String(".xml"));
|
||||
return path;
|
||||
}
|
||||
|
||||
QList<ICodeStylePreferences *> CodeStylePool::codeStyles() const
|
||||
@@ -200,7 +202,7 @@ void CodeStylePool::removeCodeStyle(ICodeStylePreferences *codeStyle)
|
||||
d->m_idToCodeStyle.remove(codeStyle->id());
|
||||
|
||||
QDir dir(settingsDir());
|
||||
dir.remove(QFileInfo(settingsPath(codeStyle->id())).fileName());
|
||||
dir.remove(settingsPath(codeStyle->id()).toFileInfo().fileName());
|
||||
|
||||
delete codeStyle;
|
||||
}
|
||||
@@ -218,11 +220,11 @@ void CodeStylePool::loadCustomCodeStyles()
|
||||
const QString codeStyleFile = codeStyleFiles.at(i);
|
||||
// filter out styles which id is the same as one of built-in styles
|
||||
if (!d->m_idToCodeStyle.contains(QFileInfo(codeStyleFile).completeBaseName()))
|
||||
loadCodeStyle(dir.absoluteFilePath(codeStyleFile));
|
||||
loadCodeStyle(Utils::FileName::fromString(dir.absoluteFilePath(codeStyleFile)));
|
||||
}
|
||||
}
|
||||
|
||||
ICodeStylePreferences *CodeStylePool::importCodeStyle(const QString &fileName)
|
||||
ICodeStylePreferences *CodeStylePool::importCodeStyle(const Utils::FileName &fileName)
|
||||
{
|
||||
TextEditor::ICodeStylePreferences *codeStyle = loadCodeStyle(fileName);
|
||||
if (codeStyle)
|
||||
@@ -230,14 +232,14 @@ ICodeStylePreferences *CodeStylePool::importCodeStyle(const QString &fileName)
|
||||
return codeStyle;
|
||||
}
|
||||
|
||||
ICodeStylePreferences *CodeStylePool::loadCodeStyle(const QString &fileName)
|
||||
ICodeStylePreferences *CodeStylePool::loadCodeStyle(const Utils::FileName &fileName)
|
||||
{
|
||||
TextEditor::ICodeStylePreferences *codeStyle = 0;
|
||||
Utils::PersistentSettingsReader reader;
|
||||
reader.load(Utils::FileName::fromString(fileName));
|
||||
reader.load(fileName);
|
||||
QVariantMap m = reader.restoreValues();
|
||||
if (m.contains(QLatin1String(codeStyleDataKey))) {
|
||||
const QString id = QFileInfo(fileName).completeBaseName();
|
||||
const QString id = fileName.toFileInfo().completeBaseName();
|
||||
const QString displayName = reader.restoreValue(QLatin1String(displayNameKey)).toString();
|
||||
const QVariantMap map = reader.restoreValue(QLatin1String(codeStyleDataKey)).toMap();
|
||||
if (d->m_factory) {
|
||||
@@ -280,14 +282,13 @@ void CodeStylePool::saveCodeStyle(ICodeStylePreferences *codeStyle) const
|
||||
exportCodeStyle(settingsPath(codeStyle->id()), codeStyle);
|
||||
}
|
||||
|
||||
void CodeStylePool::exportCodeStyle(const QString &fileName, ICodeStylePreferences *codeStyle) const
|
||||
void CodeStylePool::exportCodeStyle(const Utils::FileName &fileName, ICodeStylePreferences *codeStyle) const
|
||||
{
|
||||
QVariantMap map;
|
||||
codeStyle->toMap(QString::null, &map);
|
||||
Utils::PersistentSettingsWriter writer;
|
||||
Utils::PersistentSettingsWriter writer(fileName, QLatin1String(codeStyleDocKey));
|
||||
writer.saveValue(QLatin1String(displayNameKey), codeStyle->displayName());
|
||||
writer.saveValue(QLatin1String(codeStyleDataKey), map);
|
||||
writer.save(Utils::FileName::fromString(fileName), QLatin1String(codeStyleDocKey), 0);
|
||||
writer.save(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user