void ObjectEventBroker::event_filter(const RPP::QObject<QObject> object, const QEvent &event, RPP::Symbol method) const { trace1("event_filter, tp = %d", event.type()); switch (event.type()) { case QEvent::Timer: { const QTimerEvent &ev_timer = static_cast<const QTimerEvent &>(event); object.call("emit", method, RPP::Fixnum(ev_timer.timerId())); return; } case QEvent::ChildAdded: case QEvent::ChildRemoved: case QEvent::ChildPolished: { const QChildEvent &ev_child = static_cast<const QChildEvent &>(event); object.call("emit", method, RPP::QObject<QObject>(ev_child.child())); return; } case QEvent::DynamicPropertyChange: { const QDynamicPropertyChangeEvent &ev_dpch = static_cast<const QDynamicPropertyChangeEvent &>(event); object.call("emit", method, qByteArray2v(ev_dpch.propertyName())); return; } default: break; } rb_raise(rb_eNotImpError, "events of type %s cannot be brokered yet", method.to_s()); }
static bool polymorphichandler_Lqt_core_QEvent_2(const void *ptr, char **class_name, char **package) { Q_ASSERT(ptr != 0); QEvent *object = (QEvent *)ptr; if (object->type() == QEvent::ChildAdded || object->type() == QEvent::ChildPolished || object->type() == QEvent::ChildRemoved) { *class_name = "QChildEvent"; *package = "qt/core/"; return true; } if (object->type() == QEvent::DynamicPropertyChange) { *class_name = "QDynamicPropertyChangeEvent"; *package = "qt/core/"; return true; } if (object->type() == QEvent::None) { *class_name = "QEvent"; *package = "qt/core/"; return true; } if (object->type() == QEvent::Timer) { *class_name = "QTimerEvent"; *package = "qt/core/"; return true; } return false; }
static void* polymorphichandler_QEvent(const void *ptr, const char **class_name) { Q_ASSERT(ptr != 0); QEvent *object = (QEvent *)ptr; if (object->type() == QEvent::ChildAdded || object->type() == QEvent::ChildPolished || object->type() == QEvent::ChildRemoved) { *class_name = "QChildEvent"; return (QChildEvent*)object; } if (object->type() == QEvent::DynamicPropertyChange) { *class_name = "QDynamicPropertyChangeEvent"; return (QDynamicPropertyChangeEvent*)object; } if (object->type() == QEvent::None) { *class_name = "QEvent"; return (QEvent*)object; } if (object->type() == QEvent::StateMachineSignal) { *class_name = "QStateMachine_SignalEvent"; return (QStateMachine::SignalEvent*)object; } if (object->type() == QEvent::StateMachineWrapped) { *class_name = "QStateMachine_WrappedEvent"; return (QStateMachine::WrappedEvent*)object; } if (object->type() == QEvent::Timer) { *class_name = "QTimerEvent"; return (QTimerEvent*)object; } return NULL; }
SES_FSM::State SES_FSM::processEventFromChild(SEE_Base* event) noexcept { switch (event->getType()) { case SEE_Base::AbortCommand: case SEE_Base::StartSelect: event->setAccepted(true); return State_Select; case SEE_Base::StartMove: event->setAccepted(true); return State_Move; case SEE_Base::StartDrawText: event->setAccepted(true); return State_DrawText; case SEE_Base::StartDrawRect: event->setAccepted(true); return State_DrawRect; case SEE_Base::StartDrawPolygon: event->setAccepted(true); return State_DrawPolygon; case SEE_Base::StartDrawCircle: event->setAccepted(true); return State_DrawCircle; case SEE_Base::StartDrawEllipse: event->setAccepted(true); return State_DrawEllipse; case SEE_Base::StartDrawWire: event->setAccepted(true); return State_DrawWire; case SEE_Base::StartAddNetLabel: event->setAccepted(true); return State_AddNetLabel; case SEE_Base::StartAddComponent: event->setAccepted(true); return State_AddComponent; case SEE_Base::SwitchToSchematicPage: event->setAccepted(true); return mCurrentState; case SEE_Base::GraphicsViewEvent: { QEvent* e = SEE_RedirectedQEvent::getQEventFromSEE(event); Q_ASSERT(e); if (!e) return mCurrentState; if ((e->type() == QEvent::GraphicsSceneMousePress) || (e->type() == QEvent::GraphicsSceneMouseDoubleClick)) { QGraphicsSceneMouseEvent* e2 = dynamic_cast<QGraphicsSceneMouseEvent*>(e); Q_ASSERT(e2); if (!e2) return mCurrentState; if (e2->buttons() == Qt::RightButton) return (mPreviousState != State_NoState) ? mPreviousState : State_Select; else return mCurrentState; } } default: return mCurrentState; } }
//![0] bool eventTest(QEvent *event) { if (event->type() == QEvent::Wrapped) { QEvent *wrappedEvent = static_cast<QStateMachine::WrappedEvent *>(event)->event(); if (wrappedEvent->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast<QKeyEvent *>(wrappedEvent); // Do your event test } } return false; }
void EWAUserActionsEditorDialog::inserActionIntoModel( int iPos, const EWAUserAction *pAction, int iPageNum, int iActInPageNum ) { if( !m_pModel || !pAction ) { return; } QString strActDelay = tr( "%1 sec" ).arg( 0.001*pAction->getTime() ); QPixmap imgType; QString strActValue = pAction->getActionValue(); QEvent *pActEvent = pAction->getEvent(); switch( pActEvent->type() ) { case QEvent::KeyPress: { imgType = m_pixKeyDown; break; } case QEvent::KeyRelease: { imgType = m_pixKeyUp; break; } case QEvent::MouseButtonPress: { imgType = m_pixMouseDown; break; } case QEvent::MouseButtonRelease: { imgType = m_pixMouseUp; break; } default: { return; } } m_pModel->setData( m_pModel->index( iPos, 0 ), imgType, Qt::DecorationRole ); m_pModel->setData( m_pModel->index( iPos, 0 ), iPageNum, PTR2PAGE_ROLE ); m_pModel->setData( m_pModel->index( iPos, 0 ), iActInPageNum, PTR2GEST_ROLE ); m_pModel->setData( m_pModel->index( iPos, 0 ), strActValue ); m_pModel->setData( m_pModel->index( iPos, 1 ), strActDelay ); }
dmz::V8Value dmz::JsModuleUiV8QtBasic::_event_type (const v8::Arguments &Args) { v8::HandleScope scope; V8Value result = v8::Undefined (); JsModuleUiV8QtBasic *self = _to_self (Args); if (self) { QEvent *event = self->_to_qevent (Args.This ()); if (event) { result = v8::Number::New (event->type ()); } } return scope.Close (result); }
bool ExpectedEventList::eventFilter(QObject *, QEvent *received) { if (debug > 1) qDebug() << received; if (eventList.isEmpty()) return false; bool eat = false; QEvent *expected = eventList.first(); if (expected->type() == received->type()) { eventList.removeFirst(); switch (received->type()) { case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseMove: case QEvent::MouseButtonDblClick: case QEvent::NonClientAreaMouseButtonPress: case QEvent::NonClientAreaMouseButtonRelease: case QEvent::NonClientAreaMouseButtonDblClick: case QEvent::NonClientAreaMouseMove: { compareMouseEvents(received, expected); eat = true; break; } case QEvent::KeyPress: case QEvent::KeyRelease: { compareKeyEvents(received, expected); eat = true; break; } case QEvent::Resize: { break; } case QEvent::WindowActivate: { break; } case QEvent::WindowDeactivate: { break; } default: break; } if (eventList.isEmpty()) QAbstractEventDispatcher::instance()->interrupt(); } return eat; }
void WidgetEventBroker::event_filter(const RPP::QObject<QObject> object, const QEvent &event, RPP::Symbol method) const { switch (event.type()) { case QEvent::Resize: { const QResizeEvent &ev_resize = static_cast<const QResizeEvent &>(event); object.call("emit", method, RPP::QSize(ev_resize.size())); return; } case QEvent::Show: object.call("emit", method); return; default: break; } inherited::event_filter(object, event, method); } // event_filter
/* * Given an approximate classname and a qt instance, try to improve the resolution of the name * by using the various Qt rtti mechanisms for QObjects, QEvents and so on */ const char * qyoto_resolve_classname_qtcore(smokeqyoto_object * o) { #define SET_SMOKEQYOTO_OBJECT(className) \ { \ Smoke::ModuleIndex mi = Smoke::findClass(className); \ o->classId = mi.index; \ o->smoke = mi.smoke; \ } if (o->smoke->isDerivedFrom(o->smoke->classes[o->classId].className, "QEvent")) { QEvent * qevent = (QEvent *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QEvent", true).index); switch (qevent->type()) { case QEvent::Timer: SET_SMOKEQYOTO_OBJECT("QTimerEvent") break; case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseButtonDblClick: case QEvent::MouseMove: SET_SMOKEQYOTO_OBJECT("QMouseEvent") break; case QEvent::KeyPress: case QEvent::KeyRelease: case QEvent::ShortcutOverride: SET_SMOKEQYOTO_OBJECT("QKeyEvent") break; case QEvent::FocusIn: case QEvent::FocusOut: SET_SMOKEQYOTO_OBJECT("QFocusEvent") break; case QEvent::Enter: case QEvent::Leave: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::Paint: SET_SMOKEQYOTO_OBJECT("QPaintEvent") break; case QEvent::Move: SET_SMOKEQYOTO_OBJECT("QMoveEvent") break; case QEvent::Resize: SET_SMOKEQYOTO_OBJECT("QResizeEvent") break; case QEvent::Create: case QEvent::Destroy: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::Show: SET_SMOKEQYOTO_OBJECT("QShowEvent") break; case QEvent::Hide: SET_SMOKEQYOTO_OBJECT("QHideEvent") break; case QEvent::Close: SET_SMOKEQYOTO_OBJECT("QCloseEvent") break; case QEvent::Quit: case QEvent::ParentChange: case QEvent::ParentAboutToChange: case QEvent::ThreadChange: case QEvent::WindowActivate: case QEvent::WindowDeactivate: case QEvent::ShowToParent: case QEvent::HideToParent: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::Wheel: SET_SMOKEQYOTO_OBJECT("QWheelEvent") break; case QEvent::WindowTitleChange: case QEvent::WindowIconChange: case QEvent::ApplicationWindowIconChange: case QEvent::ApplicationFontChange: case QEvent::ApplicationLayoutDirectionChange: case QEvent::ApplicationPaletteChange: case QEvent::PaletteChange: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::Clipboard: SET_SMOKEQYOTO_OBJECT("QClipboardEvent") break; case QEvent::Speech: case QEvent::MetaCall: case QEvent::SockAct: case QEvent::WinEventAct: case QEvent::DeferredDelete: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::DragEnter: SET_SMOKEQYOTO_OBJECT("QDragEnterEvent") break; case QEvent::DragLeave: SET_SMOKEQYOTO_OBJECT("QDragLeaveEvent") break; case QEvent::DragMove: SET_SMOKEQYOTO_OBJECT("QDragMoveEvent") break; case QEvent::Drop: SET_SMOKEQYOTO_OBJECT("QDropEvent") break; case QEvent::DragResponse: SET_SMOKEQYOTO_OBJECT("QDragResponseEvent") break; case QEvent::ChildAdded: case QEvent::ChildRemoved: case QEvent::ChildPolished: SET_SMOKEQYOTO_OBJECT("QChildEvent") break; case QEvent::ShowWindowRequest: case QEvent::PolishRequest: case QEvent::Polish: case QEvent::LayoutRequest: case QEvent::UpdateRequest: case QEvent::EmbeddingControl: case QEvent::ActivateControl: case QEvent::DeactivateControl: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::ContextMenu: SET_SMOKEQYOTO_OBJECT("QContextMenuEvent") break; case QEvent::DynamicPropertyChange: SET_SMOKEQYOTO_OBJECT("QDynamicPropertyChangeEvent") break; case QEvent::InputMethod: SET_SMOKEQYOTO_OBJECT("QInputMethodEvent") break; case QEvent::AccessibilityPrepare: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::TabletMove: case QEvent::TabletPress: case QEvent::TabletRelease: SET_SMOKEQYOTO_OBJECT("QTabletEvent") break; case QEvent::LocaleChange: case QEvent::LanguageChange: case QEvent::LayoutDirectionChange: case QEvent::Style: case QEvent::OkRequest: case QEvent::HelpRequest: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::IconDrag: SET_SMOKEQYOTO_OBJECT("QIconDragEvent") break; case QEvent::FontChange: case QEvent::EnabledChange: case QEvent::ActivationChange: case QEvent::StyleChange: case QEvent::IconTextChange: case QEvent::ModifiedChange: case QEvent::MouseTrackingChange: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::WindowBlocked: case QEvent::WindowUnblocked: case QEvent::WindowStateChange: SET_SMOKEQYOTO_OBJECT("QWindowStateChangeEvent") break; case QEvent::ToolTip: case QEvent::WhatsThis: SET_SMOKEQYOTO_OBJECT("QHelpEvent") break; case QEvent::StatusTip: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::ActionChanged: case QEvent::ActionAdded: case QEvent::ActionRemoved: SET_SMOKEQYOTO_OBJECT("QActionEvent") break; case QEvent::FileOpen: SET_SMOKEQYOTO_OBJECT("QFileOpenEvent") break; case QEvent::Shortcut: SET_SMOKEQYOTO_OBJECT("QShortcutEvent") break; case QEvent::WhatsThisClicked: SET_SMOKEQYOTO_OBJECT("QWhatsThisClickedEvent") break; case QEvent::ToolBarChange: SET_SMOKEQYOTO_OBJECT("QToolBarChangeEvent") break; case QEvent::ApplicationActivated: case QEvent::ApplicationDeactivated: case QEvent::QueryWhatsThis: case QEvent::EnterWhatsThisMode: case QEvent::LeaveWhatsThisMode: case QEvent::ZOrderChange: SET_SMOKEQYOTO_OBJECT("QEvent") break; case QEvent::HoverEnter: case QEvent::HoverLeave: case QEvent::HoverMove: SET_SMOKEQYOTO_OBJECT("QHoverEvent") break; case QEvent::AccessibilityHelp: case QEvent::AccessibilityDescription: SET_SMOKEQYOTO_OBJECT("QEvent") break; #if QT_VERSION >= 0x40200 case QEvent::GraphicsSceneMouseMove: case QEvent::GraphicsSceneMousePress: case QEvent::GraphicsSceneMouseRelease: case QEvent::GraphicsSceneMouseDoubleClick: SET_SMOKEQYOTO_OBJECT("QGraphicsSceneMouseEvent") break; case QEvent::GraphicsSceneContextMenu: SET_SMOKEQYOTO_OBJECT("QGraphicsSceneContextMenuEvent") break; case QEvent::GraphicsSceneHoverEnter: case QEvent::GraphicsSceneHoverMove: case QEvent::GraphicsSceneHoverLeave: SET_SMOKEQYOTO_OBJECT("QGraphicsSceneHoverEvent") break; case QEvent::GraphicsSceneHelp: SET_SMOKEQYOTO_OBJECT("QGraphicsSceneHelpEvent") break; case QEvent::GraphicsSceneDragEnter: case QEvent::GraphicsSceneDragMove: case QEvent::GraphicsSceneDragLeave: case QEvent::GraphicsSceneDrop: SET_SMOKEQYOTO_OBJECT("QGraphicsSceneDragDropEvent") break; case QEvent::GraphicsSceneWheel: SET_SMOKEQYOTO_OBJECT("QGraphicsSceneWheelEvent") break; case QEvent::KeyboardLayoutChange: SET_SMOKEQYOTO_OBJECT("QEvent") break; #endif default: break; } }
static void qeventTypeResolver(JSmoke::Object::Instance * instance) { Smoke::ModuleIndex classId = instance->classId; Smoke * smoke = classId.smoke; QEvent * qevent = reinterpret_cast<QEvent*>(instance->cast(JSmoke::Global::QEventClassId)); switch (qevent->type()) { case QEvent::Timer: instance->classId = smoke->findClass("QTimerEvent"); break; case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseButtonDblClick: case QEvent::MouseMove: instance->classId = smoke->findClass("QMouseEvent"); break; case QEvent::KeyPress: case QEvent::KeyRelease: case QEvent::ShortcutOverride: instance->classId = smoke->findClass("QKeyEvent"); break; case QEvent::FocusIn: case QEvent::FocusOut: instance->classId = smoke->findClass("QFocusEvent"); break; case QEvent::Enter: case QEvent::Leave: instance->classId = smoke->findClass("QEvent"); break; case QEvent::Paint: instance->classId = smoke->findClass("QPaintEvent"); break; case QEvent::Move: instance->classId = smoke->findClass("QMoveEvent"); break; case QEvent::Resize: instance->classId = smoke->findClass("QResizeEvent"); break; case QEvent::Create: case QEvent::Destroy: instance->classId = smoke->findClass("QEvent"); break; case QEvent::Show: instance->classId = smoke->findClass("QShowEvent"); break; case QEvent::Hide: instance->classId = smoke->findClass("QHideEvent"); case QEvent::Close: instance->classId = smoke->findClass("QCloseEvent"); break; case QEvent::Quit: case QEvent::ParentChange: case QEvent::ParentAboutToChange: case QEvent::ThreadChange: case QEvent::WindowActivate: case QEvent::WindowDeactivate: case QEvent::ShowToParent: case QEvent::HideToParent: instance->classId = smoke->findClass("QEvent"); break; case QEvent::Wheel: instance->classId = smoke->findClass("QWheelEvent"); break; case QEvent::WindowTitleChange: case QEvent::WindowIconChange: case QEvent::ApplicationWindowIconChange: case QEvent::ApplicationFontChange: case QEvent::ApplicationLayoutDirectionChange: case QEvent::ApplicationPaletteChange: case QEvent::PaletteChange: instance->classId = smoke->findClass("QEvent"); break; case QEvent::Clipboard: instance->classId = smoke->findClass("QClipboardEvent"); break; case QEvent::Speech: case QEvent::MetaCall: case QEvent::SockAct: case QEvent::WinEventAct: case QEvent::DeferredDelete: instance->classId = smoke->findClass("QEvent"); break; case QEvent::DragEnter: instance->classId = smoke->findClass("QDragEnterEvent"); break; case QEvent::DragLeave: instance->classId = smoke->findClass("QDragLeaveEvent"); break; case QEvent::DragMove: instance->classId = smoke->findClass("QDragMoveEvent"); case QEvent::Drop: instance->classId = smoke->findClass("QDropEvent"); break; case QEvent::DragResponse: instance->classId = smoke->findClass("QDragResponseEvent"); break; case QEvent::ChildAdded: case QEvent::ChildRemoved: case QEvent::ChildPolished: instance->classId = smoke->findClass("QChildEvent"); break; case QEvent::ShowWindowRequest: case QEvent::PolishRequest: case QEvent::Polish: case QEvent::LayoutRequest: case QEvent::UpdateRequest: case QEvent::EmbeddingControl: case QEvent::ActivateControl: case QEvent::DeactivateControl: instance->classId = smoke->findClass("QEvent"); break; case QEvent::ContextMenu: instance->classId = smoke->findClass("QContextMenuEvent"); break; case QEvent::DynamicPropertyChange: instance->classId = smoke->findClass("QDynamicPropertyChangeEvent"); break; case QEvent::InputMethod: instance->classId = smoke->findClass("QInputMethodEvent"); break; case QEvent::AccessibilityPrepare: instance->classId = smoke->findClass("QEvent"); break; case QEvent::TabletMove: case QEvent::TabletPress: case QEvent::TabletRelease: instance->classId = smoke->findClass("QTabletEvent"); break; case QEvent::LocaleChange: case QEvent::LanguageChange: case QEvent::LayoutDirectionChange: case QEvent::Style: case QEvent::OkRequest: case QEvent::HelpRequest: instance->classId = smoke->findClass("QEvent"); break; case QEvent::IconDrag: instance->classId = smoke->findClass("QIconDragEvent"); break; case QEvent::FontChange: case QEvent::EnabledChange: case QEvent::ActivationChange: case QEvent::StyleChange: case QEvent::IconTextChange: case QEvent::ModifiedChange: case QEvent::MouseTrackingChange: instance->classId = smoke->findClass("QEvent"); break; case QEvent::WindowBlocked: case QEvent::WindowUnblocked: case QEvent::WindowStateChange: instance->classId = smoke->findClass("QWindowStateChangeEvent"); break; case QEvent::ToolTip: case QEvent::WhatsThis: instance->classId = smoke->findClass("QHelpEvent"); break; case QEvent::StatusTip: instance->classId = smoke->findClass("QEvent"); break; case QEvent::ActionChanged: case QEvent::ActionAdded: case QEvent::ActionRemoved: instance->classId = smoke->findClass("QActionEvent"); break; case QEvent::FileOpen: instance->classId = smoke->findClass("QFileOpenEvent"); break; case QEvent::Shortcut: instance->classId = smoke->findClass("QShortcutEvent"); break; case QEvent::WhatsThisClicked: instance->classId = smoke->findClass("QWhatsThisClickedEvent"); break; case QEvent::ToolBarChange: instance->classId = smoke->findClass("QToolBarChangeEvent"); break; case QEvent::ApplicationActivated: case QEvent::ApplicationDeactivated: case QEvent::QueryWhatsThis: case QEvent::EnterWhatsThisMode: case QEvent::LeaveWhatsThisMode: case QEvent::ZOrderChange: instance->classId = smoke->findClass("QEvent"); break; case QEvent::HoverEnter: case QEvent::HoverLeave: case QEvent::HoverMove: instance->classId = smoke->findClass("QHoverEvent"); break; case QEvent::AccessibilityHelp: case QEvent::AccessibilityDescription: instance->classId = smoke->findClass("QEvent"); case QEvent::GraphicsSceneMouseMove: case QEvent::GraphicsSceneMousePress: case QEvent::GraphicsSceneMouseRelease: case QEvent::GraphicsSceneMouseDoubleClick: instance->classId = smoke->findClass("QGraphicsSceneMouseEvent"); break; case QEvent::GraphicsSceneContextMenu: instance->classId = smoke->findClass("QGraphicsSceneContextMenuEvent"); break; case QEvent::GraphicsSceneHoverEnter: case QEvent::GraphicsSceneHoverMove: case QEvent::GraphicsSceneHoverLeave: instance->classId = smoke->findClass("QGraphicsSceneHoverEvent"); break; case QEvent::GraphicsSceneHelp: instance->classId = smoke->findClass("QGraphicsSceneHelpEvent"); break; case QEvent::GraphicsSceneDragEnter: case QEvent::GraphicsSceneDragMove: case QEvent::GraphicsSceneDragLeave: case QEvent::GraphicsSceneDrop: instance->classId = smoke->findClass("QGraphicsSceneDragDropEvent"); break; case QEvent::GraphicsSceneWheel: instance->classId = smoke->findClass("QGraphicsSceneWheelEvent"); break; case QEvent::KeyboardLayoutChange: instance->classId = smoke->findClass("QEvent"); break; default: break; } instance->value = instance->cast(instance->classId); return; }
SES_Base::ProcRetVal SES_DrawWire::processPositioningSceneEvent( SEE_Base* event) noexcept { QEvent* qevent = SEE_RedirectedQEvent::getQEventFromSEE(event); Q_ASSERT(qevent); if (!qevent) return PassToParentState; Schematic* schematic = mEditor.getActiveSchematic(); Q_ASSERT(schematic); if (!schematic) return PassToParentState; switch (qevent->type()) { case QEvent::GraphicsSceneMouseDoubleClick: case QEvent::GraphicsSceneMousePress: { QGraphicsSceneMouseEvent* sceneEvent = dynamic_cast<QGraphicsSceneMouseEvent*>(qevent); Point pos = Point::fromPx(sceneEvent->scenePos()) .mappedToGrid(mEditor.getGridProperties().getInterval()); switch (sceneEvent->button()) { case Qt::LeftButton: // fix the current point and add a new point + line addNextNetPoint(*schematic, pos); return ForceStayInState; case Qt::RightButton: return ForceStayInState; default: break; } break; } case QEvent::GraphicsSceneMouseRelease: { QGraphicsSceneMouseEvent* sceneEvent = dynamic_cast<QGraphicsSceneMouseEvent*>(qevent); Point pos = Point::fromPx(sceneEvent->scenePos()) .mappedToGrid(mEditor.getGridProperties().getInterval()); switch (sceneEvent->button()) { case Qt::RightButton: if (sceneEvent->screenPos() == sceneEvent->buttonDownScreenPos(Qt::RightButton)) { // switch to next wire mode mWireMode = static_cast<WireMode>(mWireMode + 1); if (mWireMode == WireMode_COUNT) mWireMode = static_cast<WireMode>(0); updateWireModeActionsCheckedState(); updateNetpointPositions(pos); return ForceStayInState; } break; default: break; } break; } case QEvent::GraphicsSceneMouseMove: { QGraphicsSceneMouseEvent* sceneEvent = dynamic_cast<QGraphicsSceneMouseEvent*>(qevent); Q_ASSERT(sceneEvent); Point pos = Point::fromPx(sceneEvent->scenePos()) .mappedToGrid(mEditor.getGridProperties().getInterval()); updateNetpointPositions(pos); return ForceStayInState; } default: break; } return PassToParentState; }
SES_Base::ProcRetVal SES_AddNetLabel::processSceneEvent(SEE_Base* event) noexcept { QEvent* qevent = SEE_RedirectedQEvent::getQEventFromSEE(event); Q_ASSERT(qevent); if (!qevent) return PassToParentState; Schematic* schematic = mEditor.getActiveSchematic(); Q_ASSERT(schematic); if (!schematic) return PassToParentState; switch (qevent->type()) { case QEvent::GraphicsSceneMouseDoubleClick: case QEvent::GraphicsSceneMousePress: { QGraphicsSceneMouseEvent* sceneEvent = dynamic_cast<QGraphicsSceneMouseEvent*>(qevent); Point pos = Point::fromPx(sceneEvent->scenePos(), mEditor.getGridProperties().getInterval()); switch (sceneEvent->button()) { case Qt::LeftButton: { fixLabel(pos); addLabel(*schematic); updateLabel(*schematic, pos); return ForceStayInState; } case Qt::RightButton: return ForceStayInState; default: break; } break; } case QEvent::GraphicsSceneMouseRelease: { QGraphicsSceneMouseEvent* sceneEvent = dynamic_cast<QGraphicsSceneMouseEvent*>(qevent); Point pos = Point::fromPx(sceneEvent->scenePos(), mEditor.getGridProperties().getInterval()); switch (sceneEvent->button()) { case Qt::RightButton: { if (sceneEvent->screenPos() == sceneEvent->buttonDownScreenPos(Qt::RightButton)) { mEditCmd->rotate(Angle::deg90(), pos, true); return ForceStayInState; } break; } default: break; } break; } case QEvent::GraphicsSceneMouseMove: { QGraphicsSceneMouseEvent* sceneEvent = dynamic_cast<QGraphicsSceneMouseEvent*>(qevent); Q_ASSERT(sceneEvent); Point pos = Point::fromPx(sceneEvent->scenePos(), mEditor.getGridProperties().getInterval()); updateLabel(*schematic, pos); return ForceStayInState; } default: break; } return PassToParentState; }