DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
FilterTextEdit.hpp
Go to the documentation of this file.
1#ifndef FILTERTEXTEDIT_H
2#define FILTERTEXTEDIT_H
7#include <QTextEdit>
8#include <QRegExp>
9#include "ers/ers.hpp"
10namespace daq {
11namespace QTUtils {
12
46class FilterTextEdit: public QTextEdit {
47Q_OBJECT
48public:
49 FilterTextEdit(QWidget* parent):QTextEdit(parent),m_invert(false) {
50 ;
51 }
52 virtual ~FilterTextEdit() {
53 ;
54 }
55 void append(const QString& text) {
56 m_original.append(text);
57 if (text.contains(m_filter)) {
58 QTextEdit::append(text);
59 }
60 }
61 void setPlainText(const QString& text) {
62 m_original= text;
63 filterAndSet(text);
64 }
65
66 void setFilter(const QString& filter) {
67 m_filter= filter;
69 }
70 void setInversion(bool invert) {
71 m_invert= invert;
72 }
73
74private slots:
75 void clear(){
76 m_original = "";
77 QTextEdit::clear();
78 }
79private:
80 void filterAndSet(const QString &text) {
81 if (m_filter != "") {
82 QStringList strings= text.split("\n");
83 if (!m_invert) {
84 strings= strings.filter(m_filter);
85 } else {
86 QStringList result;
87 foreach(QString str, strings) {
88 if (!str.contains(m_filter)) {
89 result+= str;
90 }
91 }
92 strings = result;
93 }
94 QString filtered= strings.join("\n");
95 QTextEdit::setPlainText(filtered);
96 } else {
97 QTextEdit::setPlainText(text);
98 }
99 }
100
101 QString m_filter;
102 QString m_original;
103 bool m_invert;
104};
105}
106}
107#endif
108
void setFilter(const QString &filter)
bool m_invert
the 'original' text.
void filterAndSet(const QString &text)
void append(const QString &text)
void setPlainText(const QString &text)
Including ers headers.