113 self.__recentSearches.insert(0, searchText) |
112 self.__recentSearches.insert(0, searchText) |
114 if len(self.__recentSearches) > self.__maxSavedSearches: |
113 if len(self.__recentSearches) > self.__maxSavedSearches: |
115 self.__recentSearches = self.__recentSearches[:self.__maxSavedSearches] |
114 self.__recentSearches = self.__recentSearches[:self.__maxSavedSearches] |
116 self.__setupCompleterMenu() |
115 self.__setupCompleterMenu() |
117 |
116 |
118 url = HelpWebSearchWidget.openSearchManager()\ |
117 url = self.__openSearchManager.currentEngine().searchUrl(searchText) |
119 .currentEngine()\ |
|
120 .searchUrl(searchText) |
|
121 self.emit(SIGNAL("search"), url) |
118 self.emit(SIGNAL("search"), url) |
122 |
119 |
123 def __setupCompleterMenu(self): |
120 def __setupCompleterMenu(self): |
124 """ |
121 """ |
125 Private method to create the completer menu. |
122 Private method to create the completer menu. |
238 """ |
233 """ |
239 Private slot to handle the display of the engines menu. |
234 Private slot to handle the display of the engines menu. |
240 """ |
235 """ |
241 self.__enginesMenu.clear() |
236 self.__enginesMenu.clear() |
242 |
237 |
243 osm = HelpWebSearchWidget.openSearchManager() |
238 engineNames = self.__openSearchManager.allEnginesNames() |
244 engineNames = osm.allEnginesNames() |
|
245 for engineName in engineNames: |
239 for engineName in engineNames: |
246 engine = osm.engine(engineName) |
240 engine = self.__openSearchManager.engine(engineName) |
247 action = OpenSearchEngineAction(engine, self.__enginesMenu) |
241 action = OpenSearchEngineAction(engine, self.__enginesMenu) |
248 action.setData(engineName) |
242 action.setData(engineName) |
249 self.connect(action, SIGNAL("triggered()"), self.__changeCurrentEngine) |
243 self.connect(action, SIGNAL("triggered()"), self.__changeCurrentEngine) |
250 self.__enginesMenu.addAction(action) |
244 self.__enginesMenu.addAction(action) |
251 |
245 |
252 if osm.currentEngineName() == engineName: |
246 if self.__openSearchManager.currentEngineName() == engineName: |
253 action.setCheckable(True) |
247 action.setCheckable(True) |
254 action.setChecked(True) |
248 action.setChecked(True) |
255 |
249 |
256 ct = self.mw.currentBrowser() |
250 ct = self.mw.currentBrowser() |
257 linkedResources = ct.linkedResources("search") |
251 linkedResources = ct.linkedResources("search") |
349 """ |
343 """ |
350 searches = Preferences.Prefs.settings.value('Help/WebSearches') |
344 searches = Preferences.Prefs.settings.value('Help/WebSearches') |
351 if searches is not None: |
345 if searches is not None: |
352 self.__recentSearches = searches |
346 self.__recentSearches = searches |
353 |
347 |
354 @classmethod |
348 def openSearchManager(self): |
355 def openSearchManager(cls): |
349 """ |
356 """ |
350 Public method to get a reference to the opensearch manager object. |
357 Class method to get a reference to the opensearch manager object. |
|
358 |
351 |
359 @return reference to the opensearch manager object (OpenSearchManager) |
352 @return reference to the opensearch manager object (OpenSearchManager) |
360 """ |
353 """ |
361 if cls._openSearchManager is None: |
354 return self.__openSearchManager |
362 cls._openSearchManager = OpenSearchManager() |
|
363 return cls._openSearchManager |
|
364 |
355 |
365 def __currentEngineChanged(self): |
356 def __currentEngineChanged(self): |
366 """ |
357 """ |
367 Private slot to track a change of the current search engine. |
358 Private slot to track a change of the current search engine. |
368 """ |
359 """ |
369 osm = HelpWebSearchWidget.openSearchManager() |
360 if self.__openSearchManager.engineExists(self.__currentEngine): |
370 if osm.engineExists(self.__currentEngine): |
361 oldEngine = self.__openSearchManager.engine(self.__currentEngine) |
371 oldEngine = osm.engine(self.__currentEngine) |
|
372 self.disconnect(oldEngine, SIGNAL("imageChanged()"), |
362 self.disconnect(oldEngine, SIGNAL("imageChanged()"), |
373 self.__engineImageChanged) |
363 self.__engineImageChanged) |
374 if self.__suggestionsEnabled: |
364 if self.__suggestionsEnabled: |
375 self.disconnect(oldEngine, SIGNAL("suggestions(const QStringList&)"), |
365 self.disconnect(oldEngine, SIGNAL("suggestions(const QStringList&)"), |
376 self.__newSuggestions) |
366 self.__newSuggestions) |
377 |
367 |
378 newEngine = osm.currentEngine() |
368 newEngine = self.__openSearchManager.currentEngine() |
379 if newEngine.networkAccessManager() is None: |
369 if newEngine.networkAccessManager() is None: |
380 newEngine.setNetworkAccessManager(self.mw.networkAccessManager()) |
370 newEngine.setNetworkAccessManager(self.mw.networkAccessManager()) |
381 self.connect(newEngine, SIGNAL("imageChanged()"), |
371 self.connect(newEngine, SIGNAL("imageChanged()"), |
382 self.__engineImageChanged) |
372 self.__engineImageChanged) |
383 if self.__suggestionsEnabled: |
373 if self.__suggestionsEnabled: |
384 self.connect(newEngine, SIGNAL("suggestions(const QStringList&)"), |
374 self.connect(newEngine, SIGNAL("suggestions(const QStringList&)"), |
385 self.__newSuggestions) |
375 self.__newSuggestions) |
386 |
376 |
387 self.__searchEdit.setInactiveText(osm.currentEngineName()) |
377 self.__searchEdit.setInactiveText(self.__openSearchManager.currentEngineName()) |
388 self.__currentEngine = osm.currentEngineName() |
378 self.__currentEngine = self.__openSearchManager.currentEngineName() |
389 self.__engineButton.setIcon( |
379 self.__engineButton.setIcon( |
390 QIcon(QPixmap.fromImage(osm.currentEngine().image()))) |
380 QIcon(QPixmap.fromImage(self.__openSearchManager.currentEngine().image()))) |
391 self.__suggestions = [] |
381 self.__suggestions = [] |
392 self.__setupCompleterMenu() |
382 self.__setupCompleterMenu() |
393 |
383 |
394 def __engineImageChanged(self): |
384 def __engineImageChanged(self): |
395 """ |
385 """ |
396 Private slot to handle a change of the current search engine icon. |
386 Private slot to handle a change of the current search engine icon. |
397 """ |
387 """ |
398 osm = HelpWebSearchWidget.openSearchManager() |
|
399 self.__engineButton.setIcon( |
388 self.__engineButton.setIcon( |
400 QIcon(QPixmap.fromImage(osm.currentEngine().image()))) |
389 QIcon(QPixmap.fromImage(self.__openSearchManager.currentEngine().image()))) |