qtmobileextensions/examples/keycaptureex/mybutton.h
changeset 27 6bfad47013df
parent 19 46686fb6258c
--- a/qtmobileextensions/examples/keycaptureex/mybutton.h	Fri Sep 17 08:34:25 2010 +0300
+++ b/qtmobileextensions/examples/keycaptureex/mybutton.h	Mon Oct 04 01:32:41 2010 +0300
@@ -28,25 +28,30 @@
 #include <QKeyEvent>
 #include <QMap>
 
-class MyKeyButton : public QPushButton 
+class MyButton : public QPushButton 
 {
     Q_OBJECT
     
 public:
-    MyKeyButton(QPlainTextEdit *logger, QWidget *parent = 0)
-    :
-    QPushButton(QString("dummy"), parent)
+    
+    MyButton(QPlainTextEdit *logger, QWidget *parent = 0) : QPushButton(QString("focus here"), parent)
     {
         justLogger = logger;
         keyLabels.insert(Qt::Key_VolumeUp, "Volume Up");        
-        keyLabels.insert(Qt::Key_VolumeDown, "Volume Down");        
+        keyLabels.insert(Qt::Key_VolumeDown, "Volume Down");
+        keyLabels.insert(Qt::Key_Hangup, "Hangup");        
+        keyLabels.insert(Qt::Key_Play, "Play");        
+        keyLabels.insert(Qt::Key_MediaNext, "Media Next");        
+        keyLabels.insert(Qt::Key_MediaPrevious, "Media Previous");        
+        keyLabels.insert(Qt::Key_Forward, "Forward");        
+        keyLabels.insert(Qt::Key_Back, "Back");        
     }
     
-    ~MyKeyButton() 
+    ~MyButton() 
     {
     }
     
-    bool event(QEvent *event)
+    /*bool event(QEvent *event)
     {
         if (justLogger) {
             if (event->type() != QEvent::KeyPress) {
@@ -61,6 +66,27 @@
             }
         }
         return QPushButton::event(event);
+    }*/
+    
+    void keyPressEvent(QKeyEvent *e)
+    {
+        QString keyName = mapNaturalName(static_cast<Qt::Key>(e->key()));
+        addTextLine(QString("P> %1").arg(keyName));
+    }
+    
+    void keyReleaseEvent(QKeyEvent *e)
+    {
+        QString keyName = mapNaturalName(static_cast<Qt::Key>(e->key()));
+        addTextLine(QString("R> %1").arg(keyName));
+    }
+    
+    void addTextLine(QString aText)
+    {
+        if ( !aText.endsWith("\n"))
+            aText = aText + "\n";
+        QString msg = justLogger->toPlainText();
+        msg = aText + msg;
+        justLogger->setPlainText(msg);
     }
     
 private: