diff options
author | Leandro Melo <leandro.melo@nokia.com> | 2010-06-04 10:13:38 +0200 |
---|---|---|
committer | Leandro Melo <leandro.melo@nokia.com> | 2010-06-04 10:14:49 +0200 |
commit | 31748e7377fde6d1599c5c27200d746fc8f82a78 (patch) | |
tree | 8a2b671612c03a427a7ec8fe7c5914a64c46f3f0 /src/plugins/texteditor/generichighlighter/highlightersettings.cpp | |
parent | c2393df02332618c8cf6159d9d6f6a40041ced89 (diff) |
Generic highlighter: New option to specify ignored file patterns so the highlight popup does not show up.
Diffstat (limited to 'src/plugins/texteditor/generichighlighter/highlightersettings.cpp')
-rw-r--r-- | src/plugins/texteditor/generichighlighter/highlightersettings.cpp | 65 |
1 files changed, 61 insertions, 4 deletions
diff --git a/src/plugins/texteditor/generichighlighter/highlightersettings.cpp b/src/plugins/texteditor/generichighlighter/highlightersettings.cpp index e932a2ba5a..c4251d7f4a 100644 --- a/src/plugins/texteditor/generichighlighter/highlightersettings.cpp +++ b/src/plugins/texteditor/generichighlighter/highlightersettings.cpp @@ -32,10 +32,9 @@ #include <coreplugin/icore.h> #include <QtCore/QSettings> -#include <QtCore/QString> -#include <QtCore/QStringList> #include <QtCore/QLatin1String> - +#include <QtCore/QLatin1Char> +#include <QtCore/QDebug> #ifdef Q_OS_UNIX #include <QtCore/QDir> #include <QtCore/QProcess> @@ -94,6 +93,7 @@ namespace { static const QLatin1String kDefinitionFilesPath("DefinitionFilesPath"); static const QLatin1String kAlertWhenDefinitionIsNotFound("AlertWhenDefinitionsIsNotFound"); +static const QLatin1String kIgnoredFilesPatterns("IgnoredFilesPatterns"); static const QLatin1String kGroupPostfix("HighlighterSettings"); QString groupSpecifier(const QString &postFix, const QString &category) @@ -117,6 +117,7 @@ void HighlighterSettings::toSettings(const QString &category, QSettings *s) cons s->beginGroup(group); s->setValue(kDefinitionFilesPath, m_definitionFilesPath); s->setValue(kAlertWhenDefinitionIsNotFound, m_alertWhenNoDefinition); + s->setValue(kIgnoredFilesPatterns, ignoredFilesPatterns()); s->endGroup(); } @@ -129,11 +130,67 @@ void HighlighterSettings::fromSettings(const QString &category, QSettings *s) else m_definitionFilesPath = s->value(kDefinitionFilesPath, QString()).toString(); m_alertWhenNoDefinition = s->value(kAlertWhenDefinitionIsNotFound, true).toBool(); + if (!s->contains(kIgnoredFilesPatterns)) + assignInitialIgnoredPatterns(); + else + setIgnoredFilesPatterns(s->value(kIgnoredFilesPatterns, QString()).toString()); s->endGroup(); } +void HighlighterSettings::setIgnoredFilesPatterns(const QString &patterns) +{ + setExpressionsFromList(patterns.split(QLatin1Char(','), QString::SkipEmptyParts)); +} + +QString HighlighterSettings::ignoredFilesPatterns() const +{ + return listFromExpressions().join(QLatin1String(",")); +} + +void HighlighterSettings::assignInitialIgnoredPatterns() +{ + QStringList patterns; + patterns << QLatin1String("*.txt") + << QLatin1String("LICENSE*") + << QLatin1String("README") + << QLatin1String("INSTALL") + << QLatin1String("COPYING") + << QLatin1String("NEWS"); + setExpressionsFromList(patterns); +} + +bool HighlighterSettings::isIgnoredFilePattern(const QString &fileName) const +{ + foreach (const QRegExp ®Exp, m_ignoredFiles) + if (regExp.indexIn(fileName) != -1) + return true; + + return false; +} + bool HighlighterSettings::equals(const HighlighterSettings &highlighterSettings) const { return m_definitionFilesPath == highlighterSettings.m_definitionFilesPath && - m_alertWhenNoDefinition == highlighterSettings.m_alertWhenNoDefinition; + m_alertWhenNoDefinition == highlighterSettings.m_alertWhenNoDefinition && + m_ignoredFiles == highlighterSettings.m_ignoredFiles; +} + +void HighlighterSettings::setExpressionsFromList(const QStringList &patterns) +{ + m_ignoredFiles.clear(); + QRegExp regExp; + regExp.setCaseSensitivity(Qt::CaseInsensitive); + regExp.setPatternSyntax(QRegExp::Wildcard); + foreach (const QString &s, patterns) { + regExp.setPattern(s); + m_ignoredFiles.append(regExp); + } +} + +QStringList HighlighterSettings::listFromExpressions() const +{ + QStringList patterns; + foreach (const QRegExp ®Exp, m_ignoredFiles) + patterns.append(regExp.pattern()); + return patterns; } |