DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
daq::QTUtils::FilterTextEdit Class Reference

#include <FilterTextEdit.hpp>

Inheritance diagram for daq::QTUtils::FilterTextEdit:
[legend]
Collaboration diagram for daq::QTUtils::FilterTextEdit:
[legend]

Public Member Functions

 FilterTextEdit (QWidget *parent)
 
virtual ~FilterTextEdit ()
 
void append (const QString &text)
 
void setPlainText (const QString &text)
 
void setFilter (const QString &filter)
 
void setInversion (bool invert)
 

Private Slots

void clear ()
 

Private Member Functions

void filterAndSet (const QString &text)
 

Private Attributes

QString m_filter
 
QString m_original
 
bool m_invert
 the 'original' text.
 

Detailed Description

Allows filtering of text in a text edit. This will keep track of the 'original' text so that changes to the filter will be redone on that text. Example:

fte.setPlainText("This is a first line\nThis is a second line");
void setPlainText(const QString &text)

It now shows:

This is a first line
This is a second line

One can for example filter on the word 'first'

fte.setFilter("first");
void setFilter(const QString &filter)

It now shows:

This is a first line

If another filter is set the 'original' text is re-filtered:

fte.setFilter("second");

It now shows:

This is a second line

Definition at line 46 of file FilterTextEdit.hpp.

Constructor & Destructor Documentation

◆ FilterTextEdit()

daq::QTUtils::FilterTextEdit::FilterTextEdit ( QWidget * parent)
inline

Definition at line 49 of file FilterTextEdit.hpp.

49 :QTextEdit(parent),m_invert(false) {
50 ;
51 }
bool m_invert
the 'original' text.

◆ ~FilterTextEdit()

virtual daq::QTUtils::FilterTextEdit::~FilterTextEdit ( )
inlinevirtual

Definition at line 52 of file FilterTextEdit.hpp.

52 {
53 ;
54 }

Member Function Documentation

◆ append()

void daq::QTUtils::FilterTextEdit::append ( const QString & text)
inline

Definition at line 55 of file FilterTextEdit.hpp.

55 {
56 m_original.append(text);
57 if (text.contains(m_filter)) {
58 QTextEdit::append(text);
59 }
60 }

◆ clear

void daq::QTUtils::FilterTextEdit::clear ( )
inlineprivateslot

Definition at line 75 of file FilterTextEdit.hpp.

75 {
76 m_original = "";
77 QTextEdit::clear();
78 }

◆ filterAndSet()

void daq::QTUtils::FilterTextEdit::filterAndSet ( const QString & text)
inlineprivate

Definition at line 80 of file FilterTextEdit.hpp.

80 {
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 }

◆ setFilter()

void daq::QTUtils::FilterTextEdit::setFilter ( const QString & filter)
inline

Definition at line 66 of file FilterTextEdit.hpp.

66 {
67 m_filter= filter;
69 }
void filterAndSet(const QString &text)

◆ setInversion()

void daq::QTUtils::FilterTextEdit::setInversion ( bool invert)
inline

Definition at line 70 of file FilterTextEdit.hpp.

70 {
71 m_invert= invert;
72 }

◆ setPlainText()

void daq::QTUtils::FilterTextEdit::setPlainText ( const QString & text)
inline

Definition at line 61 of file FilterTextEdit.hpp.

61 {
62 m_original= text;
63 filterAndSet(text);
64 }

Member Data Documentation

◆ m_filter

QString daq::QTUtils::FilterTextEdit::m_filter
private

Definition at line 101 of file FilterTextEdit.hpp.

◆ m_invert

bool daq::QTUtils::FilterTextEdit::m_invert
private

the 'original' text.

Definition at line 103 of file FilterTextEdit.hpp.

◆ m_original

QString daq::QTUtils::FilterTextEdit::m_original
private

Definition at line 102 of file FilterTextEdit.hpp.


The documentation for this class was generated from the following file: