DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
highlighter.hpp
Go to the documentation of this file.
1#ifndef HIGHLIGHTER_H
2#define HIGHLIGHTER_H
3
4#include <QSyntaxHighlighter>
5
6#include <QHash>
7#include <QTextCharFormat>
8#include <QMutex>
9#include <QList>
10
11class QTextDocument;
12namespace daq{
13namespace QTUtils{
29class Highlighter : public QSyntaxHighlighter
30{
31 Q_OBJECT
32
33public:
34 Highlighter(QTextDocument *parent = 0);
41 void setRule(QRegExp r, QTextCharFormat f)
42 {
44 rule.pattern = r;
45 rule.format = f;
46 highlightingRules.append(rule);
47 cache.clear();
48
49 }
55 void highlightAll(const QString &txt,bool caseSensitivity)
56 {
57 highlightAllReg.setPattern(txt);
58 if(caseSensitivity)
59 highlightAllReg.setCaseSensitivity(Qt::CaseSensitive);
60 else
61 highlightAllReg.setCaseSensitivity(Qt::CaseInsensitive);
62 rehighlight();
63 }
64protected:
65 void highlightBlock(const QString &text);
66
67private:
72 {
73 QRegExp pattern;
74 QTextCharFormat format;
75 };
82 QVector<int> indexes;
83 QVector<int> lengths;
84 };
85 QVector<HighlightingRule> highlightingRules;
87 QMutex* mutex;
88 QHash<uint, QList<FormatCache> > cache;
89};
90
91}
92}
93#endif
QRegExp highlightAllReg
regexp containing text to highlight
QVector< HighlightingRule > highlightingRules
highlighting rules
void setRule(QRegExp r, QTextCharFormat f)
void highlightAll(const QString &txt, bool caseSensitivity)
QMutex * mutex
mutex to protect highlightBlock method
QHash< uint, QList< FormatCache > > cache
stores result of formatting for a given QString text (using uint qHash(QString) method)
void highlightBlock(const QString &text)
Highlighter(QTextDocument *parent=0)
ctor
Including ers headers.