/** * Override QMultiLineEdit to notify Java peer of traversal out. * * @param keyEvent key event to handle */ void TextFieldBody::keyPressEvent(QKeyEvent *key) { int k = key->key(); // always handle select event because it switches // between the modal and non-modal modes #ifdef QT_KEYPAD_MODE if (k == Qt::Key_Select) { QMultiLineEdit::keyPressEvent(key); } else if (isModalEditing()) { #endif if (isReadOnly()) { if ((k == Qt::Key_Up && rowIsVisible(0)) || (k == Qt::Key_Down && rowIsVisible(numRows() - 1))) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); mscreen->keyPressEvent(key); } else { QMultiLineEdit::keyPressEvent(key); } } else { int line; int col; QMultiLineEdit::getCursorPosition(&line, &col); if ((k == Qt::Key_Up && line == 0) || (k == Qt::Key_Down && (line == numLines() - 1))){ PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); mscreen->keyPressEvent(key); } else { QMultiLineEdit::keyPressEvent(key); } } #ifdef QT_KEYPAD_MODE } else { // not handle events while it's in not modal state key->ignore(); } #endif }
void CustomItem::keyPressEvent(QKeyEvent *key) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); mscreen->keyPressEvent(key); }