Skip to content

Commit e895f10

Browse files
committed
fixed mouse commands for quick1 web view
1 parent 0f454b7 commit e895f10

File tree

1 file changed

+30
-63
lines changed

1 file changed

+30
-63
lines changed

src/webdriver/extension_qt/qml_web_view_executor.cc

Lines changed: 30 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -297,70 +297,43 @@ void QmlWebViewCmdExecutor::MouseDoubleClick(Error** error) {
297297
CHECK_VIEW_EXISTANCE
298298

299299
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
300-
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
301-
302-
QGraphicsSceneMouseEvent *dbClckEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseDoubleClick);
303-
dbClckEvent->setScenePos(scenePoint);
304-
dbClckEvent->setButton(Qt::LeftButton);
305-
dbClckEvent->setButtons(Qt::LeftButton);
306-
307-
QGraphicsSceneMouseEvent *releaseEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease);
308-
releaseEvent->setScenePos(scenePoint);
309-
releaseEvent->setButton(Qt::LeftButton);
310-
releaseEvent->setButtons(Qt::NoButton);
300+
301+
QMouseEvent *dbEvent = new QMouseEvent(QEvent::MouseButtonDblClick, point, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
302+
QMouseEvent *releaseEvent = new QMouseEvent(QEvent::MouseButtonRelease, point, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
311303

312-
QApplication::postEvent(container_->scene(), dbClckEvent);
313-
QApplication::postEvent(container_->scene(), releaseEvent);
304+
QApplication::postEvent(view_->page(), dbEvent);
305+
QApplication::postEvent(view_->page(), releaseEvent);
314306
}
315307

316308
void QmlWebViewCmdExecutor::MouseButtonUp(Error** error) {
317309
CHECK_VIEW_EXISTANCE
318310

319311
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
320-
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
321-
322-
QGraphicsSceneMouseEvent *releaseEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease);
323-
releaseEvent->setScenePos(scenePoint);
324-
releaseEvent->setButton(Qt::LeftButton);
325-
releaseEvent->setButtons(Qt::NoButton);
326-
327-
QApplication::postEvent(container_->scene(), releaseEvent);
312+
313+
QMouseEvent *releaseEvent = new QMouseEvent(QEvent::MouseButtonRelease, point, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
314+
QApplication::postEvent(view_->page(), releaseEvent);
328315
}
329316

330317
void QmlWebViewCmdExecutor::MouseButtonDown(Error** error) {
331318
CHECK_VIEW_EXISTANCE
332319

333320
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
334-
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
335-
336-
QGraphicsSceneMouseEvent *pressEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMousePress);
337-
pressEvent->setScenePos(scenePoint);
338-
pressEvent->setButton(Qt::LeftButton);
339-
pressEvent->setButtons(Qt::LeftButton);
340-
341-
QApplication::postEvent(container_->scene(), pressEvent);
321+
322+
QMouseEvent *pressEvent = new QMouseEvent(QEvent::MouseButtonPress, point, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
323+
QApplication::sendEvent(view_->page(), pressEvent);
342324
}
343325

344326
void QmlWebViewCmdExecutor::MouseClick(MouseButton button, Error** error) {
345327
CHECK_VIEW_EXISTANCE
346328

347329
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
348-
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
349-
350330
Qt::MouseButton mouseButton = QCommonUtil::ConvertMouseButtonToQtMouseButton(button);
351331

352-
QGraphicsSceneMouseEvent *pressEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMousePress);
353-
pressEvent->setScenePos(scenePoint);
354-
pressEvent->setButton(mouseButton);
355-
pressEvent->setButtons(mouseButton);
356-
357-
QGraphicsSceneMouseEvent *releaseEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease);
358-
releaseEvent->setScenePos(scenePoint);
359-
releaseEvent->setButton(mouseButton);
360-
releaseEvent->setButtons(Qt::NoButton);
332+
QMouseEvent *pressEvent = new QMouseEvent(QEvent::MouseButtonPress, point, mouseButton, Qt::NoButton, Qt::NoModifier);
333+
QMouseEvent *releaseEvent = new QMouseEvent(QEvent::MouseButtonRelease, point, mouseButton, Qt::NoButton, Qt::NoModifier);
361334

