summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodemodelsettingspage.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-11-10 16:54:53 +0100
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-11-11 15:14:56 +0000
commitd8f119c8a222188556bf63e7adbef24c9ca3fe7f (patch)
treef6d606959297dc186910ad040f3a021dff8c20b7 /src/plugins/cpptools/cppcodemodelsettingspage.cpp
parent72785e3a11bea85f09a76084813c890f5d26f9d0 (diff)
downloadqt-creator-d8f119c8a222188556bf63e7adbef24c9ca3fe7f.tar.gz
Clang: Allow to provide extra command line options
This can be used to experiment with clang options that e.g. affect diagnostics. Changes take effect on editor re-open. Change-Id: Ie46d0ff085a3700a748dbcf4b94b93b0bf9c4642 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com> Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Diffstat (limited to 'src/plugins/cpptools/cppcodemodelsettingspage.cpp')
-rw-r--r--src/plugins/cpptools/cppcodemodelsettingspage.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.cpp b/src/plugins/cpptools/cppcodemodelsettingspage.cpp
index e59e0d1dbb..f3295e776b 100644
--- a/src/plugins/cpptools/cppcodemodelsettingspage.cpp
+++ b/src/plugins/cpptools/cppcodemodelsettingspage.cpp
@@ -46,7 +46,11 @@ CppCodeModelSettingsWidget::CppCodeModelSettingsWidget(QWidget *parent)
{
m_ui->setupUi(this);
- m_ui->theGroupBox->setVisible(true);
+ m_ui->clangSettingsGroupBox->setVisible(true);
+ connect(m_ui->clangOptionsResetButton, &QPushButton::clicked, [this]() {
+ const QString options = m_settings->defaultExtraClangOptions().join(QLatin1Char('\n'));
+ m_ui->clangOptionsToAppendTextEdit->document()->setPlainText(options);
+ });
}
CppCodeModelSettingsWidget::~CppCodeModelSettingsWidget()
@@ -96,8 +100,11 @@ void CppCodeModelSettingsWidget::setupClangCodeModelWidgets() const
isClangActive = isClangCodeModelActive(*m_settings.data());
m_ui->activateClangCodeModelPluginHint->setVisible(!isClangAvailable);
- m_ui->useClangCheckBox->setEnabled(isClangAvailable);
- m_ui->useClangCheckBox->setChecked(isClangActive);
+ m_ui->clangSettingsGroupBox->setEnabled(isClangAvailable);
+ m_ui->clangSettingsGroupBox->setChecked(isClangActive);
+
+ const QString extraClangOptions = m_settings->extraClangOptions().join(QLatin1Char('\n'));
+ m_ui->clangOptionsToAppendTextEdit->document()->setPlainText(extraClangOptions);
}
bool CppCodeModelSettingsWidget::applyClangCodeModelWidgetsToSettings() const
@@ -106,13 +113,18 @@ bool CppCodeModelSettingsWidget::applyClangCodeModelWidgetsToSettings() const
// Until then, ensure that the settings are set uniformly for all the mime types
// to avoid surprises.
- const QString activeCodeModelId = m_ui->useClangCheckBox->isChecked()
+ const QString activeCodeModelId = m_ui->clangSettingsGroupBox->isChecked()
? QLatin1String("ClangCodeMode.ClangCodeMode")
: QLatin1String("CppTools.BuiltinCodeModel");
foreach (const QString &mimeType, m_settings->supportedMimeTypes())
m_settings->setModelManagerSupportIdForMimeType(mimeType, activeCodeModelId);
+ const QString clangOptionsText = m_ui->clangOptionsToAppendTextEdit->document()->toPlainText();
+ const QStringList extraClangOptions = clangOptionsText.split(QLatin1Char('\n'),
+ QString::SkipEmptyParts);
+ m_settings->setExtraClangOptions(extraClangOptions);
+
return true;
}