CppTools: Split diagnostic settings and selection

Now selection is only consists of combobox and
a "Manage" button to diagnostic configurations.
Diagnostic configurations are moved to the modal dialog
which is shown by clicking the mentioned "Manage" button.

Change-Id: I607fb923c97e8730448548708f3aaf32ce1983c8
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-05-04 15:58:41 +02:00
parent 6b70c27e3b
commit 3737b6a124
14 changed files with 364 additions and 148 deletions

View File

@@ -37,6 +37,7 @@
QT_BEGIN_NAMESPACE
class QListWidgetItem;
class QPushButton;
class QRadioButton;
QT_END_NAMESPACE
@@ -54,26 +55,18 @@ class CPPTOOLS_EXPORT ClangDiagnosticConfigsWidget : public QWidget
Q_OBJECT
public:
explicit ClangDiagnosticConfigsWidget(
const ClangDiagnosticConfigsModel &diagnosticConfigsModel = ClangDiagnosticConfigsModel(),
const Core::Id &configToSelect = Core::Id(),
QWidget *parent = nullptr);
explicit ClangDiagnosticConfigsWidget(QWidget *parent = nullptr);
~ClangDiagnosticConfigsWidget() override;
Core::Id currentConfigId() const;
ClangDiagnosticConfigs customConfigs() const;
void refresh(const ClangDiagnosticConfigsModel &diagnosticConfigsModel,
const Core::Id &configToSelect);
signals:
void currentConfigChanged(const Core::Id &currentConfigId);
void customConfigsChanged(const CppTools::ClangDiagnosticConfigs &customConfigs);
private:
void setupTabs();
void onCurrentConfigChanged(int);
void onCurrentConfigChanged(int index);
void onCopyButtonClicked();
void onRemoveButtonClicked();
void onClangTidyModeChanged(int index);
@@ -93,7 +86,8 @@ private:
void updateConfig(const CppTools::ClangDiagnosticConfig &config);
bool isConfigChooserEmpty() const;
const ClangDiagnosticConfig &currentConfig() const;
const ClangDiagnosticConfig &selectedConfig() const;
Core::Id selectedConfigId() const;
void setDiagnosticOptions(const QString &options);
void updateValidityWidgets(const QString &errorMessage);
@@ -121,6 +115,10 @@ private:
std::unique_ptr<CppTools::Ui::TidyChecks> m_tidyChecks;
QWidget *m_tidyChecksWidget = nullptr;
int m_selectedConfigIndex = 0;
};
CPPTOOLS_EXPORT void connectToClangDiagnosticConfigsDialog(QPushButton *button);
} // CppTools namespace