--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eric7/WebBrowser/OpenSearch/OpenSearchEngineAction.py Sat May 15 18:45:04 2021 +0200 @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a QAction subclass for open search. +""" + +from PyQt5.QtCore import QUrl +from PyQt5.QtGui import QPixmap, QIcon +from PyQt5.QtWidgets import 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)))