ClangTools: Polish ClangDiagnosticConfigsWidget

* Improve distinction between built-in and custom configs by introducing
  corresponding parent nodes
* Add button to rename a config
* Make closing the dialog apply the selected config.
* Adapt also the related ClangDiagnosticConfigsSelectionWidget showing a
  combo box of the diagnostic configs and a "Manage..." button: Remove
  the combo box and show the current config as the button text.

Change-Id: Ic015df37f2532f84bd7da6cd20bfce07799a97b8
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Nikolai Kosjar
2019-10-01 16:53:01 +02:00
parent 0a15b001dd
commit 3090e744c2
21 changed files with 312 additions and 335 deletions

View File

@@ -26,6 +26,7 @@
#include "clangtoolssettings.h"
#include "clangtoolsconstants.h"
#include "clangtoolsutils.h"
#include <coreplugin/icore.h>
#include <cpptools/clangdiagnosticconfig.h>
@@ -74,9 +75,11 @@ void RunSettings::toMap(QVariantMap &map, const QString &prefix) const
map.insert(prefix + buildBeforeAnalysisKey, m_buildBeforeAnalysis);
}
void RunSettings::resetDiagnosticConfigId()
Core::Id RunSettings::diagnosticConfigId() const
{
m_diagnosticConfigId = defaultDiagnosticId();
if (!diagnosticConfigsModel().hasConfigWithId(m_diagnosticConfigId))
return defaultDiagnosticId();
return m_diagnosticConfigId;
}
ClangToolsSettings::ClangToolsSettings()
@@ -148,7 +151,7 @@ void ClangToolsSettings::readSettings()
write = true;
} else {
QVariantMap defaults;
defaults.insert(diagnosticConfigIdKey, m_runSettings.diagnosticConfigId().toSetting());
defaults.insert(diagnosticConfigIdKey, defaultDiagnosticId().toSetting());
defaults.insert(parallelJobsKey, m_runSettings.parallelJobs());
defaults.insert(buildBeforeAnalysisKey, m_runSettings.buildBeforeAnalysis());
map = defaults;