CppEditor: Simplify CppCodeModelSettings setup

Change-Id: Ie6849caf8ded2c0901a9d2daeda6a1f81b68ed72
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2024-01-19 16:04:58 +01:00
parent 628560a60e
commit a6f57dc25e
8 changed files with 26 additions and 23 deletions

View File

@@ -150,7 +150,7 @@ BuiltinEditorDocumentProcessor::BuiltinEditorDocumentProcessor(TextEditor::TextD
{ {
using namespace Internal; using namespace Internal;
const CppCodeModelSettings *cms = CppEditorPlugin::instance()->codeModelSettings(); const CppCodeModelSettings *cms = &cppCodeModelSettings();
BaseEditorDocumentParser::Configuration config = m_parser->configuration(); BaseEditorDocumentParser::Configuration config = m_parser->configuration();
config.usePrecompiledHeaders = cms->pchUsage() != CppCodeModelSettings::PchUse_None; config.usePrecompiledHeaders = cms->pchUsage() != CppCodeModelSettings::PchUse_None;

View File

@@ -68,6 +68,11 @@ static FilePath fallbackClangdFilePath()
return Environment::systemEnvironment().searchInPath("clangd"); return Environment::systemEnvironment().searchInPath("clangd");
} }
CppCodeModelSettings::CppCodeModelSettings()
{
fromSettings(Core::ICore::settings());
}
void CppCodeModelSettings::fromSettings(QtcSettings *s) void CppCodeModelSettings::fromSettings(QtcSettings *s)
{ {
s->beginGroup(Constants::CPPEDITOR_SETTINGSGROUP); s->beginGroup(Constants::CPPEDITOR_SETTINGSGROUP);
@@ -594,4 +599,10 @@ int ClangdSettings::Data::defaultCompletionResults()
return ok ? userValue : 100; return ok ? userValue : 100;
} }
CppCodeModelSettings &cppCodeModelSettings()
{
static CppCodeModelSettings theCppCodeModelSettings;
return theCppCodeModelSettings;
}
} // namespace CppEditor } // namespace CppEditor

View File

@@ -31,6 +31,8 @@ public:
}; };
public: public:
CppCodeModelSettings();
void fromSettings(Utils::QtcSettings *s); void fromSettings(Utils::QtcSettings *s);
void toSettings(Utils::QtcSettings *s); void toSettings(Utils::QtcSettings *s);
@@ -212,4 +214,6 @@ private:
bool m_blockIndexing = false; bool m_blockIndexing = false;
}; };
CppCodeModelSettings &cppCodeModelSettings();
} // namespace CppEditor } // namespace CppEditor

View File

