36#include <QQuickWidget>
41 : m_qmlReusableTab(new
QmlTab())
47 m_qmlReusableTab->deleteLater();
52 if (!m_init.isCallable()) {
53 qWarning() <<
"Unable to call" << __FUNCTION__ <<
"on" << m_name <<
"plugin";
59 args.append(settingsPath);
65 if (!m_unload.isCallable()) {
66 qWarning() <<
"Unable to call" << __FUNCTION__ <<
"on" << m_name <<
"plugin";
72 for (QObject *childItem : std::as_const(m_childItems)) {
73 childItem->deleteLater();
81 if (!m_testPlugin.isCallable()) {
82 qWarning() <<
"Unable to call" << __FUNCTION__ <<
"on" << m_name <<
"plugin";
86 QJSValue ret = m_testPlugin.call();
94 if (!m_populateWebViewMenu.isCallable()) {
98 auto *qmlMenu =
new QmlMenu(menu, m_engine);
101 args.append(m_engine->newQObject(qmlMenu));
102 args.append(m_engine->newQObject(qmlWebHitTestResult));
103 m_populateWebViewMenu.call(args);
104 menu->addSeparator();
109 if (!m_settingsWindow) {
110 qWarning() <<
"No dialog to show";
114 auto *widget =
new QQuickWidget();
115 widget->setContent(m_settingsWindow->url(), m_settingsWindow, m_settingsWindow->create(m_settingsWindow->creationContext()));
124 if (!m_mouseDoubleClick.isCallable()) {
130 args.append(m_engine->newQObject(qmlMouseEvent));
131 m_mouseDoubleClick.call(args);
132 qmlMouseEvent->clear();
139 if (!m_mousePress.isCallable()) {
145 args.append(m_engine->newQObject(qmlMouseEvent));
146 m_mousePress.call(args);
147 qmlMouseEvent->clear();
154 if (!m_mouseRelease.isCallable()) {
160 args.append(m_engine->newQObject(qmlMouseEvent));
161 m_mouseRelease.call(args);
162 qmlMouseEvent->clear();
169 if (!m_mouseMove.isCallable()) {
175 args.append(m_engine->newQObject(qmlMouseEvent));
176 m_mouseMove.call(args);
177 qmlMouseEvent->clear();
184 if (!m_wheelEvent.isCallable()) {
190 args.append(m_engine->newQObject(qmlWheelEvent));
191 m_wheelEvent.call(args);
192 qmlWheelEvent->clear();
199 if (!m_keyPress.isCallable()) {
205 args.append(m_engine->newQObject(qmlKeyEvent));
206 m_keyPress.call(args);
207 qmlKeyEvent->clear();
214 if (!m_keyRelease.isCallable()) {
220 args.append(m_engine->newQObject(qmlKeyEvent));
221 m_keyRelease.call(args);
222 qmlKeyEvent->clear();
228 if (!m_acceptNavigationRequest.isCallable()) {
233 args.append(m_engine->newQObject(m_qmlReusableTab));
234 args.append(QString::fromUtf8(url.toEncoded()));
236 args.append(isMainFrame);
237 return m_acceptNavigationRequest.call(args).toBool();
240QJSValue QmlPluginInterface::readInit()
const
245void QmlPluginInterface::setInit(
const QJSValue &init)
250QJSValue QmlPluginInterface::readUnload()
const
255void QmlPluginInterface::setUnload(
const QJSValue &unload)
260QJSValue QmlPluginInterface::readTestPlugin()
const
265void QmlPluginInterface::setTestPlugin(
const QJSValue &testPlugin)
280QJSValue QmlPluginInterface::readPopulateWebViewMenu()
const
282 return m_populateWebViewMenu;
285void QmlPluginInterface::setPopulateWebViewMenu(
const QJSValue &
value)
287 m_populateWebViewMenu =
value;
292 return m_settingsWindow;
295void QmlPluginInterface::setSettingsWindow(QQmlComponent *settingsWindow)
300QJSValue QmlPluginInterface::readMouseDoubleClick()
const
302 return m_mouseDoubleClick;
305void QmlPluginInterface::setMouseDoubleClick(
const QJSValue &mouseDoubleClick)
311QJSValue QmlPluginInterface::readMousePress()
const
316void QmlPluginInterface::setMousePress(
const QJSValue &mousePress)
322QJSValue QmlPluginInterface::readMouseRelease()
const
324 return m_mouseRelease;
327void QmlPluginInterface::setMouseRelease(
const QJSValue &mouseRelease)
333QJSValue QmlPluginInterface::readMouseMove()
const
338void QmlPluginInterface::setMouseMove(
const QJSValue &mouseMove)
344QJSValue QmlPluginInterface::readWheelEvent()
const
349void QmlPluginInterface::setWheelEvent(
const QJSValue &wheelEvent)
355QJSValue QmlPluginInterface::readKeyPress()
const
360void QmlPluginInterface::setKeyPress(
const QJSValue &keyPress)
366QJSValue QmlPluginInterface::readKeyRelease()
const
371void QmlPluginInterface::setKeyRelease(
const QJSValue &keyRelease)
377QJSValue QmlPluginInterface::readAcceptNavigationRequest()
const
379 return m_acceptNavigationRequest;
382void QmlPluginInterface::setAcceptNavigationRequest(
const QJSValue &acceptNavigationRequest)
389 return QQmlListProperty<QObject>(
this, &m_childItems);
@ MouseDoubleClickHandler
The class exposing KeyEvent to QML.
The class exposing MouseEvent to QML.
QQmlListProperty< QObject > childItems
void showSettings(QWidget *parent=nullptr) override
void setName(const QString &name)
~QmlPluginInterface() override
QJSValue mouseDoubleClick
void setEngine(QQmlEngine *engine)
QJSValue acceptNavigationRequest
QQmlComponent * settingsWindow
QJSValue populateWebViewMenu
ObjectName
The ObjectName enum.
The class exposing a browser tab to QML.
void setWebPage(WebPage *webPage)
The class exposing result of WebHitTest to QML.
The class exposing WheelEvent to QML.
int value(const QColor &c)