Helpviewer/HelpWebSearchWidget.py

changeset 1170
a3731e520b28
parent 1131
7781e396c903
child 1509
c0b5e693b0eb
equal deleted inserted replaced
1169:36a3bb21e6e6 1170:a3731e520b28
5 5
6 """ 6 """
7 Module implementing a web search widget for the web browser. 7 Module implementing a web search widget for the web browser.
8 """ 8 """
9 9
10 from PyQt4.QtCore import pyqtSignal, QUrl, QModelIndex, QTimer 10 from PyQt4.QtCore import pyqtSignal, QUrl, QModelIndex, QTimer, Qt
11 from PyQt4.QtGui import QWidget, QMenu, QHBoxLayout, QStandardItem, QStandardItemModel, \ 11 from PyQt4.QtGui import QWidget, QMenu, QHBoxLayout, QStandardItem, QStandardItemModel, \
12 QCompleter, QFont, QIcon, QPixmap 12 QCompleter, QFont, QIcon, QPixmap
13 from PyQt4.QtWebKit import QWebSettings 13 from PyQt4.QtWebKit import QWebSettings, QWebPage
14 14
15 import UI.PixmapCache 15 import UI.PixmapCache
16 16
17 import Preferences 17 import Preferences
18 18
19 from E5Gui.E5LineEdit import E5LineEdit 19 from E5Gui.E5LineEdit import E5LineEdit
20 from E5Gui.E5LineEditButton import E5LineEditButton 20 from E5Gui.E5LineEditButton import E5LineEditButton
21 21
22 from .OpenSearch.OpenSearchManager import OpenSearchManager 22 from .OpenSearch.OpenSearchManager import OpenSearchManager
23 from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction 23 from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction
24
25
26 class HelpWebSearchEdit(E5LineEdit):
27 """
28 Class implementing the web search line edit.
29 """
30 def __init__(self, mainWindow, parent=None):
31 """
32 Constructor
33
34 @param mainWindow reference to the main window (HelpWindow)
35 @param parent reference to the parent widget (QWidget)
36 """
37 super().__init__(parent)
38
39 self.__mw = mainWindow
40
41 def mousePressEvent(self, evt):
42 """
43 Protected method called by a mouse press event.
44
45 @param evt reference to the mouse event (QMouseEvent)
46 """
47 if evt.button() == Qt.XButton1:
48 self.__mw.currentBrowser().pageAction(QWebPage.Back).trigger()
49 elif evt.button() == Qt.XButton2:
50 self.__mw.currentBrowser().pageAction(QWebPage.Forward).trigger()
51 else:
52 super().mousePressEvent(evt)
24 53
25 54
26 class HelpWebSearchWidget(QWidget): 55 class HelpWebSearchWidget(QWidget):
27 """ 56 """
28 Class implementing a web search widget for the web browser. 57 Class implementing a web search widget for the web browser.
33 62
34 def __init__(self, parent=None): 63 def __init__(self, parent=None):
35 """ 64 """
36 Constructor 65 Constructor
37 66
38 @param inactiveText text to be shown on inactivity (string)
39 @param parent reference to the parent widget (QWidget) 67 @param parent reference to the parent widget (QWidget)
40 """ 68 """
41 super().__init__(parent) 69 super().__init__(parent)
42 70
43 self.mw = parent 71 self.mw = parent
51 self.__layout.setSpacing(0) 79 self.__layout.setSpacing(0)
52 self.setLayout(self.__layout) 80 self.setLayout(self.__layout)
53 81
54 self.__enginesMenu = QMenu(self) 82 self.__enginesMenu = QMenu(self)
55 83
56 self.__searchEdit = E5LineEdit(parent=self) 84 self.__searchEdit = HelpWebSearchEdit(self.mw, parent=self)
57 self.__layout.addWidget(self.__searchEdit) 85 self.__layout.addWidget(self.__searchEdit)
58 86
59 self.__engineButton = E5LineEditButton(self) 87 self.__engineButton = E5LineEditButton(self)
60 self.__engineButton.setMenu(self.__enginesMenu) 88 self.__engineButton.setMenu(self.__enginesMenu)
61 self.__searchEdit.addWidget(self.__engineButton, E5LineEdit.LeftSide) 89 self.__searchEdit.addWidget(self.__engineButton, E5LineEdit.LeftSide)
389 """ 417 """
390 Private slot to handle a change of the current search engine icon. 418 Private slot to handle a change of the current search engine icon.
391 """ 419 """
392 self.__engineButton.setIcon( 420 self.__engineButton.setIcon(
393 QIcon(QPixmap.fromImage(self.__openSearchManager.currentEngine().image()))) 421 QIcon(QPixmap.fromImage(self.__openSearchManager.currentEngine().image())))
422
423 def mousePressEvent(self, evt):
424 """
425 Protected method called by a mouse press event.
426
427 @param evt reference to the mouse event (QMouseEvent)
428 """
429 if evt.button() == Qt.XButton1:
430 self.mw.currentBrowser().pageAction(QWebPage.Back).trigger()
431 elif evt.button() == Qt.XButton2:
432 self.mw.currentBrowser().pageAction(QWebPage.Forward).trigger()
433 else:
434 super().mousePressEvent(evt)

eric ide

mercurial