void GLWidget::keyPressEvent (QKeyEvent* event) { if (event->isAutoRepeat()) event->ignore(); Editor* editor = dynamic_cast<Editor*>(parent()); switch(event->key()) { case Qt::Key_Left: editor->MoveHorizontal(-1); break; case Qt::Key_Right: editor->MoveHorizontal(1); break; case Qt::Key_Up: editor->MoveVertical(-1); break; case Qt::Key_Down: editor->MoveVertical(1); break; case Qt::Key_Control: editor->SetAppendMode(true); break; case Qt::Key_Shift: editor->SetRemoveMode(true); break; default: event->ignore(); break; } }