12class FocusOut final :
public QObject {
14 using Filter = std::function<void()>;
16 FocusOut(Filter filter, QObject *parent =
nullptr)
17 : QObject{parent}, filter_{filter} {}
19 bool eventFilter(QObject *, QEvent *event)
override {
20 if (event->type() == QEvent::FocusOut)
29class EscapeKeyPress final :
public QObject {
31 using Filter = std::function<bool(QKeyEvent *)>;
33 EscapeKeyPress(Filter filter, QObject *parent =
nullptr)
34 : QObject{parent}, filter_{filter} {}
36 bool eventFilter(QObject *, QEvent *event)
override {
37 if (event->type() == QEvent::KeyPress) {
38 if (
auto const keyEvent =
static_cast<QKeyEvent *
>(event);
39 keyEvent->key() == Qt::Key_Escape) {
40 return filter_(keyEvent);
50class EnterKeyPress final :
public QObject {
52 using Filter = std::function<bool(QKeyEvent *)>;
54 EnterKeyPress(Filter filter, QObject *parent =
nullptr)
55 : QObject{parent}, filter_{filter} {}
57 bool eventFilter(QObject *, QEvent *
const event)
override {
58 if (event->type() == QEvent::KeyPress) {
59 if (
auto const keyEvent =
static_cast<QKeyEvent *
>(event);
60 keyEvent->key() == Qt::Key_Enter ||
61 keyEvent->key() == Qt::Key_Return) {
62 return filter_(keyEvent);
72class MouseButtonPress final :
public QObject {
74 using Filter = std::function<bool(QMouseEvent *)>;
76 MouseButtonPress(Filter filter, QObject *parent =
nullptr)
77 : QObject{parent}, filter_{filter} {}
79 bool eventFilter(QObject *, QEvent *event)
override {
80 if (event->type() == QEvent::MouseButtonPress) {
81 return filter_(
static_cast<QMouseEvent *
>(event));
90class MouseButtonDblClick final :
public QObject {
92 using Filter = std::function<bool(QMouseEvent *)>;
94 MouseButtonDblClick(Filter filter, QObject *parent =
nullptr)
95 : QObject{parent}, filter_{filter} {}
97 bool eventFilter(QObject *, QEvent *event)
override {
98 if (event->type() == QEvent::MouseButtonDblClick) {
99 return filter_(
static_cast<QMouseEvent *
>(event));