void MyTreeView::keyPressEvent(QKeyEvent *event) { if(event->key() == Qt::Key_Backspace) { Q_EMIT backspacePressed(); } }
// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- // keyboard handling // ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- void FileListView::keyPressEvent( QKeyEvent* keyEvent ) { // implementing our needs Qt::KeyboardModifiers keyboardModifier = keyEvent->modifiers(); Qt::Key pressedKey = static_cast<Qt::Key>( keyEvent->key() ); if( Qt::NoModifier == keyboardModifier ) { switch( pressedKey ) { case Qt::Key_Escape: emit escPressed(); break; case Qt::Key_Period: emit consolePressed(); break; case Qt::Key_F1 : emit f01keyPressed(); break; case Qt::Key_F2 : emit f02keyPressed(); break; case Qt::Key_F3 : emit f03keyPressed(); break; case Qt::Key_F4 : emit f04keyPressed(); break; case Qt::Key_F5 : emit f05keyPressed(); break; case Qt::Key_F6 : emit f06keyPressed(); break; case Qt::Key_F7 : emit f07keyPressed(); break; case Qt::Key_F8 : emit f08keyPressed(); break; case Qt::Key_F9 : emit f09keyPressed(); break; case Qt::Key_F10: emit f10keyPressed(); break; case Qt::Key_F11: emit f11keyPressed(); break; case Qt::Key_F12: emit f12keyPressed(); break; case Qt::Key_Print: emit printPressed(); break; case Qt::Key_Pause: emit pausePressed(); break; case Qt::Key_Tab: emit tabPressed(); break; case Qt::Key_CapsLock: emit capsLockPressed(); break; case Qt::Key_Shift: emit leftShiftPressed();break; case Qt::Key_Control: emit leftCtrlPressed(); break; case Qt::Key_Insert: emit insertPressed(); break; case Qt::Key_Delete: emit deletePressed(); break; case Qt::Key_Home: emit homePressed(); break; case Qt::Key_End: emit endPressed(); break; case Qt::Key_PageUp: emit pageUpPressed(); break; case Qt::Key_PageDown: emit pageDownPressed(); break; case Qt::Key_Backspace: emit backspacePressed();break; case Qt::Key_Return: emit enterPressed(); break; case Qt::Key_Space: emit spacePressed(); break; default: keyEvent->ignore(); break; } } else if( Qt::AltModifier == keyboardModifier ) { switch( pressedKey ) { case Qt::Key_0: emit alt0Pressed(); break; case Qt::Key_1: emit alt1Pressed(); break; case Qt::Key_2: emit alt2Pressed(); break; case Qt::Key_3: emit alt3Pressed(); break; case Qt::Key_4: emit alt4Pressed(); break; case Qt::Key_5: emit alt5Pressed(); break; case Qt::Key_6: emit alt6Pressed(); break; case Qt::Key_7: emit alt7Pressed(); break; case Qt::Key_8: emit alt8Pressed(); break; case Qt::Key_9: emit alt9Pressed(); break; default: keyEvent->ignore(); break; } } else if( Qt::ControlModifier == keyboardModifier ) { switch( pressedKey ) { case Qt::Key_0: emit ctrl0Pressed(); break; case Qt::Key_1: emit ctrl1Pressed(); break; case Qt::Key_2: emit ctrl2Pressed(); break; case Qt::Key_3: emit ctrl3Pressed(); break; case Qt::Key_4: emit ctrl4Pressed(); break; case Qt::Key_5: emit ctrl5Pressed(); break; case Qt::Key_6: emit ctrl6Pressed(); break; case Qt::Key_7: emit ctrl7Pressed(); break; case Qt::Key_8: emit ctrl8Pressed(); break; case Qt::Key_9: emit ctrl9Pressed(); break; default: keyEvent->ignore(); break; } } else if( Qt::ShiftModifier == keyboardModifier ) { switch( pressedKey ) { case Qt::Key_0: emit shift0Pressed(); break; case Qt::Key_1: emit shift1Pressed(); break; case Qt::Key_2: emit shift2Pressed(); break; case Qt::Key_3: emit shift3Pressed(); break; case Qt::Key_4: emit shift4Pressed(); break; case Qt::Key_5: emit shift5Pressed(); break; case Qt::Key_6: emit shift6Pressed(); break; case Qt::Key_7: emit shift7Pressed(); break; case Qt::Key_8: emit shift8Pressed(); break; case Qt::Key_9: emit shift9Pressed(); break; default: keyEvent->ignore(); break; } } else if( Qt::KeypadModifier == keyboardModifier ) { switch( pressedKey ) { case Qt::Key_Minus: emit numpadMinusPressed(); break; case Qt::Key_Plus: emit numpadPlusPressed(); break; case Qt::Key_Slash: emit numpadSlashPressed(); break; case Qt::Key_Asterisk: emit numpadAsteriskPressed(); break; default: keyEvent->ignore(); break; } } // allowing the default behaviour QListView::keyPressEvent( keyEvent ); }
void editLevelStateClass::update(sf::RenderWindow& window) { sf::Event event; while(window.pollEvent(event)) { if(event.type == sf::Event::Closed) { window.close(); } else if(event.type == sf::Event::KeyPressed) { switch(event.key.code) { case sf::Keyboard::Escape: { setNoMode(); break; } case sf::Keyboard::A: { drawAllFloor = !drawAllFloor; break; } case sf::Keyboard::F: { setAddFloorMode(); break; } case sf::Keyboard::W: { setAddWallMode("WALL"); break; } case sf::Keyboard::X: { setAddWallMode("STICKMAN_WALL"); break; } case sf::Keyboard::P: { currentMode = PLACE_PLAYER; break; } case sf::Keyboard::Return: { returnPressed(); break; } case sf::Keyboard::BackSpace: { backspacePressed(); break; } case sf::Keyboard::Delete: { deletePressed(); break; } case sf::Keyboard::LShift: { speedFactor = 5; break; } case sf::Keyboard::O: { saveLevel(); break; } case sf::Keyboard::I: { loadLevel(); break; } case sf::Keyboard::H: { moveAllLevel(-1, 0); break; } case sf::Keyboard::J: { moveAllLevel(0, 1); break; } case sf::Keyboard::K: { moveAllLevel(0, -1); break; } case sf::Keyboard::L: { moveAllLevel(1, 0); break; } case sf::Keyboard::F10: { global::activeGameStateStack->set(new mainMenuStateClass()); return; } case sf::Keyboard::Add: { if(static_cast<unsigned int>(currentFloor - 1) < listOfFloor.size()) { ++currentFloor; } break; } case sf::Keyboard::Subtract: { if(currentFloor > 0) { --currentFloor; } break; } case sf::Keyboard::B: { if(chooseNameOfLevel == false) { chooseNameOfLevel = true; tmpIndexOfLevel = currentIndexOfLevel; } else { --tmpIndexOfLevel; if(tmpIndexOfLevel < 0) { tmpIndexOfLevel = listOfLevel.size() - 1; } } nameOfLevelTextHasChanged(); break; } case sf::Keyboard::N: { if(chooseNameOfLevel == false) { chooseNameOfLevel = true; tmpIndexOfLevel = currentIndexOfLevel; } else { ++tmpIndexOfLevel; if(static_cast<unsigned int>(tmpIndexOfLevel) >= listOfLevel.size()) { tmpIndexOfLevel = 0; } } nameOfLevelTextHasChanged(); break; } case sf::Keyboard::M: { if(chooseNameOfLevel == true) { chooseNameOfLevel = false; currentIndexOfLevel = tmpIndexOfLevel; loadThisLevel(listOfLevel[currentIndexOfLevel]); } break; } default: { break; } } } else if(event.type == sf::Event::KeyReleased) { if(event.key.code == sf::Keyboard::LShift) { speedFactor = 1; } } else if(event.type == sf::Event::MouseButtonPressed) { if(event.mouseButton.button == sf::Mouse::Left) { leftClick(view.getCenter().x - ((WIDTH_SCREEN / 2) * zoomLevel) + event.mouseButton.x * zoomLevel, view.getCenter().y - ((HEIGHT_SCREEN / 2) * zoomLevel) + event.mouseButton.y * zoomLevel); } else if(event.mouseButton.button == sf::Mouse::Right) { rightClick(view.getCenter().x - ((WIDTH_SCREEN / 2) * zoomLevel) + event.mouseButton.x * zoomLevel, view.getCenter().y - ((HEIGHT_SCREEN / 2) * zoomLevel) + event.mouseButton.y * zoomLevel); } } else if(event.type == sf::Event::MouseWheelMoved) { zoomView(event.mouseWheel.delta); } if(event.type == sf::Event::TextEntered) { char character = static_cast<char>(event.text.unicode); if(character >= 48 && character <= 57 && currentMode == NO_MODE) { if(character - 48 < static_cast<char>(listOfFloor.size())) { currentFloor = character - 48; } } } } if(sf::Keyboard::isKeyPressed(sf::Keyboard::Q)) { moveView(-speedView * zoomLevel - 1, 0); } if(sf::Keyboard::isKeyPressed(sf::Keyboard::D)) { moveView(speedView * zoomLevel + 1, 0); } if(sf::Keyboard::isKeyPressed(sf::Keyboard::Z)) { moveView(0, -speedView * zoomLevel - 1); } if(sf::Keyboard::isKeyPressed(sf::Keyboard::S)) { moveView(0, speedView * zoomLevel + 1); } if(chooseNameOfLevel == true) { updateNameOfLevelText(); } }