WebBrowser/Tools/WebHitTestResult.py

changeset 5530
93f95c4b3153
parent 5389
9b1c800daff3
child 6048
82ad8ec9548c
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.

eric ide

mercurial