aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppeditor/cppcodemodelsettingspage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cppeditor/cppcodemodelsettingspage.cpp')
-rw-r--r--src/plugins/cppeditor/cppcodemodelsettingspage.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/plugins/cppeditor/cppcodemodelsettingspage.cpp b/src/plugins/cppeditor/cppcodemodelsettingspage.cpp
index 476a3dae5c1..6454215b4bb 100644
--- a/src/plugins/cppeditor/cppcodemodelsettingspage.cpp
+++ b/src/plugins/cppeditor/cppcodemodelsettingspage.cpp
@@ -31,6 +31,7 @@
#include <QTextStream>
#include <QVBoxLayout>
#include <QVersionNumber>
+#include <QTextBlock>
#include <limits>
@@ -54,6 +55,8 @@ private:
QCheckBox *m_useBuiltinPreprocessorCheckBox;
QCheckBox *m_skipIndexingBigFilesCheckBox;
QSpinBox *m_bigFilesLimitSpinBox;
+ QCheckBox *m_ignoreFilesCheckBox;
+ QPlainTextEdit *m_ignorePatternTextEdit;
};
CppCodeModelSettingsWidget::CppCodeModelSettingsWidget(CppCodeModelSettings *s)
@@ -70,6 +73,19 @@ CppCodeModelSettingsWidget::CppCodeModelSettingsWidget(CppCodeModelSettings *s)
m_bigFilesLimitSpinBox->setRange(1, 500);
m_bigFilesLimitSpinBox->setValue(m_settings->indexerFileSizeLimitInMb());
+ m_ignoreFilesCheckBox = new QCheckBox(tr("Ignore files"));
+ m_ignoreFilesCheckBox->setToolTip(tr(
+ "<html><head/><body><p>Ignore files that match these wildcard patterns, one wildcard per line.</p></body></html>"));
+
+ m_ignoreFilesCheckBox->setChecked(m_settings->ignoreFiles());
+ m_ignorePatternTextEdit = new QPlainTextEdit(m_settings->ignorePattern());
+ m_ignorePatternTextEdit->setToolTip(m_ignoreFilesCheckBox->toolTip());
+ m_ignorePatternTextEdit->setEnabled(m_ignoreFilesCheckBox->isChecked());
+
+ connect(m_ignoreFilesCheckBox, &QCheckBox::stateChanged, [this] {
+ m_ignorePatternTextEdit->setEnabled(m_ignoreFilesCheckBox->isChecked());
+ });
+
m_ignorePchCheckBox = new QCheckBox(tr("Ignore precompiled headers"));
m_ignorePchCheckBox->setToolTip(tr(
"<html><head/><body><p>When precompiled headers are not ignored, the parsing for code "
@@ -98,6 +114,7 @@ CppCodeModelSettingsWidget::CppCodeModelSettingsWidget(CppCodeModelSettings *s)
m_ignorePchCheckBox,
m_useBuiltinPreprocessorCheckBox,
Row { m_skipIndexingBigFilesCheckBox, m_bigFilesLimitSpinBox, st },
+ Row { Column { m_ignoreFilesCheckBox, st }, m_ignorePatternTextEdit },
}
},
st
@@ -132,6 +149,16 @@ bool CppCodeModelSettingsWidget::applyGeneralWidgetsToSettings() const
m_settings->setUseBuiltinPreprocessor(newUseBuiltinPreprocessor);
settingsChanged = true;
}
+ const bool ignoreFiles = m_ignoreFilesCheckBox->isChecked();
+ if (m_settings->ignoreFiles() != ignoreFiles) {
+ m_settings->setIgnoreFiles(ignoreFiles);
+ settingsChanged = true;
+ }
+ const QString ignorePattern = m_ignorePatternTextEdit->toPlainText();
+ if (m_settings->ignorePattern() != ignorePattern) {
+ m_settings->setIgnorePattern(ignorePattern);
+ settingsChanged = true;
+ }
const int newFileSizeLimit = m_bigFilesLimitSpinBox->value();
if (m_settings->indexerFileSizeLimitInMb() != newFileSizeLimit) {
m_settings->setIndexerFileSizeLimitInMb(newFileSizeLimit);