From 031666c67059b698e9ebbf6e9d5520edca57ca31 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 3 Mar 2014 16:58:28 +0100 Subject: [PATCH] Rewrite SettingsAccessor::settingsFiles() This no longer has the default name first, but that does not matter since we check all files anyway. Change-Id: Ib3505d2cafa57e86290237e74dd1f89374da4509 Reviewed-by: Daniel Teske --- .../projectexplorer/settingsaccessor.cpp | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/plugins/projectexplorer/settingsaccessor.cpp b/src/plugins/projectexplorer/settingsaccessor.cpp index 309ea17f6f7..e9742de5db6 100644 --- a/src/plugins/projectexplorer/settingsaccessor.cpp +++ b/src/plugins/projectexplorer/settingsaccessor.cpp @@ -776,24 +776,28 @@ bool SettingsAccessor::addVersionUpgrader(VersionUpgrader *upgrader) return true; } -/* Will always return the default name first */ +/* Will always return the default name first (if applicable) */ QList SettingsAccessor::settingsFiles(const QString &suffix) const { - const QString defaultName = defaultFileName(suffix); - QDir projectDir = QDir(project()->projectDirectory().toString()); - QList result; - if (QFileInfo(defaultName).exists()) - result << Utils::FileName::fromString(defaultName); - QFileInfoList fiList = projectDir.entryInfoList( - QStringList(QFileInfo(defaultName).fileName() + QLatin1String("*")), QDir::Files); + const Utils::FileName baseName = project()->projectFilePath(); + QFileInfo fi = baseName.toFileInfo(); + QDir dir = QDir(fi.absolutePath()); + QString filter = fi.fileName() + suffix + QLatin1String("*"); - foreach (const QFileInfo &fi, fiList) { + QFileInfoList list = dir.entryInfoList(QStringList() << filter, QDir::Files); + + foreach (const QFileInfo &fi, list) { const Utils::FileName path = Utils::FileName::fromString(fi.absoluteFilePath()); - if (!result.contains(path)) - result.append(path); + if (!result.contains(path)) { + if (path.endsWith(suffix)) + result.prepend(path); + else + result.append(path); + } } + return result; }