summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-04-18 14:14:39 +0200
committerhjk <hjk@qt.io>2023-04-26 06:24:19 +0000
commitaeac83af7813f6ca5c67281c6cd91fc77351830e (patch)
tree1e1c2a0c05c3be22716360fd0a7157d028058cf4
parentb4a6af026e5bce2340a900a92250e61d9205e511 (diff)
downloadqt-creator-aeac83af7813f6ca5c67281c6cd91fc77351830e.tar.gz
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>
-rw-r--r--src/libs/utils/settingsaccessor.cpp31
-rw-r--r--src/libs/utils/settingsaccessor.h9
-rw-r--r--src/plugins/projectexplorer/userfileaccessor.cpp6
-rw-r--r--tests/auto/utils/settings/tst_settings.cpp4
4 files changed, 19 insertions, 31 deletions
diff --git a/src/libs/utils/settingsaccessor.cpp b/src/libs/utils/settingsaccessor.cpp
index 24f922bf98..0562f5cf98 100644
--- a/src/libs/utils/settingsaccessor.cpp
+++ b/src/libs/utils/settingsaccessor.cpp
@@ -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,
diff --git a/src/libs/utils/settingsaccessor.h b/src/libs/utils/settingsaccessor.h
index 0c0af48500..5ad37bd59c 100644
--- a/src/libs/utils/settingsaccessor.h
+++ b/src/libs/utils/settingsaccessor.h
@@ -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;
diff --git a/src/plugins/projectexplorer/userfileaccessor.cpp b/src/plugins/projectexplorer/userfileaccessor.cpp
index bd0f60276c..7d7a07a651 100644
--- a/src/plugins/projectexplorer/userfileaccessor.cpp
+++ b/src/plugins/projectexplorer/userfileaccessor.cpp
@@ -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();
diff --git a/tests/auto/utils/settings/tst_settings.cpp b/tests/auto/utils/settings/tst_settings.cpp
index 433401b9e1..9f723b916b 100644
--- a/tests/auto/utils/settings/tst_settings.cpp
+++ b/tests/auto/utils/settings/tst_settings.cpp
@@ -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);
}