diff options
author | hjk <hjk@qt.io> | 2023-04-18 14:14:39 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2023-04-26 06:24:19 +0000 |
commit | aeac83af7813f6ca5c67281c6cd91fc77351830e (patch) | |
tree | 1e1c2a0c05c3be22716360fd0a7157d028058cf4 | |
parent | b4a6af026e5bce2340a900a92250e61d9205e511 (diff) | |
download | qt-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.cpp | 31 | ||||
-rw-r--r-- | src/libs/utils/settingsaccessor.h | 9 | ||||
-rw-r--r-- | src/plugins/projectexplorer/userfileaccessor.cpp | 6 | ||||
-rw-r--r-- | tests/auto/utils/settings/tst_settings.cpp | 4 |
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); } |