// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- // 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 Editor::keyPressEvent(QKeyEvent* event) { int key = event->key(); switch (key) { case Qt::Key_Enter: case Qt::Key_Return: QTimer::singleShot(0, this, SLOT(triggerEnter())); event->accept(); return; case Qt::Key_Up: if (event->modifiers() & Qt::ShiftModifier) emit shiftUpPressed(); else historyBack(); event->accept(); return; case Qt::Key_Down: if (event->modifiers() & Qt::ShiftModifier) emit shiftDownPressed(); else historyForward(); event->accept(); return; case Qt::Key_PageUp: if (event->modifiers() & Qt::ShiftModifier) emit shiftPageUpPressed(); else if (event->modifiers() & Qt::ControlModifier) emit controlPageUpPressed(); else emit pageUpPressed(); event->accept(); return; case Qt::Key_PageDown: if (event->modifiers() & Qt::ShiftModifier) emit shiftPageDownPressed(); else if (event->modifiers() & Qt::ControlModifier) emit controlPageDownPressed(); else emit pageDownPressed(); event->accept(); return; case Qt::Key_Left: case Qt::Key_Right: case Qt::Key_Home: case Qt::Key_End: checkMatching(); checkAutoCalc(); case Qt::Key_Space: if (event->modifiers() == Qt::ControlModifier && !m_constantCompletion) { m_constantCompletion = new ConstantCompletion(this); connect(m_constantCompletion, SIGNAL(selectedCompletion(const QString&)), SLOT(insertConstant(const QString&))); connect(m_constantCompletion, SIGNAL(canceledCompletion()), SLOT(cancelConstantCompletion())); m_constantCompletion->showCompletion(); event->accept(); return; } case Qt::Key_P: if (event->modifiers() == Qt::ControlModifier) { QTextCursor cursor = textCursor(); if (cursor.hasSelection()) { const int selectionStart = cursor.selectionStart(); const int selectionEnd = cursor.selectionEnd(); cursor.setPosition(selectionStart); cursor.insertText("("); cursor.setPosition(selectionEnd + 1); cursor.insertText(")"); } else { cursor.movePosition(QTextCursor::Start); cursor.insertText("("); cursor.movePosition(QTextCursor::End); cursor.insertText(")"); } setTextCursor(cursor); event->accept(); return; } default:; } if (event->matches(QKeySequence::Copy)) { emit copySequencePressed(); event->accept(); return; } QPlainTextEdit::keyPressEvent(event); }