examples/sensors/panorama/keycontroller.cpp
changeset 0 876b1a06bc25
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/sensors/panorama/keycontroller.cpp	Wed Aug 25 15:49:42 2010 +0300
@@ -0,0 +1,42 @@
+
+#include "keycontroller.h"
+#include "view.h"
+
+KeyController::KeyController(): TimedController(), m_step(5){}
+
+KeyController::~KeyController(){}
+
+
+void KeyController::keyPressEvent(QKeyEvent *e)
+{
+    int code = e->key();
+    handleKeyPress(code);
+    m_step = m_exCode==code && m_exCode > 0? m_step+2 : 5;
+}
+
+
+void KeyController::updateCoordinates() { handleKeyPress(m_exCode);}
+
+
+void KeyController::handleKeyPress(int code){
+    switch (code){
+    case Qt::Key_Right:
+        m_x+=m_step;
+        break;
+    case Qt::Key_Left:
+        m_x-=m_step;
+        break;
+    case Qt::Key_Up:
+        m_y-=m_step;
+        break;
+    case Qt::Key_Down:
+        m_y+=m_step;
+        break;
+    default:
+        m_exCode = 0;
+        return;
+    }
+    m_exCode = code;
+}
+
+