summaryrefslogtreecommitdiffhomepage
path: root/facetracknoir/keyboard.h
blob: 65f5c58e695b10a1b4ac5e1a8b85af4ede4ae6e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#pragma once
#include "ui_keyboard_listener.h"
#include <QLabel>
#include <QKeyEvent>

class KeyboardListener : public QLabel
{
    Q_OBJECT
    Ui_keyboard_listener ui;
public:
    KeyboardListener(QWidget* parent = nullptr) : QLabel(parent)
    {
        ui.setupUi(this);
        setFocusPolicy(Qt::StrongFocus);
    }
    void keyPressEvent(QKeyEvent* event) override
    {
        {
            switch (event->key() | event->modifiers())
            {
            case 83886113: // ctrl
            case 50331680: // shift
            case 150994979: // alt
            case 16777250: // meta
                return;
            default: break;
            }
        }
        emit key_pressed(QKeySequence(event->key()));
    }
signals:
    void key_pressed(QKeySequence k);
};