forked from qt-creator/qt-creator
CppEditor: Refactor CppCodeModelSettings
Preparation for per-project settings. Change-Id: I78ecf0cde6150e40353c4aea6a98717d119f05c7 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -35,9 +35,9 @@ BaseEditorDocumentProcessor::~BaseEditorDocumentProcessor() = default;
|
||||
|
||||
void BaseEditorDocumentProcessor::run(bool projectsUpdated)
|
||||
{
|
||||
const Utils::Language languagePreference = codeModelSettings()->interpretAmbigiousHeadersAsCHeaders()
|
||||
? Utils::Language::C
|
||||
: Utils::Language::Cxx;
|
||||
const Utils::Language languagePreference = codeModelSettings()->interpretAmbigiousHeadersAsC()
|
||||
? Utils::Language::C
|
||||
: Utils::Language::Cxx;
|
||||
|
||||
runImpl({CppModelManager::workingCopy(),
|
||||
ProjectExplorer::ProjectManager::startupProject(),
|
||||
|
||||
@@ -90,11 +90,7 @@ void ClangDiagnosticConfigsSelectionWidget::onButtonClicked()
|
||||
connect(buttonsBox, &QDialogButtonBox::accepted, &dialog, &QDialog::accept);
|
||||
connect(buttonsBox, &QDialogButtonBox::rejected, &dialog, &QDialog::reject);
|
||||
|
||||
const bool previousEnableLowerClazyLevels = codeModelSettings()->enableLowerClazyLevels();
|
||||
if (dialog.exec() == QDialog::Accepted) {
|
||||
if (previousEnableLowerClazyLevels != codeModelSettings()->enableLowerClazyLevels())
|
||||
codeModelSettings()->toSettings(Core::ICore::settings());
|
||||
|
||||
m_diagnosticConfigsModel = ClangDiagnosticConfigsModel(widget->configs());
|
||||
m_currentConfigId = widget->currentConfig().id();
|
||||
m_button->setText(widget->currentConfig().displayName());
|
||||
|
||||
@@ -71,135 +71,98 @@ static FilePath fallbackClangdFilePath()
|
||||
return Environment::systemEnvironment().searchInPath("clangd");
|
||||
}
|
||||
|
||||
bool operator==(const CppEditor::CppCodeModelSettings::Data &s1,
|
||||
const CppEditor::CppCodeModelSettings::Data &s2)
|
||||
{
|
||||
return s1.pchUsage == s2.pchUsage
|
||||
&& s1.interpretAmbigiousHeadersAsC == s2.interpretAmbigiousHeadersAsC
|
||||
&& s1.skipIndexingBigFiles == s2.skipIndexingBigFiles
|
||||
&& s1.useBuiltinPreprocessor == s2.useBuiltinPreprocessor
|
||||
&& s1.indexerFileSizeLimitInMb == s2.indexerFileSizeLimitInMb
|
||||
&& s1.enableLowerClazyLevels == s2.enableLowerClazyLevels
|
||||
&& s1.categorizeFindReferences == s2.categorizeFindReferences
|
||||
&& s1.ignoreFiles == s2.ignoreFiles && s1.ignorePattern == s2.ignorePattern;
|
||||
}
|
||||
|
||||
Store CppCodeModelSettings::Data::toMap() const
|
||||
{
|
||||
const CppCodeModelSettings::Data def;
|
||||
Store store;
|
||||
store.insertValueWithDefault(enableLowerClazyLevelsKey(),
|
||||
enableLowerClazyLevels,
|
||||
def.enableLowerClazyLevels);
|
||||
store.insertValueWithDefault(pchUsageKey(), pchUsage, def.pchUsage);
|
||||
store.insertValueWithDefault(interpretAmbiguousHeadersAsCHeadersKey(),
|
||||
interpretAmbigiousHeadersAsC,
|
||||
def.interpretAmbigiousHeadersAsC);
|
||||
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;
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::Data::fromMap(const Utils::Store &store)
|
||||
{
|
||||
const CppCodeModelSettings::Data def;
|
||||
enableLowerClazyLevels
|
||||
= store.value(enableLowerClazyLevelsKey(), def.enableLowerClazyLevels).toBool();
|
||||
pchUsage = static_cast<PCHUsage>(store.value(pchUsageKey(), def.pchUsage).toInt());
|
||||
interpretAmbigiousHeadersAsC = store
|
||||
.value(interpretAmbiguousHeadersAsCHeadersKey(),
|
||||
def.interpretAmbigiousHeadersAsC)
|
||||
.toBool();
|
||||
skipIndexingBigFiles = store.value(skipIndexingBigFilesKey(), def.skipIndexingBigFiles).toBool();
|
||||
ignoreFiles = store.value(ignoreFilesKey(), def.ignoreFiles).toBool();
|
||||
ignorePattern = store.value(ignorePatternKey(), def.ignorePattern).toString();
|
||||
useBuiltinPreprocessor
|
||||
= store.value(useBuiltinPreprocessorKey(), def.useBuiltinPreprocessor).toBool();
|
||||
indexerFileSizeLimitInMb
|
||||
= store.value(indexerFileSizeLimitKey(), def.indexerFileSizeLimitInMb).toInt();
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::fromSettings(QtcSettings *s)
|
||||
{
|
||||
fromMap(storeFromSettings(Constants::CPPEDITOR_SETTINGSGROUP, s));
|
||||
m_data.fromMap(storeFromSettings(Constants::CPPEDITOR_SETTINGSGROUP, s));
|
||||
emit changed();
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::toSettings(QtcSettings *s)
|
||||
{
|
||||
storeToSettings(Constants::CPPEDITOR_SETTINGSGROUP, s, toMap());
|
||||
storeToSettings(Constants::CPPEDITOR_SETTINGSGROUP, s, m_data.toMap());
|
||||
emit changed(); // TODO: Why?
|
||||
}
|
||||
|
||||
Store CppCodeModelSettings::toMap() const
|
||||
void CppCodeModelSettings::setData(const Data &data)
|
||||
{
|
||||
const CppCodeModelSettings def;
|
||||
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;
|
||||
if (m_data != data) {
|
||||
m_data = data;
|
||||
toSettings(Core::ICore::settings());
|
||||
emit changed();
|
||||
}
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::fromMap(const Utils::Store &store)
|
||||
void CppCodeModelSettings::setEnableLowerClazyLevels(bool enable)
|
||||
{
|
||||
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());
|
||||
Data d = data();
|
||||
d.enableLowerClazyLevels = enable;
|
||||
setData(d);
|
||||
}
|
||||
|
||||
CppCodeModelSettings::PCHUsage CppCodeModelSettings::pchUsage() const
|
||||
void CppCodeModelSettings::setCategorizeFindReferences(bool categorize)
|
||||
{
|
||||
return m_pchUsage;
|
||||
Data d = data();
|
||||
d.categorizeFindReferences = categorize;
|
||||
setData(d);
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::setPCHUsage(CppCodeModelSettings::PCHUsage pchUsage)
|
||||
{
|
||||
m_pchUsage = pchUsage;
|
||||
}
|
||||
|
||||
bool CppCodeModelSettings::interpretAmbigiousHeadersAsCHeaders() const
|
||||
{
|
||||
return m_interpretAmbigiousHeadersAsCHeaders;
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::setInterpretAmbigiousHeadersAsCHeaders(bool yesno)
|
||||
{
|
||||
m_interpretAmbigiousHeadersAsCHeaders = yesno;
|
||||
}
|
||||
|
||||
bool CppCodeModelSettings::skipIndexingBigFiles() const
|
||||
{
|
||||
return m_skipIndexingBigFiles;
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::setSkipIndexingBigFiles(bool yesno)
|
||||
{
|
||||
m_skipIndexingBigFiles = yesno;
|
||||
}
|
||||
|
||||
int CppCodeModelSettings::indexerFileSizeLimitInMb() const
|
||||
{
|
||||
return m_indexerFileSizeLimitInMB;
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::setIndexerFileSizeLimitInMb(int sizeInMB)
|
||||
{
|
||||
m_indexerFileSizeLimitInMB = sizeInMB;
|
||||
}
|
||||
|
||||
bool CppCodeModelSettings::ignoreFiles() const
|
||||
{
|
||||
return m_ignoreFiles;
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::setIgnoreFiles(bool ignoreFiles)
|
||||
{
|
||||
m_ignoreFiles = ignoreFiles;
|
||||
}
|
||||
|
||||
QString CppCodeModelSettings::ignorePattern() const
|
||||
{
|
||||
return m_ignorePattern;
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::setIgnorePattern(const QString& ignorePattern)
|
||||
{
|
||||
m_ignorePattern = ignorePattern;
|
||||
}
|
||||
|
||||
|
||||
bool CppCodeModelSettings::enableLowerClazyLevels() const
|
||||
{
|
||||
return m_enableLowerClazyLevels;
|
||||
}
|
||||
|
||||
void CppCodeModelSettings::setEnableLowerClazyLevels(bool yesno)
|
||||
{
|
||||
m_enableLowerClazyLevels = yesno;
|
||||
}
|
||||
|
||||
|
||||
QString ClangdSettings::priorityToString(const IndexingPriority &priority)
|
||||
{
|
||||
switch (priority) {
|
||||
|
||||
@@ -34,54 +34,56 @@ public:
|
||||
PchUse_BuildSystem = 2
|
||||
};
|
||||
|
||||
class Data
|
||||
{
|
||||
public:
|
||||
Utils::Store toMap() const;
|
||||
void fromMap(const Utils::Store &store);
|
||||
|
||||
friend bool operator==(const Data &s1, const Data &s2);
|
||||
friend bool operator!=(const Data &s1, const Data &s2) { return !(s1 == s2); }
|
||||
|
||||
PCHUsage pchUsage = PchUse_BuildSystem;
|
||||
bool interpretAmbigiousHeadersAsC = false;
|
||||
bool skipIndexingBigFiles = true;
|
||||
bool useBuiltinPreprocessor = true;
|
||||
int indexerFileSizeLimitInMb = 5;
|
||||
bool enableLowerClazyLevels = true; // For UI behavior only
|
||||
bool categorizeFindReferences = false; // Ephemeral!
|
||||
bool ignoreFiles = false;
|
||||
QString ignorePattern;
|
||||
};
|
||||
|
||||
CppCodeModelSettings(Utils::QtcSettings *s) { fromSettings(s); }
|
||||
|
||||
void toSettings(Utils::QtcSettings *s);
|
||||
void setData(const Data &data);
|
||||
Data data() const { return m_data; }
|
||||
|
||||
bool enableLowerClazyLevels() const;
|
||||
void setEnableLowerClazyLevels(bool yesno);
|
||||
bool enableLowerClazyLevels() const { return m_data.enableLowerClazyLevels; }
|
||||
PCHUsage pchUsage() const { return m_data.pchUsage; }
|
||||
bool interpretAmbigiousHeadersAsC() const { return m_data.interpretAmbigiousHeadersAsC; }
|
||||
bool skipIndexingBigFiles() const { return m_data.skipIndexingBigFiles; }
|
||||
bool useBuiltinPreprocessor() const { return m_data.useBuiltinPreprocessor; }
|
||||
int indexerFileSizeLimitInMb() const { return m_data.indexerFileSizeLimitInMb; }
|
||||
bool categorizeFindReferences() const { return m_data.categorizeFindReferences; }
|
||||
bool ignoreFiles() const { return m_data.ignoreFiles; }
|
||||
QString ignorePattern() const { return m_data.ignorePattern; }
|
||||
|
||||
PCHUsage pchUsage() const;
|
||||
void setPCHUsage(PCHUsage pchUsage);
|
||||
// FIXME: Doesn't belong here.
|
||||
void setEnableLowerClazyLevels(bool enable);
|
||||
|
||||
bool interpretAmbigiousHeadersAsCHeaders() const;
|
||||
void setInterpretAmbigiousHeadersAsCHeaders(bool yesno);
|
||||
|
||||
bool skipIndexingBigFiles() const;
|
||||
void setSkipIndexingBigFiles(bool yesno);
|
||||
|
||||
bool useBuiltinPreprocessor() const { return m_useBuiltinPreprocessor; }
|
||||
void setUseBuiltinPreprocessor(bool useBuiltin) { m_useBuiltinPreprocessor = useBuiltin; }
|
||||
|
||||
int indexerFileSizeLimitInMb() const;
|
||||
void setIndexerFileSizeLimitInMb(int sizeInMB);
|
||||
|
||||
void setCategorizeFindReferences(bool categorize) { m_categorizeFindReferences = categorize; }
|
||||
bool categorizeFindReferences() const { return m_categorizeFindReferences; }
|
||||
|
||||
bool ignoreFiles() const;
|
||||
void setIgnoreFiles(bool ignoreFiles);
|
||||
QString ignorePattern() const;
|
||||
void setIgnorePattern(const QString& ignorePattern);
|
||||
void setCategorizeFindReferences(bool categorize);
|
||||
|
||||
signals:
|
||||
void changed();
|
||||
|
||||
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;
|
||||
bool m_skipIndexingBigFiles = true;
|
||||
bool m_useBuiltinPreprocessor = true;
|
||||
int m_indexerFileSizeLimitInMB = 5;
|
||||
bool m_enableLowerClazyLevels = true; // For UI behavior only
|
||||
bool m_categorizeFindReferences = false; // Ephemeral!
|
||||
bool m_ignoreFiles = false;
|
||||
QString m_ignorePattern;
|
||||
void toSettings(Utils::QtcSettings *s);
|
||||
void fromSettings(Utils::QtcSettings *s);
|
||||
|
||||
Data m_data;
|
||||
};
|
||||
|
||||
class CPPEDITOR_EXPORT ClangdSettings : public QObject
|
||||
|
||||
@@ -51,14 +51,13 @@ namespace CppEditor::Internal {
|
||||
class CppCodeModelSettingsWidget final : public Core::IOptionsPageWidget
|
||||
{
|
||||
public:
|
||||
CppCodeModelSettingsWidget();
|
||||
CppCodeModelSettingsWidget(const CppCodeModelSettings::Data &data);
|
||||
|
||||
private:
|
||||
void apply() final;
|
||||
void apply() final { codeModelSettings()->setData(data()); }
|
||||
|
||||
bool applyGeneralWidgetsToSettings() const;
|
||||
CppCodeModelSettings::Data data() const;
|
||||
|
||||
CppCodeModelSettings *m_settings = nullptr;
|
||||
QCheckBox *m_interpretAmbiguousHeadersAsCHeaders;
|
||||
QCheckBox *m_ignorePchCheckBox;
|
||||
QCheckBox *m_useBuiltinPreprocessorCheckBox;
|
||||
@@ -68,19 +67,18 @@ private:
|
||||
QPlainTextEdit *m_ignorePatternTextEdit;
|
||||
};
|
||||
|
||||
CppCodeModelSettingsWidget::CppCodeModelSettingsWidget()
|
||||
: m_settings(&cppCodeModelSettings())
|
||||
CppCodeModelSettingsWidget::CppCodeModelSettingsWidget(const CppCodeModelSettings::Data &data)
|
||||
{
|
||||
m_interpretAmbiguousHeadersAsCHeaders
|
||||
= new QCheckBox(Tr::tr("Interpret ambiguous headers as C headers"));
|
||||
|
||||
m_skipIndexingBigFilesCheckBox = new QCheckBox(Tr::tr("Do not index files greater than"));
|
||||
m_skipIndexingBigFilesCheckBox->setChecked(m_settings->skipIndexingBigFiles());
|
||||
m_skipIndexingBigFilesCheckBox->setChecked(data.skipIndexingBigFiles);
|
||||
|
||||
m_bigFilesLimitSpinBox = new QSpinBox;
|
||||
m_bigFilesLimitSpinBox->setSuffix(Tr::tr("MB"));
|
||||
m_bigFilesLimitSpinBox->setRange(1, 500);
|
||||
m_bigFilesLimitSpinBox->setValue(m_settings->indexerFileSizeLimitInMb());
|
||||
m_bigFilesLimitSpinBox->setValue(data.indexerFileSizeLimitInMb);
|
||||
|
||||
m_ignoreFilesCheckBox = new QCheckBox(Tr::tr("Ignore files"));
|
||||
m_ignoreFilesCheckBox->setToolTip(
|
||||
@@ -88,8 +86,8 @@ CppCodeModelSettingsWidget::CppCodeModelSettingsWidget()
|
||||
+ Tr::tr("Ignore files that match these wildcard patterns, one wildcard per line.")
|
||||
+ "</p></body></html>");
|
||||
|
||||
m_ignoreFilesCheckBox->setChecked(m_settings->ignoreFiles());
|
||||
m_ignorePatternTextEdit = new QPlainTextEdit(m_settings->ignorePattern());
|
||||
m_ignoreFilesCheckBox->setChecked(data.ignoreFiles);
|
||||
m_ignorePatternTextEdit = new QPlainTextEdit(data.ignorePattern);
|
||||
m_ignorePatternTextEdit->setToolTip(m_ignoreFilesCheckBox->toolTip());
|
||||
m_ignorePatternTextEdit->setEnabled(m_ignoreFilesCheckBox->isChecked());
|
||||
|
||||
@@ -109,11 +107,9 @@ CppCodeModelSettingsWidget::CppCodeModelSettingsWidget()
|
||||
(Tr::tr("Uncheck this to invoke the actual compiler "
|
||||
"to show a pre-processed source file in the editor."));
|
||||
|
||||
m_interpretAmbiguousHeadersAsCHeaders->setChecked(
|
||||
m_settings->interpretAmbigiousHeadersAsCHeaders());
|
||||
|
||||
m_ignorePchCheckBox->setChecked(m_settings->pchUsage() == CppCodeModelSettings::PchUse_None);
|
||||
m_useBuiltinPreprocessorCheckBox->setChecked(m_settings->useBuiltinPreprocessor());
|
||||
m_interpretAmbiguousHeadersAsCHeaders->setChecked(data.interpretAmbigiousHeadersAsC);
|
||||
m_ignorePchCheckBox->setChecked(data.pchUsage == CppCodeModelSettings::PchUse_None);
|
||||
m_useBuiltinPreprocessorCheckBox->setChecked(data.useBuiltinPreprocessor);
|
||||
|
||||
using namespace Layouting;
|
||||
|
||||
@@ -132,61 +128,18 @@ CppCodeModelSettingsWidget::CppCodeModelSettingsWidget()
|
||||
}.attachTo(this);
|
||||
}
|
||||
|
||||
void CppCodeModelSettingsWidget::apply()
|
||||
CppCodeModelSettings::Data CppCodeModelSettingsWidget::data() const
|
||||
{
|
||||
if (applyGeneralWidgetsToSettings())
|
||||
m_settings->toSettings(Core::ICore::settings());
|
||||
}
|
||||
|
||||
bool CppCodeModelSettingsWidget::applyGeneralWidgetsToSettings() const
|
||||
{
|
||||
bool settingsChanged = false;
|
||||
|
||||
const bool newInterpretAmbiguousHeaderAsCHeaders
|
||||
= m_interpretAmbiguousHeadersAsCHeaders->isChecked();
|
||||
if (m_settings->interpretAmbigiousHeadersAsCHeaders()
|
||||
!= newInterpretAmbiguousHeaderAsCHeaders) {
|
||||
m_settings->setInterpretAmbigiousHeadersAsCHeaders(newInterpretAmbiguousHeaderAsCHeaders);
|
||||
settingsChanged = true;
|
||||
}
|
||||
|
||||
const bool newSkipIndexingBigFiles = m_skipIndexingBigFilesCheckBox->isChecked();
|
||||
if (m_settings->skipIndexingBigFiles() != newSkipIndexingBigFiles) {
|
||||
m_settings->setSkipIndexingBigFiles(newSkipIndexingBigFiles);
|
||||
settingsChanged = true;
|
||||
}
|
||||
const bool newUseBuiltinPreprocessor = m_useBuiltinPreprocessorCheckBox->isChecked();
|
||||
if (m_settings->useBuiltinPreprocessor() != newUseBuiltinPreprocessor) {
|
||||
m_settings->setUseBuiltinPreprocessor(newUseBuiltinPreprocessor);
|
||||
settingsChanged = true;
|
||||
}
|
||||
const bool ignoreFiles = m_ignoreFilesCheckBox->isChecked();
|
||||
if (m_settings->ignoreFiles() != ignoreFiles) {
|
||||
m_settings->setIgnoreFiles(ignoreFiles);
|
||||
settingsChanged = true;
|
||||
}
|
||||
const QString ignorePattern = m_ignorePatternTextEdit->toPlainText();
|
||||
if (m_settings->ignorePattern() != ignorePattern) {
|
||||
m_settings->setIgnorePattern(ignorePattern);
|
||||
settingsChanged = true;
|
||||
}
|
||||
const int newFileSizeLimit = m_bigFilesLimitSpinBox->value();
|
||||
if (m_settings->indexerFileSizeLimitInMb() != newFileSizeLimit) {
|
||||
m_settings->setIndexerFileSizeLimitInMb(newFileSizeLimit);
|
||||
settingsChanged = true;
|
||||
}
|
||||
|
||||
const bool newIgnorePch = m_ignorePchCheckBox->isChecked();
|
||||
const bool previousIgnorePch = m_settings->pchUsage() == CppCodeModelSettings::PchUse_None;
|
||||
if (newIgnorePch != previousIgnorePch) {
|
||||
const CppCodeModelSettings::PCHUsage pchUsage = m_ignorePchCheckBox->isChecked()
|
||||
? CppCodeModelSettings::PchUse_None
|
||||
: CppCodeModelSettings::PchUse_BuildSystem;
|
||||
m_settings->setPCHUsage(pchUsage);
|
||||
settingsChanged = true;
|
||||
}
|
||||
|
||||
return settingsChanged;
|
||||
CppCodeModelSettings::Data data;
|
||||
data.interpretAmbigiousHeadersAsC = m_interpretAmbiguousHeadersAsCHeaders->isChecked();
|
||||
data.skipIndexingBigFiles = m_skipIndexingBigFilesCheckBox->isChecked();
|
||||
data.useBuiltinPreprocessor = m_useBuiltinPreprocessorCheckBox->isChecked();
|
||||
data.ignoreFiles = m_ignoreFilesCheckBox->isChecked();
|
||||
data.ignorePattern = m_ignorePatternTextEdit->toPlainText();
|
||||
data.indexerFileSizeLimitInMb = m_bigFilesLimitSpinBox->value();
|
||||
data.pchUsage = m_ignorePchCheckBox->isChecked() ? CppCodeModelSettings::PchUse_None
|
||||
: CppCodeModelSettings::PchUse_BuildSystem;
|
||||
return data;
|
||||
}
|
||||
|
||||
class CppCodeModelSettingsPage final : public Core::IOptionsPage
|
||||
@@ -199,7 +152,7 @@ public:
|
||||
setCategory(Constants::CPP_SETTINGS_CATEGORY);
|
||||
setDisplayCategory(Tr::tr("C++"));
|
||||
setCategoryIconPath(":/projectexplorer/images/settingscategory_cpp.png");
|
||||
setWidgetCreator([] { return new CppCodeModelSettingsWidget; });
|
||||
setWidgetCreator([] { return new CppCodeModelSettingsWidget(codeModelSettings()->data()); });
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user