From 24560f766234b70a974fc335fe497ef063f7779d Mon Sep 17 00:00:00 2001
From: PIXHAWK Team <mavteam@student.ethz.ch>
Date: Mon, 13 Feb 2012 15:07:16 +0100
Subject: [PATCH] Arrow key control

---
 src/ui/HSIDisplay.cc | 33 +++++++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

diff --git a/src/ui/HSIDisplay.cc b/src/ui/HSIDisplay.cc
index 20b8c09..9edb219 100644
--- a/src/ui/HSIDisplay.cc
+++ b/src/ui/HSIDisplay.cc
@@ -637,10 +637,39 @@ void HSIDisplay::keyPressEvent(QKeyEvent* event)
         statusClearTimer.start();
         sendBodySetPointCoordinates();
     }
-    else
+    else if ((event->key() ==  Qt::Key_Up))
     {
-        HDDisplay::keyPressEvent(event);
+        setBodySetpointCoordinateXY(0.5, 0);
     }
+    else if ((event->key() ==  Qt::Key_Down))
+    {
+        setBodySetpointCoordinateXY(-0.5, 0);
+    }
+    else if ((event->key() ==  Qt::Key_Left))
+    {
+        setBodySetpointCoordinateXY(0, -0.5);
+    }
+    else if ((event->key() ==  Qt::Key_Right))
+    {
+        setBodySetpointCoordinateXY(0, 0.5);
+    }
+    else if ((event->key() ==  Qt::Key_Plus))
+    {
+        setBodySetpointCoordinateZ(-0.2);
+    }
+    else if ((event->key() ==  Qt::Key_Minus))
+    {
+        setBodySetpointCoordinateZ(+0.2);
+    }
+    else if ((event->key() ==  Qt::Key_L))
+    {
+        setBodySetpointCoordinateYaw(-0.1);
+    }
+    else if ((event->key() ==  Qt::Key_R))
+    {
+        setBodySetpointCoordinateYaw(0.1);
+    }
+     HDDisplay::keyPressEvent(event);
 }
 
 void HSIDisplay::contextMenuEvent (QContextMenuEvent* event)