src/eric7/WebBrowser/OpenSearch/OpenSearchEngineAction.py

branch
eric7
changeset 9209
b99e7fd55fd3
parent 8881
54e42bc2437a
child 9221
bf71ee032bb4
diff -r 3fc8dfeb6ebe -r b99e7fd55fd3 src/eric7/WebBrowser/OpenSearch/OpenSearchEngineAction.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/eric7/WebBrowser/OpenSearch/OpenSearchEngineAction.py	Thu Jul 07 11:23:56 2022 +0200
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a QAction subclass for open search.
+"""
+
+from PyQt6.QtCore import QUrl
+from PyQt6.QtGui import QPixmap, QIcon, QAction
+
+
+class OpenSearchEngineAction(QAction):
+    """
+    Class implementing a QAction subclass for open search.
+    """
+    def __init__(self, engine, parent=None):
+        """
+        Constructor
+        
+        @param engine reference to the open search engine object
+            (OpenSearchEngine)
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(parent)
+        
+        self.__engine = engine
+        if self.__engine.networkAccessManager() is None:
+            import WebBrowser.WebBrowserWindow
+            self.__engine.setNetworkAccessManager(
+                WebBrowser.WebBrowserWindow.WebBrowserWindow.networkManager())
+        
+        self.setText(engine.name())
+        self.__imageChanged()
+        
+        engine.imageChanged.connect(self.__imageChanged)
+    
+    def __imageChanged(self):
+        """
+        Private slot handling a change of the associated image.
+        """
+        image = self.__engine.image()
+        if image.isNull():
+            import WebBrowser.WebBrowserWindow
+            self.setIcon(
+                WebBrowser.WebBrowserWindow.WebBrowserWindow.icon(
+                    QUrl(self.__engine.imageUrl())))
+        else:
+            self.setIcon(QIcon(QPixmap.fromImage(image)))

eric ide

mercurial