diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2018-01-18 15:11:28 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2018-02-13 12:21:40 +0000 |
commit | 3167c98e6edaff494da019e12942fca72aed3717 (patch) | |
tree | c41f56213eea0f1c3b63580a22896524ecf27b70 /src/libs/utils/settingsaccessor.cpp | |
parent | 23bb71710171a10f36c2b4e47b7049926a007698 (diff) |
SettingsAccessor: Use optional for return value of BackUpStrategy::backupName
Change-Id: I70aacd5804b10ee51c81c3e3d877f7c142d618b4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/libs/utils/settingsaccessor.cpp')
-rw-r--r-- | src/libs/utils/settingsaccessor.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/libs/utils/settingsaccessor.cpp b/src/libs/utils/settingsaccessor.cpp index 53c1ab319b..353b61d318 100644 --- a/src/libs/utils/settingsaccessor.cpp +++ b/src/libs/utils/settingsaccessor.cpp @@ -302,12 +302,14 @@ int BackUpStrategy::compare(const BasicSettingsAccessor::RestoreData &data1, return 0; } -QString BackUpStrategy::backupName(const QVariantMap &oldData, const FileName &path, - const QVariantMap &data) const +Utils::optional<Utils::FileName> +BackUpStrategy::backupName(const QVariantMap &oldData, const FileName &path, const QVariantMap &data) const { if (oldData == data) - return path.toString(); - return path.toString() + ".bak"; + return Utils::nullopt; + FileName backup = path; + backup.appendString(".bak"); + return backup; } int VersionedBackUpStrategy::compare(const BasicSettingsAccessor::RestoreData &data1, @@ -326,18 +328,21 @@ int VersionedBackUpStrategy::compare(const BasicSettingsAccessor::RestoreData &d return -1; } -QString VersionedBackUpStrategy::backupName(const QVariantMap &oldData, const FileName &path, const QVariantMap &data) const +Utils::optional<Utils::FileName> +VersionedBackUpStrategy::backupName(const QVariantMap &oldData, const FileName &path, const QVariantMap &data) const { Q_UNUSED(oldData); - QString backupName = path.toString(); + FileName backupName = path; const QByteArray oldEnvironmentId = settingsIdFromMap(data); + const int oldVersion = versionFromMap(data); if (!oldEnvironmentId.isEmpty() && oldEnvironmentId != id()) - backupName += '.' + QString::fromLatin1(oldEnvironmentId).mid(1, 7); - - const int oldVersion = versionFromMap(data); + backupName.appendString('.' + QString::fromLatin1(oldEnvironmentId).mid(1, 7)); if (oldVersion != currentVersion()) - backupName += '.' + QString::number(oldVersion); + backupName.appendString('.' + QString::number(oldVersion)); + + if (backupName == path) + return Utils::nullopt; return backupName; } @@ -416,9 +421,9 @@ void BackingUpSettingsAccessor::backupFile(const FileName &path, const QVariantM // Do we need to do a backup? const QString origName = path.toString(); - QString backupFileName = m_strategy->backupName(oldSettings.data, path, data); - if (backupFileName != origName) - QFile::copy(origName, backupFileName); + optional<FileName> backupFileName = m_strategy->backupName(oldSettings.data, path, data); + if (backupFileName) + QFile::copy(origName, backupFileName.value().toString()); } // -------------------------------------------------------------------- |