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. |
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) |