forked from qt-creator/qt-creator
ClangTools: Preselect current diagnostic config
...in ClangDiagnosticConfigsWidget when clicking on the "Manage..." button. This allows to inspect the current diagnostic configuration without further interaction steps. Change-Id: I732445b33f4f194c9b9b60e184d970420ab55ec8 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
@@ -39,34 +39,6 @@
|
||||
|
||||
namespace CppTools {
|
||||
|
||||
static void connectToClangDiagnosticConfigsDialog(QPushButton *button)
|
||||
{
|
||||
QObject::connect(button, &QPushButton::clicked, []() {
|
||||
ClangDiagnosticConfigsWidget *widget = new ClangDiagnosticConfigsWidget;
|
||||
widget->layout()->setMargin(0);
|
||||
QDialog dialog;
|
||||
dialog.setWindowTitle(widget->tr("Diagnostic Configurations"));
|
||||
dialog.setLayout(new QVBoxLayout);
|
||||
dialog.layout()->addWidget(widget);
|
||||
auto *buttonsBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
dialog.layout()->addWidget(buttonsBox);
|
||||
QObject::connect(buttonsBox, &QDialogButtonBox::accepted, &dialog, &QDialog::accept);
|
||||
QObject::connect(buttonsBox, &QDialogButtonBox::rejected, &dialog, &QDialog::reject);
|
||||
|
||||
QObject::connect(&dialog, &QDialog::accepted, [widget]() {
|
||||
QSharedPointer<CppCodeModelSettings> settings = codeModelSettings();
|
||||
const ClangDiagnosticConfigs oldDiagnosticConfigs
|
||||
= settings->clangCustomDiagnosticConfigs();
|
||||
const ClangDiagnosticConfigs currentDiagnosticConfigs = widget->customConfigs();
|
||||
if (oldDiagnosticConfigs != currentDiagnosticConfigs) {
|
||||
settings->setClangCustomDiagnosticConfigs(currentDiagnosticConfigs);
|
||||
settings->toSettings(Core::ICore::settings());
|
||||
}
|
||||
});
|
||||
dialog.exec();
|
||||
});
|
||||
}
|
||||
|
||||
ClangDiagnosticConfigsSelectionWidget::ClangDiagnosticConfigsSelectionWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, m_label(new QLabel(tr("Diagnostic Configuration:"), this))
|
||||
@@ -139,4 +111,32 @@ void ClangDiagnosticConfigsSelectionWidget::showLabel(bool show)
|
||||
m_label->setVisible(show);
|
||||
}
|
||||
|
||||
void ClangDiagnosticConfigsSelectionWidget::connectToClangDiagnosticConfigsDialog(QPushButton *button)
|
||||
{
|
||||
connect(button, &QPushButton::clicked, [this]() {
|
||||
ClangDiagnosticConfigsWidget *widget = new ClangDiagnosticConfigsWidget(currentConfigId());
|
||||
widget->layout()->setMargin(0);
|
||||
QDialog dialog;
|
||||
dialog.setWindowTitle(widget->tr("Diagnostic Configurations"));
|
||||
dialog.setLayout(new QVBoxLayout);
|
||||
dialog.layout()->addWidget(widget);
|
||||
auto *buttonsBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
dialog.layout()->addWidget(buttonsBox);
|
||||
connect(buttonsBox, &QDialogButtonBox::accepted, &dialog, &QDialog::accept);
|
||||
connect(buttonsBox, &QDialogButtonBox::rejected, &dialog, &QDialog::reject);
|
||||
|
||||
connect(&dialog, &QDialog::accepted, [widget]() {
|
||||
QSharedPointer<CppCodeModelSettings> settings = codeModelSettings();
|
||||
const ClangDiagnosticConfigs oldDiagnosticConfigs
|
||||
= settings->clangCustomDiagnosticConfigs();
|
||||
const ClangDiagnosticConfigs currentDiagnosticConfigs = widget->customConfigs();
|
||||
if (oldDiagnosticConfigs != currentDiagnosticConfigs) {
|
||||
settings->setClangCustomDiagnosticConfigs(currentDiagnosticConfigs);
|
||||
settings->toSettings(Core::ICore::settings());
|
||||
}
|
||||
});
|
||||
dialog.exec();
|
||||
});
|
||||
}
|
||||
|
||||
} // CppTools namespace
|
||||
|
||||
Reference in New Issue
Block a user