aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/settingsaccessor.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2018-01-18 15:11:28 +0100
committerTobias Hunger <tobias.hunger@qt.io>2018-02-13 12:21:40 +0000
commit3167c98e6edaff494da019e12942fca72aed3717 (patch)
treec41f56213eea0f1c3b63580a22896524ecf27b70 /src/libs/utils/settingsaccessor.cpp
parent23bb71710171a10f36c2b4e47b7049926a007698 (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.cpp31
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());
}
// --------------------------------------------------------------------