forked from qt-creator/qt-creator
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:
@@ -89,7 +89,8 @@ ClangFormatConfigWidget::ClangFormatConfigWidget(TextEditor::ICodeStylePreferenc
|
||||
|
||||
d->checksScrollArea->setWidget(d->checksWidget);
|
||||
d->checksScrollArea->setWidgetResizable(true);
|
||||
d->checksWidget->setEnabled(!codeStyle->isReadOnly());
|
||||
d->checksWidget->setEnabled(!codeStyle->isReadOnly()
|
||||
&& !codeStyle->isTemporarilyReadOnly());
|
||||
|
||||
FilePath fileName;
|
||||
if (d->project)
|
||||
@@ -140,7 +141,8 @@ void ClangFormatConfigWidget::slotCodeStyleChanged(
|
||||
d->config->setIsReadOnly(codeStyle->isReadOnly());
|
||||
d->style = d->config->style();
|
||||
|
||||
d->checksWidget->setEnabled(!codeStyle->isReadOnly());
|
||||
d->checksWidget->setEnabled(!codeStyle->isReadOnly()
|
||||
&& !codeStyle->isTemporarilyReadOnly());
|
||||
|
||||
fillTable();
|
||||
updatePreview();
|
||||
|
||||
@@ -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());
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ class QLabel;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace ProjectExplorer { class Project; }
|
||||
namespace TextEditor { class ICodeStylePreferences; }
|
||||
|
||||
namespace ClangFormat {
|
||||
|
||||
@@ -22,7 +23,8 @@ class ClangFormatGlobalConfigWidget : public CppEditor::CppCodeStyleWidget
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ClangFormatGlobalConfigWidget(ProjectExplorer::Project *project = nullptr,
|
||||
explicit ClangFormatGlobalConfigWidget(TextEditor::ICodeStylePreferences *codeStyle,
|
||||
ProjectExplorer::Project *project = nullptr,
|
||||
QWidget *parent = nullptr);
|
||||
~ClangFormatGlobalConfigWidget() override;
|
||||
void apply() override;
|
||||
@@ -36,6 +38,7 @@ private:
|
||||
bool projectClangFormatFileExists();
|
||||
|
||||
ProjectExplorer::Project *m_project;
|
||||
TextEditor::ICodeStylePreferences *m_codeStyle;
|
||||
|
||||
QLabel *m_projectHasClangFormat;
|
||||
QLabel *m_formattingModeLabel;
|
||||
|
||||
@@ -51,9 +51,9 @@ public:
|
||||
}
|
||||
|
||||
CodeStyleEditorWidget *createAdditionalGlobalSettings(
|
||||
Project *project, QWidget *parent) override
|
||||
ICodeStylePreferences *codeStyle, Project *project, QWidget *parent) override
|
||||
{
|
||||
return new ClangFormatGlobalConfigWidget(project, parent);
|
||||
return new ClangFormatGlobalConfigWidget(codeStyle, project, parent);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user