362-
QApplication::postEvent(container_->scene(), pressEvent);
363-
QApplication::postEvent(container_->scene(), releaseEvent);
335+
QApplication::postEvent(view_->page(), pressEvent);
336+
QApplication::postEvent(view_->page(), releaseEvent);
364337
}
365338

366339
void QmlWebViewCmdExecutor::MouseMove(const int x_offset, const int y_offset, Error** error) {
@@ -370,15 +343,13 @@ void QmlWebViewCmdExecutor::MouseMove(const int x_offset, const int y_offset, Er
370343
prev_pos.Offset(x_offset, y_offset);
371344

372345
QPoint point = QCommonUtil::ConvertPointToQPoint(prev_pos);
373-
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
374-
375-
QGraphicsSceneMouseEvent *moveEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseMove);
376-
moveEvent->setScenePos(scenePoint);
377-
QApplication::postEvent(container_->scene(), moveEvent);
346+
347+
QMouseEvent *moveEvent = new QMouseEvent(QEvent::MouseMove, point, Qt::NoButton, Qt::NoButton, Qt::NoModifier);
348+
QApplication::postEvent(view_->page(), moveEvent);
378349

379350
session_->logger().Log(kFineLogLevel, base::StringPrintf("mouse move to: %d, %d",
380-
(int)scenePoint.x(),
381-
(int)scenePoint.y()));
351+
(int)point.x(),
352+
(int)point.y()));
382353

383354
session_->set_mouse_position(prev_pos);
384355
}
@@ -394,15 +365,13 @@ void QmlWebViewCmdExecutor::MouseMove(const ElementId& element, int x_offset, co
394365
location.Offset(x_offset, y_offset);
395366

396367
QPoint point = QCommonUtil::ConvertPointToQPoint(location);
397-
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
398-
399-
QGraphicsSceneMouseEvent *moveEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseMove);
400-
moveEvent->setScenePos(scenePoint);
401-
QApplication::postEvent(container_->scene(), moveEvent);
368+
369+
QMouseEvent *moveEvent = new QMouseEvent(QEvent::MouseMove, point, Qt::NoButton, Qt::NoButton, Qt::NoModifier);
370+
QApplication::postEvent(view_->page(), moveEvent);
402371

403372
session_->logger().Log(kFineLogLevel, base::StringPrintf("mouse move to: %d, %d",
404-
(int)scenePoint.x(),
405-
(int)scenePoint.y()));
373+
(int)point.x(),
374+
(int)point.y()));
406375

407376
session_->set_mouse_position(location);
408377
}
@@ -426,15 +395,13 @@ void QmlWebViewCmdExecutor::MouseMove(const ElementId& element, Error** error) {
426395
location.Offset(size.width() / 2, size.height() / 2);
427396

428397
QPoint point = QCommonUtil::ConvertPointToQPoint(location);
429-
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
430-
431-
QGraphicsSceneMouseEvent *moveEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseMove);
432-
moveEvent->setScenePos(scenePoint);
433-
QApplication::postEvent(container_->scene(), moveEvent);
398+
399+
QMouseEvent *moveEvent = new QMouseEvent(QEvent::MouseMove, point, Qt::NoButton, Qt::NoButton, Qt::NoModifier);
400+
QApplication::postEvent(view_->page(), moveEvent);
434401

435402
session_->logger().Log(kFineLogLevel, base::StringPrintf("mouse move to: %d, %d",
436-
(int)scenePoint.x(),
437-
(int)scenePoint.y()));
403+
(int)point.x(),
404+
(int)point.y()));
438405

439406
session_->set_mouse_position(location);
440407
}

0 commit comments

Comments
 (0)