WebBrowser/WebBrowserView.py

changeset 4956
1496516b0f2c
parent 4954
36e92a908f3f
child 4958
ef400197e7d5
--- a/WebBrowser/WebBrowserView.py	Tue Apr 26 19:09:18 2016 +0200
+++ b/WebBrowser/WebBrowserView.py	Wed Apr 27 19:44:22 2016 +0200
@@ -578,6 +578,8 @@
         @param hitTest reference to the hit test object
         @type WebHitTestResult
         """
+        from WebBrowser.WebBrowserWindow import WebBrowserWindow
+        
         if not menu.isEmpty():
             menu.addSeparator()
         
@@ -599,6 +601,28 @@
             UI.PixmapCache.getIcon("mailSend.png"),
             self.tr("Send Image Link"),
             self.__sendLink).setData(hitTest.imageUrl())
+        
+        if hitTest.imageUrl().scheme() in ["http", "https"]:
+            menu.addSeparator()
+            engine = WebBrowserWindow.imageSearchEngine()
+            searchEngineName = engine.searchEngine()
+            menu.addAction(
+                UI.PixmapCache.getIcon("{0}.png".format(
+                    searchEngineName.lower())),
+                self.tr("Search image in {0}").format(searchEngineName),
+                self.__searchImage).setData(
+                    engine.getSearchQuery(hitTest.imageUrl()))
+            self.__imageSearchMenu = menu.addMenu(
+                self.tr("Search image with..."))
+            for searchEngineName in engine.searchEngineNames():
+                self.__imageSearchMenu.addAction(
+                    UI.PixmapCache.getIcon("{0}.png".format(
+                        searchEngineName.lower())),
+                    self.tr("Search image in {0}").format(searchEngineName),
+                    self.__searchImage).setData(
+                        engine.getSearchQuery(
+                            hitTest.imageUrl(), searchEngineName))
+        
         menu.addSeparator()
         menu.addAction(
             UI.PixmapCache.getIcon("adBlockPlus.png"),
@@ -969,6 +993,14 @@
         dlg = WebBrowserWindow.adBlockManager().showDialog()
         dlg.addCustomRule(url)
     
+    def __searchImage(self):
+        """
+        Private slot to search for an image URL.
+        """
+        act = self.sender()
+        url = act.data()
+        self.setSource(url, newTab=True)
+    
     def __downloadMedia(self):
         """
         Private slot to download a media and save it to disk.

eric ide

mercurial