29class FocusOut final :
public QObject {
31 using Filter = std::function<void()>;
33 FocusOut(Filter filter, QObject *parent =
nullptr)
34 : QObject{parent}, filter_{filter} {}
36 bool eventFilter(QObject *, QEvent *event)
override {
37 if (event->type() == QEvent::FocusOut)
53class EscapeKeyPress final :
public QObject {
55 using Filter = std::function<bool(QKeyEvent *)>;
57 EscapeKeyPress(Filter filter, QObject *parent =
nullptr)
58 : QObject{parent}, filter_{filter} {}
60 bool eventFilter(QObject *, QEvent *event)
override {
61 if (event->type() == QEvent::KeyPress) {
62 if (
auto const keyEvent =
static_cast<QKeyEvent *
>(event);
63 keyEvent->key() == Qt::Key_Escape) {
64 return filter_(keyEvent);
81class EnterKeyPress final :
public QObject {
83 using Filter = std::function<bool(QKeyEvent *)>;
85 EnterKeyPress(Filter filter, QObject *parent =
nullptr)
86 : QObject{parent}, filter_{filter} {}
88 bool eventFilter(QObject *, QEvent *
const event)
override {
89 if (event->type() == QEvent::KeyPress) {
90 if (
auto const keyEvent =
static_cast<QKeyEvent *
>(event);
91 keyEvent->key() == Qt::Key_Enter ||
92 keyEvent->key() == Qt::Key_Return) {
93 return filter_(keyEvent);
110class MouseButtonPress final :
public QObject {
112 using Filter = std::function<bool(QMouseEvent *)>;
114 MouseButtonPress(Filter filter, QObject *parent =
nullptr)
115 : QObject{parent}, filter_{filter} {}
117 bool eventFilter(QObject *, QEvent *event)
override {
118 if (event->type() == QEvent::MouseButtonPress) {
119 return filter_(
static_cast<QMouseEvent *
>(event));
135class MouseButtonDblClick final :
public QObject {
137 using Filter = std::function<bool(QMouseEvent *)>;
139 MouseButtonDblClick(Filter filter, QObject *parent =
nullptr)
140 : QObject{parent}, filter_{filter} {}
142 bool eventFilter(QObject *, QEvent *event)
override {
143 if (event->type() == QEvent::MouseButtonDblClick) {
144 return filter_(
static_cast<QMouseEvent *
>(event));