53 self.__openSearchManager.currentEngineChanged.connect( |
53 self.__openSearchManager.currentEngineChanged.connect( |
54 self.__currentEngineChanged) |
54 self.__currentEngineChanged) |
55 self.__currentEngine = "" |
55 self.__currentEngine = "" |
56 |
56 |
57 self.__enginesMenu = QMenu(self) |
57 self.__enginesMenu = QMenu(self) |
58 self.__enginesMenu.triggered.connect(self.__changeCurrentEngine) |
58 self.__enginesMenu.triggered.connect( |
|
59 self.__handleEnginesMenuActionTriggered) |
59 |
60 |
60 self.__engineButton = E5LineEditButton(self) |
61 self.__engineButton = E5LineEditButton(self) |
61 self.__engineButton.setMenu(self.__enginesMenu) |
62 self.__engineButton.setMenu(self.__enginesMenu) |
62 self.addWidget(self.__engineButton, E5LineEdit.LeftSide) |
63 self.addWidget(self.__engineButton, E5LineEdit.LeftSide) |
63 |
64 |
247 engineNames = self.__openSearchManager.allEnginesNames() |
248 engineNames = self.__openSearchManager.allEnginesNames() |
248 for engineName in engineNames: |
249 for engineName in engineNames: |
249 engine = self.__openSearchManager.engine(engineName) |
250 engine = self.__openSearchManager.engine(engineName) |
250 action = OpenSearchEngineAction(engine, self.__enginesMenu) |
251 action = OpenSearchEngineAction(engine, self.__enginesMenu) |
251 action.setData(engineName) |
252 action.setData(engineName) |
252 ## action.triggered.connect( |
|
253 ## lambda: self.__changeCurrentEngine(action)) |
|
254 self.__enginesMenu.addAction(action) |
253 self.__enginesMenu.addAction(action) |
255 |
254 |
256 if self.__openSearchManager.currentEngineName() == engineName: |
255 if self.__openSearchManager.currentEngineName() == engineName: |
257 action.setCheckable(True) |
256 action.setCheckable(True) |
258 action.setChecked(True) |
257 action.setChecked(True) |
283 |
282 |
284 action = self.__enginesMenu.addAction( |
283 action = self.__enginesMenu.addAction( |
285 self.tr("Add '{0}'").format(title)) |
284 self.tr("Add '{0}'").format(title)) |
286 action.setData(url) |
285 action.setData(url) |
287 action.setIcon(cb.icon()) |
286 action.setIcon(cb.icon()) |
288 action.triggered.connect( |
|
289 lambda: self.__addEngineFromUrl(action)) |
|
290 |
287 |
291 self.__enginesMenu.addSeparator() |
288 self.__enginesMenu.addSeparator() |
292 self.__enginesMenu.addAction(self.__mw.searchEnginesAction()) |
289 self.__enginesMenu.addAction(self.__mw.searchEnginesAction()) |
293 |
290 |
294 if self.__recentSearches: |
291 if self.__recentSearches: |
295 self.__enginesMenu.addAction(self.tr("Clear Recent Searches"), |
292 act = self.__enginesMenu.addAction( |
296 self.clear) |
293 self.tr("Clear Recent Searches")) |
297 |
294 act.setData("@@CLEAR@@") |
298 def __changeCurrentEngine(self, action): |
295 |
299 """ |
296 def __handleEnginesMenuActionTriggered(self, action): |
300 Private slot to handle the selection of a search engine. |
297 """ |
|
298 Private slot to handle an action of the menu being triggered. |
301 |
299 |
302 @param action reference to the action that triggered |
300 @param action reference to the action that triggered |
303 @type QAction |
301 @type QAction |
304 """ |
302 """ |
305 name = action.data() |
303 actData = action.data() |
306 self.__openSearchManager.setCurrentEngineName(name) |
304 if isinstance(actData, QUrl): |
307 |
305 # add search engine |
308 def __addEngineFromUrl(self, action): |
306 self.__openSearchManager.addEngine(actData) |
309 """ |
307 elif isinstance(actData, str): |
310 Private slot to add a search engine given its URL. |
308 # engine name or special action |
311 |
309 if actData == "@@CLEAR@@": |
312 @param action reference to the action that triggered |
310 self.clear() |
313 @type QAction |
311 else: |
314 """ |
312 self.__openSearchManager.setCurrentEngineName(actData) |
315 url = action.data() |
|
316 if not isinstance(url, QUrl): |
|
317 return |
|
318 |
|
319 self.__openSearchManager.addEngine(url) |
|
320 |
313 |
321 def __searchButtonClicked(self): |
314 def __searchButtonClicked(self): |
322 """ |
315 """ |
323 Private slot to show the search menu via the search button. |
316 Private slot to show the search menu via the search button. |
324 """ |
317 """ |