@@ -46,7 +46,7 @@ namespace CppEditor::Internal {
class CppCodeModelSettingsWidget final : public Core::IOptionsPageWidget class CppCodeModelSettingsWidget final : public Core::IOptionsPageWidget
{ {
public: public:
CppCodeModelSettingsWidget(CppCodeModelSettings *s); CppCodeModelSettingsWidget();
private: private:
void apply() final; void apply() final;
@@ -63,8 +63,8 @@ private:
QPlainTextEdit *m_ignorePatternTextEdit; QPlainTextEdit *m_ignorePatternTextEdit;
}; };
CppCodeModelSettingsWidget::CppCodeModelSettingsWidget(CppCodeModelSettings *s) CppCodeModelSettingsWidget::CppCodeModelSettingsWidget()
: m_settings(s) : m_settings(&cppCodeModelSettings())
{ {
m_interpretAmbiguousHeadersAsCHeaders m_interpretAmbiguousHeadersAsCHeaders
= new QCheckBox(Tr::tr("Interpret ambiguous headers as C headers")); = new QCheckBox(Tr::tr("Interpret ambiguous headers as C headers"));
@@ -184,14 +184,14 @@ bool CppCodeModelSettingsWidget::applyGeneralWidgetsToSettings() const
return settingsChanged; return settingsChanged;
} }
CppCodeModelSettingsPage::CppCodeModelSettingsPage(CppCodeModelSettings *settings) CppCodeModelSettingsPage::CppCodeModelSettingsPage()
{ {
setId(Constants::CPP_CODE_MODEL_SETTINGS_ID); setId(Constants::CPP_CODE_MODEL_SETTINGS_ID);
setDisplayName(Tr::tr("Code Model")); setDisplayName(Tr::tr("Code Model"));
setCategory(Constants::CPP_SETTINGS_CATEGORY); setCategory(Constants::CPP_SETTINGS_CATEGORY);
setDisplayCategory(Tr::tr("C++")); setDisplayCategory(Tr::tr("C++"));
setCategoryIconPath(":/projectexplorer/images/settingscategory_cpp.png"); setCategoryIconPath(":/projectexplorer/images/settingscategory_cpp.png");
setWidgetCreator([settings] { return new CppCodeModelSettingsWidget(settings); }); setWidgetCreator([] { return new CppCodeModelSettingsWidget; });
} }
class ClangdSettingsWidget::Private class ClangdSettingsWidget::Private

View File

@@ -12,7 +12,7 @@ namespace CppEditor::Internal {
class CppCodeModelSettingsPage final : public Core::IOptionsPage class CppCodeModelSettingsPage final : public Core::IOptionsPage
{ {
public: public:
explicit CppCodeModelSettingsPage(CppCodeModelSettings *settings); CppCodeModelSettingsPage();
}; };
class ClangdSettingsWidget : public QWidget class ClangdSettingsWidget : public QWidget

View File

@@ -179,11 +179,10 @@ public:
CppEditorFactory m_cppEditorFactory; CppEditorFactory m_cppEditorFactory;
CppModelManager modelManager; CppModelManager modelManager;
CppCodeModelSettings m_codeModelSettings;
CppToolsSettings settings; CppToolsSettings settings;
CppFileSettings m_fileSettings; CppFileSettings m_fileSettings;
CppFileSettingsPage m_cppFileSettingsPage{&m_fileSettings}; CppFileSettingsPage m_cppFileSettingsPage{&m_fileSettings};
CppCodeModelSettingsPage m_cppCodeModelSettingsPage{&m_codeModelSettings}; CppCodeModelSettingsPage m_cppCodeModelSettingsPage;
CppCodeStyleSettingsPage m_cppCodeStyleSettingsPage; CppCodeStyleSettingsPage m_cppCodeStyleSettingsPage;
CppProjectUpdaterFactory m_cppProjectUpdaterFactory; CppProjectUpdaterFactory m_cppProjectUpdaterFactory;
}; };
@@ -212,7 +211,6 @@ CppEditorPlugin *CppEditorPlugin::instance()
void CppEditorPlugin::initialize() void CppEditorPlugin::initialize()
{ {
d = new CppEditorPluginPrivate; d = new CppEditorPluginPrivate;
d->m_codeModelSettings.fromSettings(ICore::settings());
CppModelManager::registerJsExtension(); CppModelManager::registerJsExtension();
@@ -621,11 +619,6 @@ bool CppEditorPlugin::usePragmaOnce(Project *project)
return fileSettings(project).headerPragmaOnce; return fileSettings(project).headerPragmaOnce;
} }
CppCodeModelSettings *CppEditorPlugin::codeModelSettings()
{
return &d->m_codeModelSettings;
}
CppFileSettings CppEditorPlugin::fileSettings(Project *project) CppFileSettings CppEditorPlugin::fileSettings(Project *project)
{ {
if (!project) if (!project)

View File

@@ -8,10 +8,7 @@
namespace ProjectExplorer { class Project; } namespace ProjectExplorer { class Project; }
namespace Utils { class FilePath; } namespace Utils { class FilePath; }
namespace CppEditor { namespace CppEditor::Internal {
class CppCodeModelSettings;
namespace Internal {
class CppEditorPluginPrivate; class CppEditorPluginPrivate;
class CppFileSettings; class CppFileSettings;
@@ -39,7 +36,6 @@ public:
void renameSymbolUnderCursor(); void renameSymbolUnderCursor();
void switchDeclarationDefinition(); void switchDeclarationDefinition();
CppCodeModelSettings *codeModelSettings();
static CppFileSettings fileSettings(ProjectExplorer::Project *project); static CppFileSettings fileSettings(ProjectExplorer::Project *project);
#ifdef WITH_TESTS #ifdef WITH_TESTS
static void setGlobalFileSettings(const CppFileSettings &settings); static void setGlobalFileSettings(const CppFileSettings &settings);
@@ -64,5 +60,4 @@ private:
CppEditorPluginPrivate *d = nullptr; CppEditorPluginPrivate *d = nullptr;
}; };
} // namespace Internal } // namespace CppEditor::Internal
} // namespace CppEditor

View File

@@ -338,7 +338,7 @@ CppCompletionAssistProcessor *getCppCompletionAssistProcessor()
CppCodeModelSettings *codeModelSettings() CppCodeModelSettings *codeModelSettings()
{ {
return Internal::CppEditorPlugin::instance()->codeModelSettings(); return &cppCodeModelSettings();
} }
int indexerFileSizeLimitInMb() int indexerFileSizeLimitInMb()