this supports moving with arrow keys in 2D mode

-- 
Wolfgang
--- qsudokubutton.cpp	2006-02-26 16:04:25.000000000 +0100
+++ /home/wr/knew/qsudokubutton.cpp	2006-02-26 16:55:21.000000000 +0100
@@ -71,8 +71,61 @@
 	
 void QSudokuButton::keyReleaseEvent ( QKeyEvent * e ) 
 {
+    int order = p->puzzle->order;
 	if(e->stateAfter() & Qt::ShiftButton || e->state() & Qt::ShiftButton )
 		emit finishHighlight();
+	if (e->key() == Key_Right)
+    {
+	    if (x<order-1)
+			x++;
+	    else if (y<order-1)
+		{
+			y++;
+			x=0;
+		}
+		else
+			x=y=0;
+		emit enter(x,y);
+    }
+	if (e->key() == Key_Down)
+    {
+	    if (y<order-1)
+			y++;
+	    else if (x<order-1)
+		{
+			x++;
+			y=0;
+		}
+		else
+			x=y=0;
+		emit enter(x,y);
+    }
+	if (e->key() == Key_Up)
+    {
+	    if (y>0)
+			y--;
+	    else if (x>0)
+		{
+			x--;
+			y=order-1;
+		}
+		else
+			x=y=order-1;
+		emit enter(x,y);
+    }
+	if (e->key() == Key_Left)
+    {
+	    if (x>0)
+			x--;
+	    else if (y>0)
+		{
+			y--;
+			x=order-1;
+		}
+		else
+			x=y=order-1;
+		emit enter(x,y);
+    }
 	if(given) return; //it is given by puzzle so skip
 
 	char c = e->ascii();

Reply via email to