13 from PyQt6.QtWidgets import QCompleter, QMenu |
13 from PyQt6.QtWidgets import QCompleter, QMenu |
14 |
14 |
15 from eric7 import Preferences |
15 from eric7 import Preferences |
16 from eric7.EricGui import EricPixmapCache |
16 from eric7.EricGui import EricPixmapCache |
17 from eric7.EricWidgets.EricLineEdit import EricClearableLineEdit, EricLineEditSide |
17 from eric7.EricWidgets.EricLineEdit import EricClearableLineEdit, EricLineEditSide |
|
18 from eric7.EricWidgets.EricLineEditButton import EricLineEditButton |
|
19 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
18 |
20 |
19 from .WebBrowserPage import WebBrowserPage |
21 from .WebBrowserPage import WebBrowserPage |
20 |
22 |
21 |
23 |
22 class WebBrowserWebSearchWidget(EricClearableLineEdit): |
24 class WebBrowserWebSearchWidget(EricClearableLineEdit): |
35 @param mainWindow reference to the browser main window |
37 @param mainWindow reference to the browser main window |
36 @type WebBrowserWindow |
38 @type WebBrowserWindow |
37 @param parent reference to the parent widget |
39 @param parent reference to the parent widget |
38 @type QWidget |
40 @type QWidget |
39 """ |
41 """ |
|
42 from .OpenSearch.OpenSearchManager import OpenSearchManager |
|
43 |
40 super().__init__(parent) |
44 super().__init__(parent) |
41 |
|
42 from eric7.EricWidgets.EricLineEditButton import EricLineEditButton |
|
43 |
|
44 from .OpenSearch.OpenSearchManager import OpenSearchManager |
|
45 |
45 |
46 self.__mw = mainWindow |
46 self.__mw = mainWindow |
47 |
47 |
48 self.__openSearchManager = OpenSearchManager(self) |
48 self.__openSearchManager = OpenSearchManager(self) |
49 self.__openSearchManager.currentEngineChanged.connect( |
49 self.__openSearchManager.currentEngineChanged.connect( |
242 |
240 |
243 def __showEnginesMenu(self): |
241 def __showEnginesMenu(self): |
244 """ |
242 """ |
245 Private slot to handle the display of the engines menu. |
243 Private slot to handle the display of the engines menu. |
246 """ |
244 """ |
|
245 from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction |
|
246 from .Tools import Scripts |
|
247 |
247 self.__enginesMenu.clear() |
248 self.__enginesMenu.clear() |
248 |
|
249 from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction |
|
250 |
249 |
251 engineNames = self.__openSearchManager.allEnginesNames() |
250 engineNames = self.__openSearchManager.allEnginesNames() |
252 for engineName in engineNames: |
251 for engineName in engineNames: |
253 engine = self.__openSearchManager.engine(engineName) |
252 engine = self.__openSearchManager.engine(engineName) |
254 action = OpenSearchEngineAction(engine, self.__enginesMenu) |
253 action = OpenSearchEngineAction(engine, self.__enginesMenu) |
258 if self.__openSearchManager.currentEngineName() == engineName: |
257 if self.__openSearchManager.currentEngineName() == engineName: |
259 action.setCheckable(True) |
258 action.setCheckable(True) |
260 action.setChecked(True) |
259 action.setChecked(True) |
261 |
260 |
262 cb = self.__mw.currentBrowser() |
261 cb = self.__mw.currentBrowser() |
263 from .Tools import Scripts |
|
264 |
|
265 script = Scripts.getOpenSearchLinks() |
262 script = Scripts.getOpenSearchLinks() |
266 cb.page().runJavaScript( |
263 cb.page().runJavaScript( |
267 script, WebBrowserPage.SafeJsWorld, self.__showEnginesMenuCallback |
264 script, WebBrowserPage.SafeJsWorld, self.__showEnginesMenuCallback |
268 ) |
265 ) |
269 |
266 |