void EventSender::mouseDown(int button, const QStringList& modifiers) { Qt::KeyboardModifiers modifs = getModifiers(modifiers); Qt::MouseButton mouseButton; switch (button) { case 0: mouseButton = Qt::LeftButton; break; case 1: mouseButton = Qt::MidButton; break; case 2: mouseButton = Qt::RightButton; break; case 3: // fast/events/mouse-click-events expects the 4th button to be treated as the middle button mouseButton = Qt::MidButton; break; default: mouseButton = Qt::LeftButton; break; } // only consider a click to count, an event originated by the // same previous button and at the same position. if (m_currentButton == button && m_mousePos == m_clickPos && m_clickTimer.isActive()) m_clickCount++; else m_clickCount = 1; m_currentButton = button; m_clickPos = m_mousePos; m_mouseButtons |= mouseButton; // qDebug() << "EventSender::mouseDown" << frame; QEvent* event; if (isGraphicsBased()) { event = createGraphicsSceneMouseEvent((m_clickCount == 2) ? QEvent::GraphicsSceneMouseDoubleClick : QEvent::GraphicsSceneMousePress, m_mousePos, m_mousePos, mouseButton, m_mouseButtons, modifs); } else { event = new QMouseEvent((m_clickCount == 2) ? QEvent::MouseButtonDblClick : QEvent::MouseButtonPress, m_mousePos, m_mousePos, mouseButton, m_mouseButtons, modifs); } sendOrQueueEvent(event); m_clickTimer.start(QApplication::doubleClickInterval(), this); }
void EventSender::mouseMoveTo(int x, int y) { // qDebug() << "EventSender::mouseMoveTo" << x << y; m_mousePos = QPoint(x, y); QEvent* event; if (isGraphicsBased()) { event = createGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseMove, m_mousePos, m_mousePos, Qt::NoButton, m_mouseButtons, Qt::NoModifier); } else { event = new QMouseEvent(QEvent::MouseMove, m_mousePos, m_mousePos, Qt::NoButton, m_mouseButtons, Qt::NoModifier); } sendOrQueueEvent(event); }
void EventSender::mouseUp(int button) { Qt::MouseButton mouseButton; switch (button) { case 0: mouseButton = Qt::LeftButton; break; case 1: mouseButton = Qt::MidButton; break; case 2: mouseButton = Qt::RightButton; break; case 3: // fast/events/mouse-click-events expects the 4th button to be treated as the middle button mouseButton = Qt::MidButton; break; default: mouseButton = Qt::LeftButton; break; } m_mouseButtons &= ~mouseButton; // qDebug() << "EventSender::mouseUp" << frame; QEvent* event; if (isGraphicsBased()) { event = createGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease, m_mousePos, m_mousePos, mouseButton, m_mouseButtons, Qt::NoModifier); } else { event = new QMouseEvent(QEvent::MouseButtonRelease, m_mousePos, m_mousePos, mouseButton, m_mouseButtons, Qt::NoModifier); } sendOrQueueEvent(event); if (m_currentDragData.urls().isEmpty()) return; event = new QDropEvent(m_mousePos, m_currentDragActionsAllowed, &m_currentDragData, m_mouseButtons, Qt::NoModifier); sendEvent(m_page, event); m_currentDragData.clear(); }
void EventSender::mouseMoveTo(int x, int y) { // qDebug() << "EventSender::mouseMoveTo" << x << y; m_mousePos = QPoint(x, y); QEvent* event; if (isGraphicsBased()) { event = createGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseMove, m_mousePos, m_mousePos, Qt::NoButton, m_mouseButtons, Qt::NoModifier); } else { event = new QMouseEvent(QEvent::MouseMove, m_mousePos, m_mousePos, Qt::NoButton, m_mouseButtons, Qt::NoModifier); } sendOrQueueEvent(event); if (m_currentDragData.urls().isEmpty()) return; Qt::MouseButtons mouseButtons = m_mouseButtons | Qt::LeftButton; event = new QDragMoveEvent(m_mousePos, m_currentDragActionsAllowed, &m_currentDragData, mouseButtons, Qt::NoModifier); sendEvent(m_page, event); }
void EventSender::mouseUp(int button) { Qt::MouseButton mouseButton; switch (button) { case 0: mouseButton = Qt::LeftButton; break; case 1: mouseButton = Qt::MidButton; break; case 2: mouseButton = Qt::RightButton; break; case 3: // fast/events/mouse-click-events expects the 4th button to be treated as the middle button mouseButton = Qt::MidButton; break; default: mouseButton = Qt::LeftButton; break; } m_mouseButtons &= ~mouseButton; // qDebug() << "EventSender::mouseUp" << frame; QEvent* event; if (isGraphicsBased()) { event = createGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease, m_mousePos, m_mousePos, mouseButton, m_mouseButtons, Qt::NoModifier); } else { event = new QMouseEvent(QEvent::MouseButtonRelease, m_mousePos, m_mousePos, mouseButton, m_mouseButtons, Qt::NoModifier); } sendOrQueueEvent(event); }