diff --git a/src/lib/data/html.qrc b/src/lib/data/html.qrc index 34f890a2e..ecd44d677 100644 --- a/src/lib/data/html.qrc +++ b/src/lib/data/html.qrc @@ -11,6 +11,7 @@ html/config.html html/restore.html html/restore.user.js + html/marker.js html/tabcrash.html html/close.svg html/configure.svg diff --git a/js/marker.js b/src/lib/data/html/marker.js similarity index 100% rename from js/marker.js rename to src/lib/data/html/marker.js diff --git a/src/lib/webengine/webpage.cpp b/src/lib/webengine/webpage.cpp index 15f91e53b..aae1f185f 100644 --- a/src/lib/webengine/webpage.cpp +++ b/src/lib/webengine/webpage.cpp @@ -295,6 +295,9 @@ void WebPage::finished() // AutoFill m_autoFillUsernames = mApp->autoFill()->completePage(this, url()); + + // inject marker.js + runJavaScript(QzTools::readAllFileContents(QSL(":html/marker.js"))); } void WebPage::watchedFileChanged(const QString &file) @@ -687,6 +690,10 @@ void WebPage::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, cons std::cout << qPrintable(sourceID) << ":" << lineNumber << " " << qPrintable(message); } +void WebPage::getLinkMarkers() { + runJavaScript("Marker.generateMarker('a, input, button, [class*=\"btn\"], [aria-haspopup], [role=\"button\"], textarea, select, summary, [class=\"gap\"], [ng-click]')"); +} + QWebEnginePage* WebPage::createWindow(QWebEnginePage::WebWindowType type) { auto *tView = qobject_cast(view()); diff --git a/src/lib/webengine/webpage.h b/src/lib/webengine/webpage.h index a61e8c41d..4aff9ad06 100644 --- a/src/lib/webengine/webpage.h +++ b/src/lib/webengine/webpage.h @@ -77,6 +77,8 @@ public: static void addSupportedScheme(const QString &scheme); static void removeSupportedScheme(const QString &scheme); + void getLinkMarkers(); + Q_SIGNALS: void privacyChanged(bool status); void printRequested(); diff --git a/src/lib/webengine/webview.cpp b/src/lib/webengine/webview.cpp index 4047e24dc..11f2e4282 100644 --- a/src/lib/webengine/webview.cpp +++ b/src/lib/webengine/webview.cpp @@ -1203,7 +1203,9 @@ void WebView::_keyReleaseEvent(QKeyEvent *event) event->accept(); } break; - + case Qt::Key_F: + page()->getLinkMarkers(); + event->accept(); default: break; }