Line data Source code
1 : #pragma once
2 :
3 : #include <QWidget>
4 :
5 : // ShortcutHelpOverlay displays a semi-transparent overlay showing all
6 : // available keyboard shortcuts, organized by category.
7 : // Closes on any key press or mouse click. Scrollable via mouse wheel.
8 : class ShortcutHelpOverlay : public QWidget {
9 385 : Q_OBJECT
10 :
11 : public:
12 : explicit ShortcutHelpOverlay(QWidget *parent = nullptr);
13 :
14 : // Show the overlay centered on the parent widget.
15 : void showOverlay();
16 :
17 : protected:
18 : void paintEvent(QPaintEvent *event) override;
19 : void keyPressEvent(QKeyEvent *event) override;
20 : void mousePressEvent(QMouseEvent *event) override;
21 : void wheelEvent(QWheelEvent *event) override;
22 : bool eventFilter(QObject *obj, QEvent *event) override;
23 : void changeEvent(QEvent *event) override;
24 :
25 : private:
26 : void retranslateUi();
27 :
28 : int m_scrollOffset = 0; // pixels scrolled (positive = scrolled down)
29 : int m_contentHeight = 0; // total height of shortcut content
30 : };
|