2011-02-26 03:57:55 +00:00
|
|
|
#include "JavascriptInvocation.h"
|
2012-12-11 03:53:03 +00:00
|
|
|
#include "WebPage.h"
|
|
|
|
#include <QApplication>
|
2011-02-26 03:57:55 +00:00
|
|
|
|
2012-12-11 03:53:03 +00:00
|
|
|
JavascriptInvocation::JavascriptInvocation(const QString &functionName, const QStringList &arguments, WebPage *page, QObject *parent) : QObject(parent) {
|
2011-02-26 03:57:55 +00:00
|
|
|
m_functionName = functionName;
|
|
|
|
m_arguments = arguments;
|
2012-12-11 03:53:03 +00:00
|
|
|
m_page = page;
|
2011-02-26 03:57:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
QString &JavascriptInvocation::functionName() {
|
|
|
|
return m_functionName;
|
|
|
|
}
|
|
|
|
|
|
|
|
QStringList &JavascriptInvocation::arguments() {
|
|
|
|
return m_arguments;
|
|
|
|
}
|
2012-12-11 03:53:03 +00:00
|
|
|
|
|
|
|
void JavascriptInvocation::click(const QWebElement &element, int left, int top, int width, int height) {
|
|
|
|
QRect elementBox(left, top, width, height);
|
|
|
|
QWebFrame *parent = element.webFrame();
|
|
|
|
while (parent) {
|
|
|
|
elementBox = elementBox.translated(parent->geometry().topLeft());
|
|
|
|
parent = parent->parentFrame();
|
|
|
|
}
|
|
|
|
QRect viewport(QPoint(0, 0), m_page->viewportSize());
|
|
|
|
QPoint mousePos = elementBox.intersected(viewport).center();
|
|
|
|
|
|
|
|
QMouseEvent event(QEvent::MouseMove, mousePos, Qt::NoButton, Qt::NoButton, Qt::NoModifier);
|
|
|
|
QApplication::sendEvent(m_page, &event);
|
|
|
|
|
|
|
|
event = QMouseEvent(QEvent::MouseButtonPress, mousePos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
|
|
|
|
QApplication::sendEvent(m_page, &event);
|
|
|
|
|
|
|
|
event = QMouseEvent(QEvent::MouseButtonRelease, mousePos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
|
|
|
|
QApplication::sendEvent(m_page, &event);
|
|
|
|
}
|