diff -r 4fdbb36fe794 -r 93f95c4b3153 WebBrowser/Tools/WebHitTestResult.py --- a/WebBrowser/Tools/WebHitTestResult.py Sat Feb 18 12:23:35 2017 +0100 +++ b/WebBrowser/Tools/WebHitTestResult.py Sat Feb 18 19:59:14 2017 +0100 @@ -106,6 +106,31 @@ """.format(self.__viewportPos.x(), self.__viewportPos.y()) self.__populate(page.url(), page.execJavaScript(script)) + def updateWithContextMenuData(self, data): + """ + Public method to update the hit test data with data from the context + menu event. + + Note: This works for Qt >= 5.7.0. + + @param data context menu data + @type QWebEngineContextMenuData + """ + from PyQt5.QtWebEngineWidgets import QWebEngineContextMenuData + if not data.isValid() or data.position() != self.__pos: + return + + self.__linkTitle = data.linkText() + self.__linkUrl = data.linkUrl() + self.__isContentEditable = data.isContentEditable() + self.__isContentSelected = bool(data.selectedText()) + + if data.mediaType() == QWebEngineContextMenuData.MediaTypeImage: + self.__imageUrl = data.mediaUrl() + elif data.mediaType() in [QWebEngineContextMenuData.MediaTypeAudio, + QWebEngineContextMenuData.MediaTypeVideo]: + self.__mediaUrl = data.mediaUrl() + def baseUrl(self): """ Public method to get the base URL of the page.