ClangCodeModel: Switch off clangd persistently

... after failed machine suitability check.

Fixes: QTCREATORBUG-28441
Change-Id: Ic0fb956168204d8023ff96f92ae3fcd7cea8b0e9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Kandeler
2022-11-24 12:25:07 +01:00
parent 98a40b3690
commit ed06978830
3 changed files with 9 additions and 2 deletions

View File

@@ -127,7 +127,7 @@ static void checkSystemForClangdSuitability()
if (ClangdSettings::hardwareFulfillsRequirements()) if (ClangdSettings::hardwareFulfillsRequirements())
return; return;
ClangdSettings::setUseClangd(false); ClangdSettings::setUseClangdAndSave(false);
const QString warnStr = ClangModelManagerSupport::tr("The use of clangd for the C/C++ " const QString warnStr = ClangModelManagerSupport::tr("The use of clangd for the C/C++ "
"code model was disabled, because it is likely that its memory requirements " "code model was disabled, because it is likely that its memory requirements "
"would be higher than what your system can handle."); "would be higher than what your system can handle.");
@@ -148,7 +148,7 @@ static void checkSystemForClangdSuitability()
return label; return label;
}); });
info.addCustomButton(ClangModelManagerSupport::tr("Enable Anyway"), [clangdWarningSetting] { info.addCustomButton(ClangModelManagerSupport::tr("Enable Anyway"), [clangdWarningSetting] {
ClangdSettings::setUseClangd(true); ClangdSettings::setUseClangdAndSave(true);
Core::ICore::infoBar()->removeInfo(clangdWarningSetting); Core::ICore::infoBar()->removeInfo(clangdWarningSetting);
}); });
Core::ICore::infoBar()->addInfo(info); Core::ICore::infoBar()->addInfo(info);

View File

@@ -218,6 +218,12 @@ bool ClangdSettings::useClangd() const
void ClangdSettings::setUseClangd(bool use) { instance().m_data.useClangd = use; } void ClangdSettings::setUseClangd(bool use) { instance().m_data.useClangd = use; }
void ClangdSettings::setUseClangdAndSave(bool use)
{
setUseClangd(use);
instance().saveSettings();
}
bool ClangdSettings::hardwareFulfillsRequirements() bool ClangdSettings::hardwareFulfillsRequirements()
{ {
instance().m_data.haveCheckedHardwareReqirements = true; instance().m_data.haveCheckedHardwareReqirements = true;

View File

@@ -126,6 +126,7 @@ public:
static ClangdSettings &instance(); static ClangdSettings &instance();
bool useClangd() const; bool useClangd() const;
static void setUseClangd(bool use); static void setUseClangd(bool use);
static void setUseClangdAndSave(bool use);
static bool hardwareFulfillsRequirements(); static bool hardwareFulfillsRequirements();
static bool haveCheckedHardwareRequirements(); static bool haveCheckedHardwareRequirements();