ClangFormat: Fix settings checkboxes disappearance

- Fixed settings checkboxes disappearance after open a project
- Fixed impossibility to save settings

Task-number: QTCREATORBUG-26948
Change-Id: Ia73a61bf56b99adea9ed45c9d656860b185a3d7e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Artem Sokolovskii
2022-03-17 12:01:17 +01:00
parent 81f33072b9
commit bbc44cfb90
15 changed files with 64 additions and 33 deletions

View File

@@ -131,14 +131,13 @@ ClangFormatConfigWidget::ClangFormatConfigWidget(ProjectExplorer::Project *proje
initChecksAndPreview();
m_ui->applyButton->show();
if (m_project) {
m_ui->applyButton->show();
hideGlobalCheckboxes();
m_ui->fallbackConfig->hide();
m_ui->overrideDefault->setChecked(
m_project->namedSettings(Constants::OVERRIDE_FILE_ID).toBool());
} else {
m_ui->applyButton->hide();
showGlobalCheckboxes();
m_ui->overrideDefault->setChecked(ClangFormatSettings::instance().overrideDefaultFile());
m_ui->overrideDefault->setToolTip(
@@ -179,12 +178,13 @@ void ClangFormatConfigWidget::initChecksAndPreview()
m_preview->textDocument()->setSyntaxHighlighter(new CppEditor::CppHighlighter);
Utils::FilePath fileName;
connect(m_ui->applyButton, &QPushButton::clicked, this, &ClangFormatConfigWidget::apply);
if (m_project) {
connect(m_ui->applyButton, &QPushButton::clicked, this, &ClangFormatConfigWidget::apply);
fileName = m_project->projectFilePath().pathAppended("snippet.cpp");
} else {
fileName = Core::ICore::userResourcePath("snippet.cpp");
}
m_preview->textDocument()->indenter()->setFileName(fileName);
}

View File

@@ -84,11 +84,10 @@ public:
return new ClangFormatIndenter(doc);
}
std::pair<CppEditor::CppCodeStyleWidget *, QString> additionalTab(QWidget *parent) const override
std::pair<CppEditor::CppCodeStyleWidget *, QString> additionalTab(
ProjectExplorer::Project *project, QWidget *parent) const override
{
if (!parent)
return {new ClangFormatConfigWidget(), tr("ClangFormat")};
return {new ClangFormatConfigWidget(SessionManager::startupProject()), tr("ClangFormat")};
return {new ClangFormatConfigWidget(project, parent), tr("ClangFormat")};
}
};