File tree Expand file tree Collapse file tree 3 files changed +60
-0
lines changed Expand file tree Collapse file tree 3 files changed +60
-0
lines changed Original file line number Diff line number Diff line change @@ -22,4 +22,6 @@ qt_add_qml_module(libscratchcpp-gui
22
22
renderedtarget.h
23
23
targetpainter.cpp
24
24
targetpainter.h
25
+ keyeventhandler.cpp
26
+ keyeventhandler.h
25
27
)
Original file line number Diff line number Diff line change
1
+ // SPDX-License-Identifier: LGPL-3.0-or-later
2
+
3
+ #include < QKeyEvent>
4
+
5
+ #include " keyeventhandler.h"
6
+
7
+ using namespace scratchcppgui ;
8
+
9
+ KeyEventHandler::KeyEventHandler (QObject *parent) :
10
+ QObject(parent)
11
+ {
12
+ }
13
+
14
+ bool KeyEventHandler::eventFilter (QObject *obj, QEvent *event)
15
+ {
16
+ switch (event->type ()) {
17
+ case QEvent::KeyPress: {
18
+ QKeyEvent *keyEvent = static_cast <QKeyEvent *>(event);
19
+ emit keyPressed (static_cast <Qt::Key>(keyEvent->key ()), keyEvent->text ());
20
+ break ;
21
+ }
22
+
23
+ case QEvent::KeyRelease: {
24
+ QKeyEvent *keyEvent = static_cast <QKeyEvent *>(event);
25
+ emit keyReleased (static_cast <Qt::Key>(keyEvent->key ()), keyEvent->text ());
26
+ break ;
27
+ }
28
+
29
+ default :
30
+ break ;
31
+ }
32
+
33
+ return QObject::eventFilter (obj, event);
34
+ }
Original file line number Diff line number Diff line change
1
+ // SPDX-License-Identifier: LGPL-3.0-or-later
2
+
3
+ #pragma once
4
+
5
+ #include < QObject>
6
+
7
+ namespace scratchcppgui
8
+ {
9
+
10
+ class KeyEventHandler : public QObject
11
+ {
12
+ Q_OBJECT
13
+ public:
14
+ explicit KeyEventHandler (QObject *parent = nullptr );
15
+
16
+ signals:
17
+ void keyPressed (Qt::Key key, const QString &text);
18
+ void keyReleased (Qt::Key key, const QString &text);
19
+
20
+ protected:
21
+ bool eventFilter (QObject *obj, QEvent *event) override ;
22
+ };
23
+
24
+ } // namespace scratchcppgui
You can’t perform that action at this time.
0 commit comments