26 #include <QPlainTextEdit> |
26 #include <QPlainTextEdit> |
27 #include <QEvent> |
27 #include <QEvent> |
28 #include <QKeyEvent> |
28 #include <QKeyEvent> |
29 #include <QMap> |
29 #include <QMap> |
30 |
30 |
31 class MyKeyButton : public QPushButton |
31 class MyButton : public QPushButton |
32 { |
32 { |
33 Q_OBJECT |
33 Q_OBJECT |
34 |
34 |
35 public: |
35 public: |
36 MyKeyButton(QPlainTextEdit *logger, QWidget *parent = 0) |
36 |
37 : |
37 MyButton(QPlainTextEdit *logger, QWidget *parent = 0) : QPushButton(QString("focus here"), parent) |
38 QPushButton(QString("dummy"), parent) |
|
39 { |
38 { |
40 justLogger = logger; |
39 justLogger = logger; |
41 keyLabels.insert(Qt::Key_VolumeUp, "Volume Up"); |
40 keyLabels.insert(Qt::Key_VolumeUp, "Volume Up"); |
42 keyLabels.insert(Qt::Key_VolumeDown, "Volume Down"); |
41 keyLabels.insert(Qt::Key_VolumeDown, "Volume Down"); |
|
42 keyLabels.insert(Qt::Key_Hangup, "Hangup"); |
|
43 keyLabels.insert(Qt::Key_Play, "Play"); |
|
44 keyLabels.insert(Qt::Key_MediaNext, "Media Next"); |
|
45 keyLabels.insert(Qt::Key_MediaPrevious, "Media Previous"); |
|
46 keyLabels.insert(Qt::Key_Forward, "Forward"); |
|
47 keyLabels.insert(Qt::Key_Back, "Back"); |
43 } |
48 } |
44 |
49 |
45 ~MyKeyButton() |
50 ~MyButton() |
46 { |
51 { |
47 } |
52 } |
48 |
53 |
49 bool event(QEvent *event) |
54 /*bool event(QEvent *event) |
50 { |
55 { |
51 if (justLogger) { |
56 if (justLogger) { |
52 if (event->type() != QEvent::KeyPress) { |
57 if (event->type() != QEvent::KeyPress) { |
53 // QString keyName = mapNaturalName((dynamic_cast<QKeyEvent*>event)->key()); |
58 // QString keyName = mapNaturalName((dynamic_cast<QKeyEvent*>event)->key()); |
54 // justLogger->appendPlainText(QString("P> %1").arg(keyName)); |
59 // justLogger->appendPlainText(QString("P> %1").arg(keyName)); |
59 // justLogger->appendPlainText(QString("r> %1").arg(keyName)); |
64 // justLogger->appendPlainText(QString("r> %1").arg(keyName)); |
60 justLogger->appendPlainText(QString("R> %1").arg(static_cast<QKeyEvent*>(event)->key())); |
65 justLogger->appendPlainText(QString("R> %1").arg(static_cast<QKeyEvent*>(event)->key())); |
61 } |
66 } |
62 } |
67 } |
63 return QPushButton::event(event); |
68 return QPushButton::event(event); |
|
69 }*/ |
|
70 |
|
71 void keyPressEvent(QKeyEvent *e) |
|
72 { |
|
73 QString keyName = mapNaturalName(static_cast<Qt::Key>(e->key())); |
|
74 addTextLine(QString("P> %1").arg(keyName)); |
|
75 } |
|
76 |
|
77 void keyReleaseEvent(QKeyEvent *e) |
|
78 { |
|
79 QString keyName = mapNaturalName(static_cast<Qt::Key>(e->key())); |
|
80 addTextLine(QString("R> %1").arg(keyName)); |
|
81 } |
|
82 |
|
83 void addTextLine(QString aText) |
|
84 { |
|
85 if ( !aText.endsWith("\n")) |
|
86 aText = aText + "\n"; |
|
87 QString msg = justLogger->toPlainText(); |
|
88 msg = aText + msg; |
|
89 justLogger->setPlainText(msg); |
64 } |
90 } |
65 |
91 |
66 private: |
92 private: |
67 |
93 |
68 QString mapNaturalName(Qt::Key key) { |
94 QString mapNaturalName(Qt::Key key) { |