Skip to content

Commit ee7d3e7

Browse files
committed
WIP: quick1 web view, mouse commands
1 parent f02168e commit ee7d3e7

File tree

1 file changed

+58
-4
lines changed

1 file changed

+58
-4
lines changed

src/webdriver/extension_qt/qml_web_view_executor.cc

Lines changed: 58 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,19 +195,73 @@ void QmlWebViewCmdExecutor::SendKeys(const ElementId& element, const string16& k
195195
}
196196

197197
void QmlWebViewCmdExecutor::MouseDoubleClick(Error** error) {
198-
// TODO:
198+
CHECK_VIEW_EXISTANCE
199+
200+
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
201+
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
202+
203+
QGraphicsSceneMouseEvent *dbClckEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseDoubleClick);
204+
dbClckEvent->setScenePos(scenePoint);
205+
dbClckEvent->setButton(Qt::LeftButton);
206+
dbClckEvent->setButtons(Qt::LeftButton);
207+
208+
QGraphicsSceneMouseEvent *releaseEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease);
209+
releaseEvent->setScenePos(scenePoint);
210+
releaseEvent->setButton(Qt::LeftButton);
211+
releaseEvent->setButtons(Qt::NoButton);
212+
213+
QApplication::postEvent(container_->scene(), dbClckEvent);
214+
QApplication::postEvent(container_->scene(), releaseEvent);
199215
}
200216

201217
void QmlWebViewCmdExecutor::MouseButtonUp(Error** error) {
202-
// TODO:
218+
CHECK_VIEW_EXISTANCE
219+
220+
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
221+
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
222+
223+
QGraphicsSceneMouseEvent *releaseEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease);
224+
releaseEvent->setScenePos(scenePoint);
225+
releaseEvent->setButton(Qt::LeftButton);
226+
releaseEvent->setButtons(Qt::NoButton);
227+
228+
QApplication::postEvent(container_->scene(), releaseEvent);
203229
}
204230

205231
void QmlWebViewCmdExecutor::MouseButtonDown(Error** error) {
206-
// TODO:
232+
CHECK_VIEW_EXISTANCE
233+
234+
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
235+
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
236+
237+
QGraphicsSceneMouseEvent *pressEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMousePress);
238+
pressEvent->setScenePos(scenePoint);
239+
pressEvent->setButton(Qt::LeftButton);
240+
pressEvent->setButtons(Qt::LeftButton);
241+
242+
QApplication::postEvent(container_->scene(), pressEvent);
207243
}
208244

209245
void QmlWebViewCmdExecutor::MouseClick(MouseButton button, Error** error) {
210-
// TODO:
246+
CHECK_VIEW_EXISTANCE
247+
248+
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
249+
QPointF scenePoint = view_->mapToScene(point.x(), point.y());
250+
251+
Qt::MouseButton mouseButton = QCommonUtil::ConvertMouseButtonToQtMouseButton(button);
252+
253+
QGraphicsSceneMouseEvent *pressEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMousePress);
254+
pressEvent->setScenePos(scenePoint);
255+
pressEvent->setButton(mouseButton);
256+
pressEvent->setButtons(mouseButton);
257+
258+
QGraphicsSceneMouseEvent *releaseEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease);
259+
releaseEvent->setScenePos(scenePoint);
260+
releaseEvent->setButton(mouseButton);
261+
releaseEvent->setButtons(Qt::NoButton);
262+
263+
QApplication::postEvent(container_->scene(), pressEvent);
264+
QApplication::postEvent(container_->scene(), releaseEvent);
211265
}
212266

213267
void QmlWebViewCmdExecutor::MouseMove(const int x_offset, const int y_offset, Error** error) {

0 commit comments

Comments
 (0)