bool ossimQtImageControllerZoomEventFilter::eventFilter(QObject* /*obj*/, QEvent* event) { if(!theController) return false; if(!theController->getImageWidget()) return false; switch(event->type()) { case QEvent::KeyPress: { QKeyEvent* keyEvent = (QKeyEvent*)event; if(keyEvent->stateAfter() & Qt::ShiftButton) { theController->setZoomModeOut(); } if(keyEvent->stateAfter() & Qt::ControlButton) { thePanToOverrideFlag = true; } break; } case QEvent::KeyRelease: { QKeyEvent* keyEvent = (QKeyEvent*)event; if(keyEvent->state() & Qt::ShiftButton) { theController->setZoomModeIn(); } if(keyEvent->state() & Qt::ControlButton) { thePanToOverrideFlag = false; } break; } default: { break; } } return false; }
bool QDragManager::eventFilter( QObject *o, QEvent *e ) { if ( !o->isWidgetType() ) return FALSE; switch( e->type() ) { case QEvent::KeyPress: case QEvent::KeyRelease: { QKeyEvent *ke = ((QKeyEvent*)e); if ( ke->key() == Key_Escape && e->type() == QEvent::KeyPress ) { cancel(); qApp->removeEventFilter( this ); dragSource = 0; } else { updateMode(ke->stateAfter()); updateCursor(); } return TRUE; // Eat all key events } case QEvent::MouseButtonPress: case QEvent::MouseMove: { QMouseEvent *me = (QMouseEvent *)e; if ( me->state() & ( QMouseEvent::LeftButton | QMouseEvent::MidButton | QMouseEvent::RightButton ) ) { QWidget *cw = QApplication::widgetAt( me->globalPos(), TRUE ); // Fix for when we move mouse on to the deco widget if ( qt_qws_dnd_deco && cw == qt_qws_dnd_deco ) cw = dropWidget; if ( dropWidget != cw ) { if ( dropWidget ) { QDragLeaveEvent dle; QApplication::sendEvent( dropWidget, &dle ); willDrop = FALSE; updateCursor(); restoreCursor = TRUE; dropWidget = NULL; } if ( cw && cw->acceptDrops() ) { dropWidget = cw; QDragEnterEvent dee( me->pos() ); QApplication::sendEvent( dropWidget, &dee ); willDrop = dee.isAccepted(); updateCursor(); restoreCursor = TRUE; } } else if ( cw ) { QDragMoveEvent dme( me->pos() ); QApplication::sendEvent( cw, &dme ); updatePixmap(); } } return TRUE; // Eat all mouse events } case QEvent::MouseButtonRelease: { qApp->removeEventFilter( this ); if ( qt_qws_dnd_deco ) delete qt_qws_dnd_deco; qt_qws_dnd_deco = 0; if ( restoreCursor ) { willDrop = FALSE; myRestoreOverrideCursor(); restoreCursor = FALSE; } if ( dropWidget ) { QMouseEvent *me = (QMouseEvent *)e; QDropEvent de( me->pos() ); QApplication::sendEvent( dropWidget, &de ); dropWidget = NULL; } return TRUE; // Eat all mouse events } default: break; } return FALSE; }