HAL
v4.5.0-124-g47ab54673
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
searchable_label.h
Go to the documentation of this file.
1
// MIT License
2
//
3
// Copyright (c) 2019 Ruhr University Bochum, Chair for Embedded Security. All Rights reserved.
4
// Copyright (c) 2019 Marc Fyrbiak, Sebastian Wallat, Max Hoffmann ("ORIGINAL AUTHORS"). All rights reserved.
5
// Copyright (c) 2021 Max Planck Institute for Security and Privacy. All Rights reserved.
6
// Copyright (c) 2021 Jörn Langheinrich, Julian Speith, Nils Albartus, René Walendy, Simon Klix ("ORIGINAL AUTHORS"). All Rights reserved.
7
//
8
// Permission is hereby granted, free of charge, to any person obtaining a copy
9
// of this software and associated documentation files (the "Software"), to deal
10
// in the Software without restriction, including without limitation the rights
11
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
// copies of the Software, and to permit persons to whom the Software is
13
// furnished to do so, subject to the following conditions:
14
//
15
// The above copyright notice and this permission notice shall be included in all
16
// copies or substantial portions of the Software.
17
//
18
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24
// SOFTWARE.
25
26
#pragma once
27
28
#include <QLabel>
29
#include <QList>
30
#include <QPair>
31
#include <QPainter>
32
33
class
QFontMetrics
;
34
35
namespace
hal
{
36
40
class
SearchableLabel
:
public
QLabel
41
{
42
Q_OBJECT
43
protected
:
44
void
paintEvent
(
QPaintEvent
* ev)
override
;
45
public
Q_SLOTS
:
46
void
handleSearchChanged
(
const
QString
&
string
,
int
option);
47
public
:
48
SearchableLabel
(
QWidget
*
parent
=
nullptr
);
49
SearchableLabel
(
const
QString
& txt,
QWidget
*
parent
=
nullptr
);
50
bool
hasMatch
()
const
;
51
private
:
52
void
drawSubstring(
QPainter
& painter,
int
pos
,
int
len,
bool
hilite);
53
bool
exactWordMatch(
int
pos
,
int
len)
const
;
54
QList<QPair<int,int>
> mMatchPositions;
55
QFontMetrics
* mMetrics;
56
int
xText;
57
int
yText;
58
59
static
const
int
sHiliteOffset = 2;
60
};
61
}
hal::SearchableLabel
Definition:
searchable_label.h:41
hal::SearchableLabel::SearchableLabel
SearchableLabel(QWidget *parent=nullptr)
Definition:
searchable_label.cpp:14
hal::SearchableLabel::hasMatch
bool hasMatch() const
Definition:
searchable_label.cpp:85
hal::SearchableLabel::paintEvent
void paintEvent(QPaintEvent *ev) override
Definition:
searchable_label.cpp:18
hal::SearchableLabel::handleSearchChanged
void handleSearchChanged(const QString &string, int option)
Definition:
searchable_label.cpp:90
hal
Definition:
defines.h:45
QFontMetrics
QLabel
QList
QObject::Q_OBJECT
Q_OBJECTQ_OBJECT
QObject::Q_SLOTS
Q_SLOTSQ_SLOTS
QObject::parent
QObject * parent() const const
QPainter
QPaintEvent
QString
QWidget
QWidget::pos
pos
plugins
gui
include
gui
searchbar
searchable_label.h
Generated by
1.9.1