ClangFormat: Fix clangformat ignores configuration file

Fixes: QTCREATORBUG-29145
Change-Id: I6950151aaab9df51cfdd0af0ad9cf3c7b35c0636
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Artem Sokolovskii
2023-05-11 14:52:51 +02:00
parent c6a69023c9
commit 948dc6b37e
3 changed files with 9 additions and 8 deletions

View File

@@ -41,6 +41,7 @@ ClangFormatGlobalConfigWidget::ClangFormatGlobalConfigWidget(
m_overrideDefault = new QCheckBox(Tr::tr("Override Clang Format configuration file"));
m_useGlobalSettings = new QCheckBox(Tr::tr("Use global settings"));
m_useGlobalSettings->hide();
m_overrideDefaultFile = ClangFormatSettings::instance().overrideDefaultFile();
using namespace Layouting;
@@ -180,10 +181,12 @@ void ClangFormatGlobalConfigWidget::initOverrideCheckBox()
setTemporarilyReadOnly();
connect(m_overrideDefault, &QCheckBox::toggled, this, [this, setTemporarilyReadOnly](bool checked) {
if (m_project)
if (m_project) {
m_project->setNamedSettings(Constants::OVERRIDE_FILE_ID, checked);
else
} else {
ClangFormatSettings::instance().setOverrideDefaultFile(checked);
setTemporarilyReadOnly();
}
});
connect(m_codeStyle,
@@ -202,12 +205,14 @@ void ClangFormatGlobalConfigWidget::apply()
settings.setMode(
static_cast<ClangFormatSettings::Mode>(m_indentingOrFormatting->currentIndex()));
settings.setOverrideDefaultFile(m_overrideDefault->isChecked());
m_overrideDefaultFile = m_overrideDefault->isChecked();
}
settings.write();
}
void ClangFormatGlobalConfigWidget::finish()
{
ClangFormatSettings::instance().setOverrideDefaultFile(m_overrideDefaultFile);
m_codeStyle->currentPreferences()->setTemporarilyReadOnly(
!ClangFormatSettings::instance().overrideDefaultFile());
}

View File

@@ -43,6 +43,7 @@ private:
ProjectExplorer::Project *m_project;
TextEditor::ICodeStylePreferences *m_codeStyle;
Utils::Guard m_ignoreChanges;
bool m_overrideDefaultFile;
QLabel *m_projectHasClangFormat;
QLabel *m_formattingModeLabel;

View File

@@ -214,12 +214,7 @@ bool getCurrentOverriddenSettings(const Utils::FilePath &filePath)
filePath);
return getProjectUseGlobalSettings(project)
? !TextEditor::TextEditorSettings::codeStyle("Cpp")
->currentPreferences()
->isTemporarilyReadOnly()
&& !TextEditor::TextEditorSettings::codeStyle("Cpp")
->currentPreferences()
->isAdditionalTabDisabled()
? ClangFormatSettings::instance().overrideDefaultFile()
: getProjectOverriddenSettings(project);
}