bool EditorCompletion::eventFilter( QObject *obj, QEvent *ev ) { if ( obj == d->completionPopup || obj == d->completionListBox ) { if ( ev->type() == QEvent::KeyPress ) { QKeyEvent *ke = (QKeyEvent*)ev; if ( ke->key() == Key_Enter || ke->key() == Key_Return ) { doneCompletion(); return true; } else if ( ke->key() == Key_Left || ke->key() == Key_Right || ke->key() == Key_Up || ke->key() == Key_Down || ke->key() == Key_Home || ke->key() == Key_End || ke->key() == Key_Prior || ke->key() == Key_Next ) return false; d->completionPopup->close(); d->editor->setFocus(); QApplication::sendEvent( d->editor, ev ); return true; } if ( ev->type() == QEvent::MouseButtonDblClick ) { doneCompletion(); return true; } } return false; }
bool AutoComplete::eventFilter(QObject *obj, QEvent *ev) { if (obj != popup) return false; if (ev->type() == QEvent::MouseButtonPress) { popup->hide(); editor->setFocus(); editor->setText(originalText); return true; } if (ev->type() == QEvent::KeyPress) { bool consumed = false; QKeyEvent *keyEvent = static_cast<QKeyEvent*>(ev); int key = keyEvent->key(); // qDebug() << keyEvent->text(); switch (key) { case Qt::Key_Enter: case Qt::Key_Return: if (popup->currentItem()) { doneCompletion(); consumed = true; } else { editor->setFocus(); editor->event(ev); popup->hide(); } break; case Qt::Key_Escape: editor->setFocus(); editor->setText(originalText); popup->hide(); consumed = true; break; case Qt::Key_Up: case Qt::Key_Down: case Qt::Key_Home: case Qt::Key_End: case Qt::Key_PageUp: case Qt::Key_PageDown: break; default: // qDebug() << keyEvent->text(); editor->setFocus(); editor->event(ev); popup->hide(); break; } return consumed; } return false; }
int GSuggestCompletion::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: doneCompletion(); break; case 1: preventSuggest(); break; case 2: autoSuggest(); break; case 3: handleNetworkData((*reinterpret_cast< QNetworkReply*(*)>(_a[1]))); break; } _id -= 4; } return _id; }
//! [4] bool GSuggestCompletion::eventFilter(QObject *obj, QEvent *ev) { if (obj != popup) return false; if (ev->type() == QEvent::MouseButtonPress) { popup->hide(); editor->setFocus(); return true; } if (ev->type() == QEvent::KeyPress) { bool consumed = false; int key = static_cast<QKeyEvent*>(ev)->key(); switch (key) { case Qt::Key_Enter: case Qt::Key_Return: doneCompletion(); consumed = true; case Qt::Key_Escape: editor->setFocus(); popup->hide(); consumed = true; case Qt::Key_Up: case Qt::Key_Down: case Qt::Key_Home: case Qt::Key_End: case Qt::Key_PageUp: case Qt::Key_PageDown: break; default: editor->setFocus(); editor->event(ev); popup->hide(); break; } return consumed; } return false; }
bool EditorCompletion::eventFilter(QObject* object, QEvent* event) { if (object != m_popup) return false; if (event->type() == QEvent::KeyPress) { int key = static_cast<QKeyEvent*>(event)->key(); switch (key) { case Qt::Key_Enter: case Qt::Key_Return: case Qt::Key_Tab: doneCompletion(); return true; case Qt::Key_Up: case Qt::Key_Down: case Qt::Key_Home: case Qt::Key_End: case Qt::Key_PageUp: case Qt::Key_PageDown: return false; default: m_popup->hide(); m_editor->setFocus(); if (key != Qt::Key_Escape) QApplication::sendEvent(m_editor, event); return true; } } if (event->type() == QEvent::MouseButtonPress) { m_popup->hide(); m_editor->setFocus(); return true; } return false; }
bool ConstantCompletion::eventFilter(QObject* object, QEvent* event) { if (event->type() == QEvent::Hide) { emit canceledCompletion(); return true; } if (object == m_constantWidget) { if (event->type() == QEvent::KeyPress) { int key = static_cast<QKeyEvent*>(event)->key(); switch (key) { case Qt::Key_Enter: case Qt::Key_Return: case Qt::Key_Tab: doneCompletion(); return true; case Qt::Key_Left: showCategory(); return true; case Qt::Key_Right: case Qt::Key_Up: case Qt::Key_Down: case Qt::Key_Home: case Qt::Key_End: case Qt::Key_PageUp: case Qt::Key_PageDown: return false; } if (key != Qt::Key_Escape) QApplication::sendEvent(m_editor, event); emit canceledCompletion(); return true; } } if (object == m_categoryWidget) { if (event->type() == QEvent::KeyPress) { int key = static_cast<QKeyEvent*>(event)->key(); switch (key) { case Qt::Key_Enter: case Qt::Key_Return: case Qt::Key_Right: showConstants(); return true; case Qt::Key_Up: case Qt::Key_Down: case Qt::Key_Home: case Qt::Key_End: case Qt::Key_PageUp: case Qt::Key_PageDown: return false; } if (key != Qt::Key_Escape) QApplication::sendEvent(m_editor, event); emit canceledCompletion(); return true; } } return false; }