forked from qt-creator/qt-creator
Utils: Collapse the two SettingsAccessor constructor hierarchies
Change-Id: I7b659c9e3c66700cfc92f9cfbd9df0535a1ca655 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -223,14 +223,8 @@ std::optional<FilePath> BackUpStrategy::backupName(const QVariantMap &oldData,
|
||||
|
||||
BackingUpSettingsAccessor::BackingUpSettingsAccessor(const QString &docType,
|
||||
const QString &applicationDisplayName) :
|
||||
BackingUpSettingsAccessor(std::make_unique<BackUpStrategy>(), docType, applicationDisplayName)
|
||||
{ }
|
||||
|
||||
BackingUpSettingsAccessor::BackingUpSettingsAccessor(std::unique_ptr<BackUpStrategy> &&strategy,
|
||||
const QString &docType,
|
||||
const QString &applicationDisplayName) :
|
||||
SettingsAccessor(docType, applicationDisplayName),
|
||||
m_strategy(std::move(strategy))
|
||||
m_strategy(std::make_unique<BackUpStrategy>())
|
||||
{ }
|
||||
|
||||
SettingsAccessor::RestoreData
|
||||
@@ -272,6 +266,11 @@ std::optional<SettingsAccessor::Issue> BackingUpSettingsAccessor::writeData(cons
|
||||
return SettingsAccessor::writeData(path, data, parent);
|
||||
}
|
||||
|
||||
void BackingUpSettingsAccessor::setStrategy(std::unique_ptr<BackUpStrategy> &&strategy)
|
||||
{
|
||||
m_strategy = std::move(strategy);
|
||||
}
|
||||
|
||||
FilePaths BackingUpSettingsAccessor::readFileCandidates(const FilePath &path) const
|
||||
{
|
||||
FilePaths result = filteredUnique(m_strategy->readFileCandidates(path));
|
||||
@@ -405,15 +404,10 @@ QVariantMap VersionUpgrader::renameKeys(const QList<Change> &changes, QVariantMa
|
||||
*/
|
||||
UpgradingSettingsAccessor::UpgradingSettingsAccessor(const QString &docType,
|
||||
const QString &applicationDisplayName) :
|
||||
UpgradingSettingsAccessor(std::make_unique<VersionedBackUpStrategy>(this), docType,
|
||||
applicationDisplayName)
|
||||
{ }
|
||||
|
||||
UpgradingSettingsAccessor::UpgradingSettingsAccessor(std::unique_ptr<BackUpStrategy> &&strategy,
|
||||
const QString &docType,
|
||||
const QString &applicationDisplayName) :
|
||||
BackingUpSettingsAccessor(std::move(strategy), docType, applicationDisplayName)
|
||||
{ }
|
||||
BackingUpSettingsAccessor(docType, applicationDisplayName)
|
||||
{
|
||||
setStrategy(std::make_unique<VersionedBackUpStrategy>(this));
|
||||
}
|
||||
|
||||
int UpgradingSettingsAccessor::currentVersion() const
|
||||
{
|
||||
@@ -568,10 +562,9 @@ UpgradingSettingsAccessor::validateVersionRange(const RestoreData &data) const
|
||||
* MergingSettingsAccessor allows to merge secondary settings into the main settings.
|
||||
* This is useful to e.g. handle .shared files together with .user files.
|
||||
*/
|
||||
MergingSettingsAccessor::MergingSettingsAccessor(std::unique_ptr<BackUpStrategy> &&strategy,
|
||||
const QString &docType,
|
||||
MergingSettingsAccessor::MergingSettingsAccessor(const QString &docType,
|
||||
const QString &applicationDisplayName) :
|
||||
UpgradingSettingsAccessor(std::move(strategy), docType, applicationDisplayName)
|
||||
UpgradingSettingsAccessor(docType, applicationDisplayName)
|
||||
{ }
|
||||
|
||||
SettingsAccessor::RestoreData MergingSettingsAccessor::readData(const FilePath &path,
|
||||
|
||||
@@ -147,8 +147,6 @@ class QTCREATOR_UTILS_EXPORT BackingUpSettingsAccessor : public SettingsAccessor
|
||||
{
|
||||
public:
|
||||
BackingUpSettingsAccessor(const QString &docType, const QString &applicationDisplayName);
|
||||
BackingUpSettingsAccessor(std::unique_ptr<BackUpStrategy> &&strategy, const QString &docType,
|
||||
const QString &applicationDisplayName);
|
||||
|
||||
RestoreData readData(const FilePath &path, QWidget *parent) const override;
|
||||
std::optional<Issue> writeData(const FilePath &path,
|
||||
@@ -156,6 +154,7 @@ public:
|
||||
QWidget *parent) const override;
|
||||
|
||||
BackUpStrategy *strategy() const { return m_strategy.get(); }
|
||||
void setStrategy(std::unique_ptr<BackUpStrategy> &&strategy);
|
||||
|
||||
private:
|
||||
FilePaths readFileCandidates(const FilePath &path) const;
|
||||
@@ -218,8 +217,6 @@ class QTCREATOR_UTILS_EXPORT UpgradingSettingsAccessor : public BackingUpSetting
|
||||
{
|
||||
public:
|
||||
UpgradingSettingsAccessor(const QString &docType, const QString &applicationDisplayName);
|
||||
UpgradingSettingsAccessor(std::unique_ptr<BackUpStrategy> &&strategy, const QString &docType,
|
||||
const QString &appDisplayName);
|
||||
|
||||
int currentVersion() const;
|
||||
int firstSupportedVersion() const;
|
||||
@@ -259,9 +256,7 @@ public:
|
||||
QString key;
|
||||
};
|
||||
|
||||
MergingSettingsAccessor(std::unique_ptr<BackUpStrategy> &&strategy,
|
||||
const QString &docType,
|
||||
const QString &applicationDisplayName);
|
||||
MergingSettingsAccessor(const QString &docType, const QString &applicationDisplayName);
|
||||
|
||||
RestoreData readData(const FilePath &path, QWidget *parent) const final;
|
||||
|
||||
|
||||
@@ -284,11 +284,11 @@ FilePaths UserFileBackUpStrategy::readFileCandidates(const FilePath &baseFileNam
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
UserFileAccessor::UserFileAccessor(Project *project) :
|
||||
MergingSettingsAccessor(std::make_unique<VersionedBackUpStrategy>(this),
|
||||
"QtCreatorProject",
|
||||
Core::Constants::IDE_DISPLAY_NAME),
|
||||
MergingSettingsAccessor("QtCreatorProject", Core::Constants::IDE_DISPLAY_NAME),
|
||||
m_project(project)
|
||||
{
|
||||
setStrategy(std::make_unique<VersionedBackUpStrategy>(this));
|
||||
|
||||
// Setup:
|
||||
const FilePath externalUser = externalUserFile();
|
||||
const FilePath projectUser = projectUserFile();
|
||||
|
||||
@@ -143,9 +143,9 @@ public:
|
||||
};
|
||||
|
||||
BasicTestSettingsAccessor::BasicTestSettingsAccessor(const FilePath &baseName, const QByteArray &id) :
|
||||
Utils::MergingSettingsAccessor(std::make_unique<TestBackUpStrategy>(this),
|
||||
"TestData", TESTACCESSOR_APPLICATION_DN)
|
||||
Utils::MergingSettingsAccessor("TestData", TESTACCESSOR_APPLICATION_DN)
|
||||
{
|
||||
setStrategy(std::make_unique<TestBackUpStrategy>(this));
|
||||
setSettingsId(id);
|
||||
setBaseFilePath(baseName);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user