aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2018-05-06 10:55:49 +0300
committerOrgad Shaneh <orgads@gmail.com>2018-05-08 07:56:20 +0000
commit1678e9eb1e4dfcdd518218ca89455f6b667316d1 (patch)
tree9a8d4aaac2e92d18637a20b41f20645c9485a2e5 /src/libs/utils
parent4ce6438b3400fca01803753f36b8e242bded6156 (diff)
ProjectExplorer: Do not overwrite shared project settings
Change-Id: Iecf684677599975e6f44df0d354ce7cd8c7aeeb9 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/libs/utils')
-rw-r--r--src/libs/utils/settingsaccessor.cpp4
-rw-r--r--src/libs/utils/settingsaccessor.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/libs/utils/settingsaccessor.cpp b/src/libs/utils/settingsaccessor.cpp
index ae828aff694..cab3a348a82 100644
--- a/src/libs/utils/settingsaccessor.cpp
+++ b/src/libs/utils/settingsaccessor.cpp
@@ -141,7 +141,7 @@ SettingsAccessor::RestoreData SettingsAccessor::readFile(const FileName &path) c
}
const QVariantMap data = reader.restoreValues();
- if (path == m_baseFilePath) {
+ if (!m_readOnly && path == m_baseFilePath) {
if (!m_writer)
m_writer = std::make_unique<PersistentSettingsWriter>(m_baseFilePath, docType);
m_writer->setContents(data);
@@ -165,7 +165,7 @@ SettingsAccessor::writeFile(const FileName &path, const QVariantMap &data) const
}
QString errorMessage;
- if (!m_writer || m_writer->fileName() != path)
+ if (!m_readOnly && (!m_writer || m_writer->fileName() != path))
m_writer = std::make_unique<PersistentSettingsWriter>(path, docType);
if (!m_writer->save(data, &errorMessage)) {
diff --git a/src/libs/utils/settingsaccessor.h b/src/libs/utils/settingsaccessor.h
index 36b2a257ae5..355a942761e 100644
--- a/src/libs/utils/settingsaccessor.h
+++ b/src/libs/utils/settingsaccessor.h
@@ -122,6 +122,7 @@ public:
const QString applicationDisplayName;
void setBaseFilePath(const Utils::FileName &baseFilePath) { m_baseFilePath = baseFilePath; }
+ void setReadOnly() { m_readOnly = true; }
Utils::FileName baseFilePath() const { return m_baseFilePath; }
virtual RestoreData readData(const Utils::FileName &path, QWidget *parent) const;
@@ -141,6 +142,7 @@ protected:
private:
Utils::FileName m_baseFilePath;
mutable std::unique_ptr<PersistentSettingsWriter> m_writer;
+ bool m_readOnly = false;
};
// --------------------------------------------------------------------