diff options
author | hjk <hjk@qt.io> | 2023-04-18 14:36:46 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2023-04-26 06:32:52 +0000 |
commit | 3edc491b2ab5b2177503cf58e7d04c6ef7f61080 (patch) | |
tree | 33b8fa91b71865c0aaaa66c29c54fc6a597a66c8 /src/libs/utils/settingsaccessor.cpp | |
parent | 39dd0f8c0c24aa07fc51f7964c5009fb5ea26fd8 (diff) |
Utils: Simplify SettingsAccessor constructors
Use setters instead.
Change-Id: I912234fa832eeb80519740ca011921f1e71d70b4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/libs/utils/settingsaccessor.cpp')
-rw-r--r-- | src/libs/utils/settingsaccessor.cpp | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/src/libs/utils/settingsaccessor.cpp b/src/libs/utils/settingsaccessor.cpp index 0562f5cf98..275290674f 100644 --- a/src/libs/utils/settingsaccessor.cpp +++ b/src/libs/utils/settingsaccessor.cpp @@ -39,12 +39,7 @@ QMessageBox::StandardButtons SettingsAccessor::Issue::allButtons() const /*! * The SettingsAccessor can be used to read/write settings in XML format. */ -SettingsAccessor::SettingsAccessor(const QString &docType, const QString &applicationDisplayName) - : docType(docType), applicationDisplayName(applicationDisplayName) -{ - QTC_CHECK(!docType.isEmpty()); - QTC_CHECK(!applicationDisplayName.isEmpty()); -} +SettingsAccessor::SettingsAccessor() = default; SettingsAccessor::~SettingsAccessor() = default; @@ -63,6 +58,9 @@ QVariantMap SettingsAccessor::restoreSettings(QWidget *parent) const */ bool SettingsAccessor::saveSettings(const QVariantMap &data, QWidget *parent) const { + QTC_CHECK(!m_docType.isEmpty()); + QTC_CHECK(!m_applicationDisplayName.isEmpty()); + const std::optional<Issue> result = writeData(m_baseFilePath, data, parent); const ProceedInfo pi = result ? reportIssues(result.value(), m_baseFilePath, parent) : ProceedInfo::Continue; @@ -94,6 +92,9 @@ std::optional<SettingsAccessor::Issue> SettingsAccessor::writeData(const FilePat QVariantMap SettingsAccessor::restoreSettings(const FilePath &settingsPath, QWidget *parent) const { + QTC_CHECK(!m_docType.isEmpty()); + QTC_CHECK(!m_applicationDisplayName.isEmpty()); + const RestoreData result = readData(settingsPath, parent); const ProceedInfo pi = result.hasIssue() ? reportIssues(result.issue.value(), result.path, parent) @@ -118,7 +119,7 @@ SettingsAccessor::RestoreData SettingsAccessor::readFile(const FilePath &path) c const QVariantMap data = reader.restoreValues(); if (!m_readOnly && path == m_baseFilePath) { if (!m_writer) - m_writer = std::make_unique<PersistentSettingsWriter>(m_baseFilePath, docType); + m_writer = std::make_unique<PersistentSettingsWriter>(m_baseFilePath, m_docType); m_writer->setContents(data); } @@ -141,7 +142,7 @@ std::optional<SettingsAccessor::Issue> SettingsAccessor::writeFile(const FilePat QString errorMessage; if (!m_readOnly && (!m_writer || m_writer->fileName() != path)) - m_writer = std::make_unique<PersistentSettingsWriter>(path, docType); + m_writer = std::make_unique<PersistentSettingsWriter>(path, m_docType); if (!m_writer->save(data, &errorMessage)) { return Issue(Tr::tr("Failed to Write File"), @@ -151,8 +152,7 @@ std::optional<SettingsAccessor::Issue> SettingsAccessor::writeFile(const FilePat } SettingsAccessor::ProceedInfo -SettingsAccessor::reportIssues(const SettingsAccessor::Issue &issue, const FilePath &path, - QWidget *parent) +SettingsAccessor::reportIssues(const Issue &issue, const FilePath &path, QWidget *parent) { if (!path.exists()) return Continue; @@ -221,10 +221,8 @@ std::optional<FilePath> BackUpStrategy::backupName(const QVariantMap &oldData, return path.stringAppended(".bak"); } -BackingUpSettingsAccessor::BackingUpSettingsAccessor(const QString &docType, - const QString &applicationDisplayName) : - SettingsAccessor(docType, applicationDisplayName), - m_strategy(std::make_unique<BackUpStrategy>()) +BackingUpSettingsAccessor::BackingUpSettingsAccessor() + : m_strategy(std::make_unique<BackUpStrategy>()) { } SettingsAccessor::RestoreData @@ -246,7 +244,7 @@ BackingUpSettingsAccessor::readData(const FilePath &path, QWidget *parent) const "for instance because they were written by an incompatible " "version of %2, or because a different settings path " "was used.</p>") - .arg(path.toUserOutput(), applicationDisplayName), Issue::Type::ERROR); + .arg(path.toUserOutput(), m_applicationDisplayName), Issue::Type::ERROR); i.buttons.insert(QMessageBox::Ok, DiscardAndContinue); result.issue = i; } @@ -402,9 +400,7 @@ QVariantMap VersionUpgrader::renameKeys(const QList<Change> &changes, QVariantMa * The UpgradingSettingsAccessor keeps version information in the settings file and will * upgrade the settings on load to the latest supported version (if possible). */ -UpgradingSettingsAccessor::UpgradingSettingsAccessor(const QString &docType, - const QString &applicationDisplayName) : - BackingUpSettingsAccessor(docType, applicationDisplayName) +UpgradingSettingsAccessor::UpgradingSettingsAccessor() { setStrategy(std::make_unique<VersionedBackUpStrategy>(this)); } @@ -526,7 +522,7 @@ UpgradingSettingsAccessor::validateVersionRange(const RestoreData &data) const "version of %2 was used are ignored, and " "changes made now will <b>not</b> be propagated to " "the newer version.</p>") - .arg(result.path.toUserOutput(), applicationDisplayName), Issue::Type::WARNING); + .arg(result.path.toUserOutput(), m_applicationDisplayName), Issue::Type::WARNING); i.buttons.insert(QMessageBox::Ok, Continue); result.issue = i; return result; @@ -535,13 +531,13 @@ UpgradingSettingsAccessor::validateVersionRange(const RestoreData &data) const const QByteArray readId = settingsIdFromMap(result.data); if (!settingsId().isEmpty() && !readId.isEmpty() && readId != settingsId()) { Issue i(Tr::tr("Settings File for \"%1\" from a Different Environment?") - .arg(applicationDisplayName), + .arg(m_applicationDisplayName), Tr::tr("<p>No settings file created by this instance " "of %1 was found.</p>" "<p>Did you work with this project on another machine or " "using a different settings path before?</p>" "<p>Do you still want to load the settings file \"%2\"?</p>") - .arg(applicationDisplayName, result.path.toUserOutput()), Issue::Type::WARNING); + .arg(m_applicationDisplayName, result.path.toUserOutput()), Issue::Type::WARNING); i.defaultButton = QMessageBox::No; i.escapeButton = QMessageBox::No; i.buttons.clear(); @@ -562,10 +558,7 @@ 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(const QString &docType, - const QString &applicationDisplayName) : - UpgradingSettingsAccessor(docType, applicationDisplayName) -{ } +MergingSettingsAccessor::MergingSettingsAccessor() = default; SettingsAccessor::RestoreData MergingSettingsAccessor::readData(const FilePath &path, QWidget *parent) const @@ -597,7 +590,7 @@ SettingsAccessor::RestoreData MergingSettingsAccessor::readData(const FilePath & secondaryData.issue = Issue(Tr::tr("Unsupported Merge Settings File"), Tr::tr("\"%1\" is not supported by %2. " "Do you want to try loading it anyway?") - .arg(secondaryData.path.toUserOutput(), applicationDisplayName), + .arg(secondaryData.path.toUserOutput(), m_applicationDisplayName), Issue::Type::WARNING); secondaryData.issue->buttons.clear(); secondaryData.issue->buttons.insert(QMessageBox::Yes, Continue); |