CppEditor: Use Utils::Store in CppCodeModelSettings

Preparation for introducing a per-project variant.

Change-Id: I40897f3ad5261e0d28e6c1332a6951f61f5e749b
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2024-02-20 15:41:42 +01:00
parent ad30de78d6
commit 68cc7f11b7
2 changed files with 52 additions and 43 deletions

View File

@@ -18,6 +18,7 @@
#include <utils/macroexpander.h>
#include <utils/process.h>
#include <utils/qtcassert.h>
#include <utils/store.h>
#include <QDateTime>
#include <QDir>
@@ -72,56 +73,59 @@ static FilePath fallbackClangdFilePath()
void CppCodeModelSettings::fromSettings(QtcSettings *s)
{
s->beginGroup(Constants::CPPEDITOR_SETTINGSGROUP);
const CppCodeModelSettings def;
setEnableLowerClazyLevels(
s->value(enableLowerClazyLevelsKey(), def.enableLowerClazyLevels()).toBool());
setPCHUsage(static_cast<PCHUsage>(s->value(pchUsageKey(), def.pchUsage()).toInt()));
setInterpretAmbigiousHeadersAsCHeaders(s->value(interpretAmbiguousHeadersAsCHeadersKey(),
def.interpretAmbigiousHeadersAsCHeaders())
.toBool());
setSkipIndexingBigFiles(
s->value(skipIndexingBigFilesKey(), def.skipIndexingBigFiles()).toBool());
setIgnoreFiles(s->value(ignoreFilesKey(), def.ignoreFiles()).toBool());
setIgnorePattern(s->value(ignorePatternKey(), def.ignorePattern()).toString());
setUseBuiltinPreprocessor(
s->value(useBuiltinPreprocessorKey(), def.useBuiltinPreprocessor()).toBool());
setIndexerFileSizeLimitInMb(
s->value(indexerFileSizeLimitKey(), def.indexerFileSizeLimitInMb()).toInt());
s->endGroup();
fromMap(storeFromSettings(Constants::CPPEDITOR_SETTINGSGROUP, s));
emit changed();
}
void CppCodeModelSettings::toSettings(QtcSettings *s)
{
s->beginGroup(Constants::CPPEDITOR_SETTINGSGROUP);
storeToSettings(Constants::CPPEDITOR_SETTINGSGROUP, s, toMap());
emit changed(); // TODO: Why?
}
Store CppCodeModelSettings::toMap() const
{
const CppCodeModelSettings def;
s->setValueWithDefault(enableLowerClazyLevelsKey(),
enableLowerClazyLevels(),
def.enableLowerClazyLevels());
s->setValueWithDefault(pchUsageKey(), pchUsage(), def.pchUsage());
s->setValueWithDefault(interpretAmbiguousHeadersAsCHeadersKey(),
interpretAmbigiousHeadersAsCHeaders(),
def.interpretAmbigiousHeadersAsCHeaders());
s->setValueWithDefault(skipIndexingBigFilesKey(),
skipIndexingBigFiles(),
def.skipIndexingBigFiles());
s->setValueWithDefault(ignoreFilesKey(), ignoreFiles(), def.ignoreFiles());
s->setValueWithDefault(ignorePatternKey(), ignorePattern(), def.ignorePattern());
s->setValueWithDefault(useBuiltinPreprocessorKey(),
useBuiltinPreprocessor(),
def.useBuiltinPreprocessor());
s->setValueWithDefault(indexerFileSizeLimitKey(),
indexerFileSizeLimitInMb(),
def.indexerFileSizeLimitInMb());
Store store;
store.insertValueWithDefault(enableLowerClazyLevelsKey(),
enableLowerClazyLevels(),
def.enableLowerClazyLevels());
store.insertValueWithDefault(pchUsageKey(), pchUsage(), def.pchUsage());
store.insertValueWithDefault(interpretAmbiguousHeadersAsCHeadersKey(),
interpretAmbigiousHeadersAsCHeaders(),
def.interpretAmbigiousHeadersAsCHeaders());
store.insertValueWithDefault(skipIndexingBigFilesKey(),
skipIndexingBigFiles(),
def.skipIndexingBigFiles());
store.insertValueWithDefault(ignoreFilesKey(), ignoreFiles(), def.ignoreFiles());
store.insertValueWithDefault(ignorePatternKey(), ignorePattern(), def.ignorePattern());
store.insertValueWithDefault(useBuiltinPreprocessorKey(),
useBuiltinPreprocessor(),
def.useBuiltinPreprocessor());
store.insertValueWithDefault(indexerFileSizeLimitKey(),
indexerFileSizeLimitInMb(),
def.indexerFileSizeLimitInMb());
return store;
}
s->endGroup();
emit changed();
void CppCodeModelSettings::fromMap(const Utils::Store &store)
{
const CppCodeModelSettings def;
setEnableLowerClazyLevels(
store.value(enableLowerClazyLevelsKey(), def.enableLowerClazyLevels()).toBool());
setPCHUsage(static_cast<PCHUsage>(store.value(pchUsageKey(), def.pchUsage()).toInt()));
setInterpretAmbigiousHeadersAsCHeaders(store
.value(interpretAmbiguousHeadersAsCHeadersKey(),
def.interpretAmbigiousHeadersAsCHeaders())
.toBool());
setSkipIndexingBigFiles(
store.value(skipIndexingBigFilesKey(), def.skipIndexingBigFiles()).toBool());
setIgnoreFiles(store.value(ignoreFilesKey(), def.ignoreFiles()).toBool());
setIgnorePattern(store.value(ignorePatternKey(), def.ignorePattern()).toString());
setUseBuiltinPreprocessor(
store.value(useBuiltinPreprocessorKey(), def.useBuiltinPreprocessor()).toBool());
setIndexerFileSizeLimitInMb(
store.value(indexerFileSizeLimitKey(), def.indexerFileSizeLimitInMb()).toInt());
}
CppCodeModelSettings::PCHUsage CppCodeModelSettings::pchUsage() const

View File

@@ -17,7 +17,10 @@
#include <QVersionNumber>
namespace ProjectExplorer { class Project; }
namespace Utils { class MacroExpander; }
namespace Utils {
class MacroExpander;
class Store;
} // namespace Utils
namespace CppEditor {
@@ -68,6 +71,8 @@ signals:
private:
CppCodeModelSettings() = default;
void fromSettings(Utils::QtcSettings *s);
Utils::Store toMap() const;
void fromMap(const Utils::Store &store);
PCHUsage m_pchUsage = PchUse_BuildSystem;
bool m_interpretAmbigiousHeadersAsCHeaders = false;