From 2e62690dcd5926beab0150882ad1d058257ac52f Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 20 Nov 2017 15:19:56 +0100 Subject: [PATCH] SettingsAccessor: Do not hard-code document type Change-Id: Ied886eac9fcb4a9c58f088c32ee5ba0646b94fbc Reviewed-by: Marco Bubke --- src/libs/utils/settingsaccessor.cpp | 8 ++++++-- src/libs/utils/settingsaccessor.h | 2 +- src/plugins/projectexplorer/userfileaccessor.cpp | 2 +- tests/auto/utils/settings/tst_settings.cpp | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/libs/utils/settingsaccessor.cpp b/src/libs/utils/settingsaccessor.cpp index 210bfca9fbd..55e119cf4be 100644 --- a/src/libs/utils/settingsaccessor.cpp +++ b/src/libs/utils/settingsaccessor.cpp @@ -112,6 +112,7 @@ public: std::vector> m_upgraders; std::unique_ptr m_writer; + QString m_docType; QByteArray m_settingsId; QString m_displayName; QString m_applicationDisplayName; @@ -194,10 +195,13 @@ static FileName userFilePath(const Utils::FileName &projectFilePath, const QStri return result; } -SettingsAccessor::SettingsAccessor(const Utils::FileName &baseFile) : +SettingsAccessor::SettingsAccessor(const Utils::FileName &baseFile, const QString &docType) : d(new SettingsAccessorPrivate) { QTC_CHECK(!baseFile.isEmpty()); + QTC_CHECK(!docType.isEmpty()); + + d->m_docType = docType; d->m_baseFile = baseFile; d->m_userSuffix = generateSuffix(QString::fromLocal8Bit(qgetenv("QTC_EXTENSION")), ".user"); d->m_sharedSuffix = generateSuffix(QString::fromLocal8Bit(qgetenv("QTC_SHARED_EXTENSION")), ".shared"); @@ -579,7 +583,7 @@ bool SettingsAccessor::saveSettings(const QVariantMap &map, QWidget *parent) con FileName path = FileName::fromString(defaultFileName(d->m_userSuffix)); if (!d->m_writer || d->m_writer->fileName() != path) - d->m_writer = std::make_unique(path, "QtCreatorProject"); + d->m_writer = std::make_unique(path, d->m_docType); return d->m_writer->save(data, parent); } diff --git a/src/libs/utils/settingsaccessor.h b/src/libs/utils/settingsaccessor.h index 0c62c0fd799..28db0c69e35 100644 --- a/src/libs/utils/settingsaccessor.h +++ b/src/libs/utils/settingsaccessor.h @@ -61,7 +61,7 @@ class SettingsAccessorPrivate; class QTCREATOR_UTILS_EXPORT SettingsAccessor { public: - explicit SettingsAccessor(const Utils::FileName &baseFile); + explicit SettingsAccessor(const Utils::FileName &baseFile, const QString &docType); virtual ~SettingsAccessor(); QVariantMap restoreSettings(QWidget *parent) const; diff --git a/src/plugins/projectexplorer/userfileaccessor.cpp b/src/plugins/projectexplorer/userfileaccessor.cpp index 14f90695a55..6f861192d75 100644 --- a/src/plugins/projectexplorer/userfileaccessor.cpp +++ b/src/plugins/projectexplorer/userfileaccessor.cpp @@ -348,7 +348,7 @@ static QVariantMap processHandlerNodes(const HandlerNode &node, const QVariantMa // UserFileAccessor: // -------------------------------------------------------------------- UserFileAccessor::UserFileAccessor(Project *project) : - SettingsAccessor(project->projectFilePath()), + SettingsAccessor(project->projectFilePath(), "QtCreatorProject"), m_project(project) { setSettingsId(ProjectExplorerPlugin::projectExplorerSettings().environmentId.toByteArray()); diff --git a/tests/auto/utils/settings/tst_settings.cpp b/tests/auto/utils/settings/tst_settings.cpp index 92a0e899890..bd7621af1cd 100644 --- a/tests/auto/utils/settings/tst_settings.cpp +++ b/tests/auto/utils/settings/tst_settings.cpp @@ -75,7 +75,7 @@ class BasicTestSettingsAccessor : public Utils::SettingsAccessor public: BasicTestSettingsAccessor(const Utils::FileName &baseName = Utils::FileName::fromString("/foo/bar"), const QByteArray &id = QByteArray(TESTACCESSOR_DEFAULT_ID)) : - Utils::SettingsAccessor(baseName) + Utils::SettingsAccessor(baseName, "TestData") { setDisplayName(TESTACCESSOR_DN); setApplicationDisplayName(TESTACCESSOR_APPLICATION_DN);