ClangFormat: Grey out Clang-Format Style config when not overridden

Add feature to grey out the Clang-Format Style configuration widget
after unchecking the 'Override' checkbox.

Change-Id: I94bbb1f4436f3caeaed55d49582211257e480d0d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Artem Sokolovskii
2023-04-04 14:28:27 +02:00
parent 42c653b53c
commit 028686b419
10 changed files with 46 additions and 12 deletions

View File

@@ -9,6 +9,7 @@
#include "clangformatutils.h"
#include <projectexplorer/project.h>
#include <texteditor/icodestylepreferences.h>
#include <utils/layoutbuilder.h>
@@ -24,10 +25,11 @@ using namespace Utils;
namespace ClangFormat {
ClangFormatGlobalConfigWidget::ClangFormatGlobalConfigWidget(ProjectExplorer::Project *project,
QWidget *parent)
ClangFormatGlobalConfigWidget::ClangFormatGlobalConfigWidget(
TextEditor::ICodeStylePreferences *codeStyle, ProjectExplorer::Project *project, QWidget *parent)
: CppCodeStyleWidget(parent)
, m_project(project)
, m_codeStyle(codeStyle)
{
resize(489, 305);
@@ -164,10 +166,19 @@ void ClangFormatGlobalConfigWidget::initOverrideCheckBox()
Tr::tr("Override Clang Format configuration file with the chosen configuration."));
m_overrideDefault->setChecked(getProjectOverriddenSettings(m_project));
m_codeStyle->currentPreferences()->setTemporarilyReadOnly(!m_overrideDefault->isChecked());
connect(m_overrideDefault, &QCheckBox::toggled, this, [this](bool checked) {
if (m_project)
m_project->setNamedSettings(Constants::OVERRIDE_FILE_ID, checked);
else {
m_codeStyle->currentPreferences()->setTemporarilyReadOnly(!checked);
emit m_codeStyle->currentPreferencesChanged(m_codeStyle->currentPreferences());
}
});
connect(m_codeStyle, &TextEditor::ICodeStylePreferences::currentPreferencesChanged, this, [this] {
m_codeStyle->currentPreferences()->setTemporarilyReadOnly(!m_overrideDefault->isChecked());
});
}