Improved the handling of mouse XButton1 and XButton2 handling in the web browser.

Sun, 10 Jul 2011 19:01:08 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 10 Jul 2011 19:01:08 +0200
changeset 1170
a3731e520b28
parent 1169
36a3bb21e6e6
child 1171
1ffefa5ca226

Improved the handling of mouse XButton1 and XButton2 handling in the web browser.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Bookmarks.BookmarksToolBar.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.HelpWebSearchWidget.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.HelpWindow.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.UrlBar.UrlBar.html file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksToolBar.py file | annotate | diff | comparison | revisions
Helpviewer/HelpWebSearchWidget.py file | annotate | diff | comparison | revisions
Helpviewer/HelpWindow.py file | annotate | diff | comparison | revisions
Helpviewer/UrlBar/UrlBar.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Sun Jul 10 16:31:33 2011 +0200
+++ b/APIs/Python3/eric5.api	Sun Jul 10 19:01:08 2011 +0200
@@ -1836,7 +1836,7 @@
 eric5.Helpviewer.Bookmarks.BookmarksToolBar.BookmarksToolBar._createMenu?5()
 eric5.Helpviewer.Bookmarks.BookmarksToolBar.BookmarksToolBar.newUrl?7
 eric5.Helpviewer.Bookmarks.BookmarksToolBar.BookmarksToolBar.openUrl?7
-eric5.Helpviewer.Bookmarks.BookmarksToolBar.BookmarksToolBar?1(model, parent=None)
+eric5.Helpviewer.Bookmarks.BookmarksToolBar.BookmarksToolBar?1(mainWindow, model, parent=None)
 eric5.Helpviewer.Bookmarks.DefaultBookmarks.DefaultBookmarks?7
 eric5.Helpviewer.Bookmarks.XbelReader.XbelReader.read?4(fileNameOrDevice)
 eric5.Helpviewer.Bookmarks.XbelReader.XbelReader?1()
@@ -2087,7 +2087,10 @@
 eric5.Helpviewer.HelpTocWidget.HelpTocWidget?1(engine, mainWindow, parent=None)
 eric5.Helpviewer.HelpTopicDialog.HelpTopicDialog.link?4()
 eric5.Helpviewer.HelpTopicDialog.HelpTopicDialog?1(parent, keyword, links)
+eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchEdit.mousePressEvent?4(evt)
+eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchEdit?1(mainWindow, parent=None)
 eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.clear?4()
+eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.mousePressEvent?4(evt)
 eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.openSearchManager?4()
 eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.preferencesChanged?4()
 eric5.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.saveSearches?4()
@@ -2122,6 +2125,7 @@
 eric5.Helpviewer.HelpWindow.HelpWindow.mainWindow?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.masterPasswordChanged?4(oldPassword, newPassword)
 eric5.Helpviewer.HelpWindow.HelpWindow.maxMenuFilePathLen?7
+eric5.Helpviewer.HelpWindow.HelpWindow.mousePressEvent?4(evt)
 eric5.Helpviewer.HelpWindow.HelpWindow.networkAccessManager?4()
 eric5.Helpviewer.HelpWindow.HelpWindow.newTab?4(link=None, requestData=None)
 eric5.Helpviewer.HelpWindow.HelpWindow.newWindow?4(link=None)
@@ -2464,6 +2468,7 @@
 eric5.Helpviewer.UrlBar.UrlBar.UrlBar.focusOutEvent?4(evt)
 eric5.Helpviewer.UrlBar.UrlBar.UrlBar.keyPressEvent?4(evt)
 eric5.Helpviewer.UrlBar.UrlBar.UrlBar.mouseDoubleClickEvent?4(evt)
+eric5.Helpviewer.UrlBar.UrlBar.UrlBar.mousePressEvent?4(evt)
 eric5.Helpviewer.UrlBar.UrlBar.UrlBar.paintEvent?4(evt)
 eric5.Helpviewer.UrlBar.UrlBar.UrlBar.preferencesChanged?4()
 eric5.Helpviewer.UrlBar.UrlBar.UrlBar.setBrowser?4(browser)
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sun Jul 10 16:31:33 2011 +0200
+++ b/Documentation/Help/source.qhp	Sun Jul 10 19:01:08 2011 +0200
@@ -2788,7 +2788,10 @@
       <keyword name="JavaScriptExternalObject.AddSearchProvider" id="JavaScriptExternalObject.AddSearchProvider" ref="eric5.Helpviewer.HelpBrowserWV.html#JavaScriptExternalObject.AddSearchProvider" />
       <keyword name="LinkedResource (Constructor)" id="LinkedResource (Constructor)" ref="eric5.Helpviewer.HelpBrowserWV.html#LinkedResource.__init__" />
       <keyword name="HelpWebSearchWidget (Module)" id="HelpWebSearchWidget (Module)" ref="eric5.Helpviewer.HelpWebSearchWidget.html" />
+      <keyword name="HelpWebSearchEdit" id="HelpWebSearchEdit" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchEdit" />
       <keyword name="HelpWebSearchWidget" id="HelpWebSearchWidget" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget" />
+      <keyword name="HelpWebSearchEdit (Constructor)" id="HelpWebSearchEdit (Constructor)" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchEdit.__init__" />
+      <keyword name="HelpWebSearchEdit.mousePressEvent" id="HelpWebSearchEdit.mousePressEvent" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchEdit.mousePressEvent" />
       <keyword name="HelpWebSearchWidget (Constructor)" id="HelpWebSearchWidget (Constructor)" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__init__" />
       <keyword name="HelpWebSearchWidget.__addEngineFromUrl" id="HelpWebSearchWidget.__addEngineFromUrl" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__addEngineFromUrl" />
       <keyword name="HelpWebSearchWidget.__changeCurrentEngine" id="HelpWebSearchWidget.__changeCurrentEngine" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__changeCurrentEngine" />
@@ -2806,6 +2809,7 @@
       <keyword name="HelpWebSearchWidget.__textChanged" id="HelpWebSearchWidget.__textChanged" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__textChanged" />
       <keyword name="HelpWebSearchWidget.__textEdited" id="HelpWebSearchWidget.__textEdited" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__textEdited" />
       <keyword name="HelpWebSearchWidget.clear" id="HelpWebSearchWidget.clear" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.clear" />
+      <keyword name="HelpWebSearchWidget.mousePressEvent" id="HelpWebSearchWidget.mousePressEvent" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.mousePressEvent" />
       <keyword name="HelpWebSearchWidget.openSearchManager" id="HelpWebSearchWidget.openSearchManager" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.openSearchManager" />
       <keyword name="HelpWebSearchWidget.preferencesChanged" id="HelpWebSearchWidget.preferencesChanged" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.preferencesChanged" />
       <keyword name="HelpWebSearchWidget.saveSearches" id="HelpWebSearchWidget.saveSearches" ref="eric5.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.saveSearches" />
@@ -2921,6 +2925,7 @@
       <keyword name="HelpWindow.icon" id="HelpWindow.icon" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.icon" />
       <keyword name="HelpWindow.mainWindow" id="HelpWindow.mainWindow" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.mainWindow" />
       <keyword name="HelpWindow.masterPasswordChanged" id="HelpWindow.masterPasswordChanged" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.masterPasswordChanged" />
+      <keyword name="HelpWindow.mousePressEvent" id="HelpWindow.mousePressEvent" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.mousePressEvent" />
       <keyword name="HelpWindow.networkAccessManager" id="HelpWindow.networkAccessManager" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.networkAccessManager" />
       <keyword name="HelpWindow.newTab" id="HelpWindow.newTab" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.newTab" />
       <keyword name="HelpWindow.newWindow" id="HelpWindow.newWindow" ref="eric5.Helpviewer.HelpWindow.html#HelpWindow.newWindow" />
@@ -7716,6 +7721,7 @@
       <keyword name="UrlBar.focusOutEvent" id="UrlBar.focusOutEvent" ref="eric5.Helpviewer.UrlBar.UrlBar.html#UrlBar.focusOutEvent" />
       <keyword name="UrlBar.keyPressEvent" id="UrlBar.keyPressEvent" ref="eric5.Helpviewer.UrlBar.UrlBar.html#UrlBar.keyPressEvent" />
       <keyword name="UrlBar.mouseDoubleClickEvent" id="UrlBar.mouseDoubleClickEvent" ref="eric5.Helpviewer.UrlBar.UrlBar.html#UrlBar.mouseDoubleClickEvent" />
+      <keyword name="UrlBar.mousePressEvent" id="UrlBar.mousePressEvent" ref="eric5.Helpviewer.UrlBar.UrlBar.html#UrlBar.mousePressEvent" />
       <keyword name="UrlBar.paintEvent" id="UrlBar.paintEvent" ref="eric5.Helpviewer.UrlBar.UrlBar.html#UrlBar.paintEvent" />
       <keyword name="UrlBar.preferencesChanged" id="UrlBar.preferencesChanged" ref="eric5.Helpviewer.UrlBar.UrlBar.html#UrlBar.preferencesChanged" />
       <keyword name="UrlBar.setBrowser" id="UrlBar.setBrowser" ref="eric5.Helpviewer.UrlBar.UrlBar.html#UrlBar.setBrowser" />
--- a/Documentation/Source/eric5.Helpviewer.Bookmarks.BookmarksToolBar.html	Sun Jul 10 16:31:33 2011 +0200
+++ b/Documentation/Source/eric5.Helpviewer.Bookmarks.BookmarksToolBar.html	Sun Jul 10 19:01:08 2011 +0200
@@ -96,11 +96,14 @@
 </table>
 <a NAME="BookmarksToolBar.__init__" ID="BookmarksToolBar.__init__"></a>
 <h4>BookmarksToolBar (Constructor)</h4>
-<b>BookmarksToolBar</b>(<i>model, parent=None</i>)
+<b>BookmarksToolBar</b>(<i>mainWindow, model, parent=None</i>)
 <p>
         Constructor
 </p><dl>
-<dt><i>model</i></dt>
+<dt><i>mainWindow</i></dt>
+<dd>
+reference to the main window (HelpWindow)
+</dd><dt><i>model</i></dt>
 <dd>
 reference to the bookmarks model (BookmarksModel)
 </dd><dt><i>parent</i></dt>
--- a/Documentation/Source/eric5.Helpviewer.HelpWebSearchWidget.html	Sun Jul 10 16:31:33 2011 +0200
+++ b/Documentation/Source/eric5.Helpviewer.HelpWebSearchWidget.html	Sun Jul 10 19:01:08 2011 +0200
@@ -31,6 +31,9 @@
 <h3>Classes</h3>
 <table>
 <tr>
+<td><a href="#HelpWebSearchEdit">HelpWebSearchEdit</a></td>
+<td>Class implementing the web search line edit.</td>
+</tr><tr>
 <td><a href="#HelpWebSearchWidget">HelpWebSearchWidget</a></td>
 <td>Class implementing a web search widget for the web browser.</td>
 </tr>
@@ -40,6 +43,53 @@
 <tr><td>None</td></tr>
 </table>
 <hr /><hr />
+<a NAME="HelpWebSearchEdit" ID="HelpWebSearchEdit"></a>
+<h2>HelpWebSearchEdit</h2>
+<p>
+    Class implementing the web search line edit.
+</p>
+<h3>Derived from</h3>
+E5LineEdit
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#HelpWebSearchEdit.__init__">HelpWebSearchEdit</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#HelpWebSearchEdit.mousePressEvent">mousePressEvent</a></td>
+<td>Protected method called by a mouse press event.</td>
+</tr>
+</table>
+<a NAME="HelpWebSearchEdit.__init__" ID="HelpWebSearchEdit.__init__"></a>
+<h4>HelpWebSearchEdit (Constructor)</h4>
+<b>HelpWebSearchEdit</b>(<i>mainWindow, parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>mainWindow</i></dt>
+<dd>
+reference to the main window (HelpWindow)
+</dd><dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="HelpWebSearchEdit.mousePressEvent" ID="HelpWebSearchEdit.mousePressEvent"></a>
+<h4>HelpWebSearchEdit.mousePressEvent</h4>
+<b>mousePressEvent</b>(<i>evt</i>)
+<p>
+        Protected method called by a mouse press event.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+reference to the mouse event (QMouseEvent)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="HelpWebSearchWidget" ID="HelpWebSearchWidget"></a>
 <h2>HelpWebSearchWidget</h2>
 <p>
@@ -111,6 +161,9 @@
 <td><a href="#HelpWebSearchWidget.clear">clear</a></td>
 <td>Public method to clear all private data.</td>
 </tr><tr>
+<td><a href="#HelpWebSearchWidget.mousePressEvent">mousePressEvent</a></td>
+<td>Protected method called by a mouse press event.</td>
+</tr><tr>
 <td><a href="#HelpWebSearchWidget.openSearchManager">openSearchManager</a></td>
 <td>Public method to get a reference to the opensearch manager object.</td>
 </tr><tr>
@@ -127,10 +180,7 @@
 <p>
         Constructor
 </p><dl>
-<dt><i>inactiveText</i></dt>
-<dd>
-text to be shown on inactivity (string)
-</dd><dt><i>parent</i></dt>
+<dt><i>parent</i></dt>
 <dd>
 reference to the parent widget (QWidget)
 </dd>
@@ -239,7 +289,17 @@
 <b>clear</b>(<i></i>)
 <p>
         Public method to clear all private data.
-</p><a NAME="HelpWebSearchWidget.openSearchManager" ID="HelpWebSearchWidget.openSearchManager"></a>
+</p><a NAME="HelpWebSearchWidget.mousePressEvent" ID="HelpWebSearchWidget.mousePressEvent"></a>
+<h4>HelpWebSearchWidget.mousePressEvent</h4>
+<b>mousePressEvent</b>(<i>evt</i>)
+<p>
+        Protected method called by a mouse press event.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+reference to the mouse event (QMouseEvent)
+</dd>
+</dl><a NAME="HelpWebSearchWidget.openSearchManager" ID="HelpWebSearchWidget.openSearchManager"></a>
 <h4>HelpWebSearchWidget.openSearchManager</h4>
 <b>openSearchManager</b>(<i></i>)
 <p>
--- a/Documentation/Source/eric5.Helpviewer.HelpWindow.html	Sun Jul 10 16:31:33 2011 +0200
+++ b/Documentation/Source/eric5.Helpviewer.HelpWindow.html	Sun Jul 10 19:01:08 2011 +0200
@@ -370,6 +370,9 @@
 <td><a href="#HelpWindow.masterPasswordChanged">masterPasswordChanged</a></td>
 <td>Public slot to handle the change of the master password.</td>
 </tr><tr>
+<td><a href="#HelpWindow.mousePressEvent">mousePressEvent</a></td>
+<td>Protected method called by a mouse press event.</td>
+</tr><tr>
 <td><a href="#HelpWindow.networkAccessManager">networkAccessManager</a></td>
 <td>Class method to get a reference to the network access manager.</td>
 </tr><tr>
@@ -1165,6 +1168,16 @@
 <dd>
 new master password (string)
 </dd>
+</dl><a NAME="HelpWindow.mousePressEvent" ID="HelpWindow.mousePressEvent"></a>
+<h4>HelpWindow.mousePressEvent</h4>
+<b>mousePressEvent</b>(<i>evt</i>)
+<p>
+        Protected method called by a mouse press event.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+reference to the mouse event (QMouseEvent)
+</dd>
 </dl><a NAME="HelpWindow.networkAccessManager" ID="HelpWindow.networkAccessManager"></a>
 <h4>HelpWindow.networkAccessManager</h4>
 <b>networkAccessManager</b>(<i></i>)
--- a/Documentation/Source/eric5.Helpviewer.UrlBar.UrlBar.html	Sun Jul 10 16:31:33 2011 +0200
+++ b/Documentation/Source/eric5.Helpviewer.UrlBar.UrlBar.html	Sun Jul 10 19:01:08 2011 +0200
@@ -96,6 +96,9 @@
 <td><a href="#UrlBar.mouseDoubleClickEvent">mouseDoubleClickEvent</a></td>
 <td>Protected method to handle mouse double click events.</td>
 </tr><tr>
+<td><a href="#UrlBar.mousePressEvent">mousePressEvent</a></td>
+<td>Protected method called by a mouse press event.</td>
+</tr><tr>
 <td><a href="#UrlBar.paintEvent">paintEvent</a></td>
 <td>Protected method handling a paint event.</td>
 </tr><tr>
@@ -227,6 +230,16 @@
 <dd>
 reference to the mouse event (QMouseEvent)
 </dd>
+</dl><a NAME="UrlBar.mousePressEvent" ID="UrlBar.mousePressEvent"></a>
+<h4>UrlBar.mousePressEvent</h4>
+<b>mousePressEvent</b>(<i>evt</i>)
+<p>
+        Protected method called by a mouse press event.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+reference to the mouse event (QMouseEvent)
+</dd>
 </dl><a NAME="UrlBar.paintEvent" ID="UrlBar.paintEvent"></a>
 <h4>UrlBar.paintEvent</h4>
 <b>paintEvent</b>(<i>evt</i>)
--- a/Helpviewer/Bookmarks/BookmarksToolBar.py	Sun Jul 10 16:31:33 2011 +0200
+++ b/Helpviewer/Bookmarks/BookmarksToolBar.py	Sun Jul 10 19:01:08 2011 +0200
@@ -9,6 +9,7 @@
 
 from PyQt4.QtCore import pyqtSignal, Qt, QUrl
 from PyQt4.QtGui import QMenu, QApplication, QCursor
+from PyQt4.QtWebKit import QWebPage
 
 from E5Gui.E5ModelToolBar import E5ModelToolBar
 
@@ -29,16 +30,18 @@
     openUrl = pyqtSignal(QUrl, str)
     newUrl = pyqtSignal(QUrl, str)
     
-    def __init__(self, model, parent=None):
+    def __init__(self, mainWindow, model, parent=None):
         """
         Constructor
         
+        @param mainWindow reference to the main window (HelpWindow)
         @param model reference to the bookmarks model (BookmarksModel)
         @param parent reference to the parent widget (QWidget)
         """
         E5ModelToolBar.__init__(self,
             QApplication.translate("BookmarksToolBar", "Bookmarks"), parent)
         
+        self.__mw = mainWindow
         self.__bookmarksModel = model
         
         self.setModel(model)
@@ -94,14 +97,19 @@
         """
         assert idx.isValid()
         
-        if self._keyboardModifiers & Qt.ControlModifier:
-            self.newUrl.emit(
-                idx.data(BookmarksModel.UrlRole),
-                idx.data(Qt.DisplayRole))
-        else:
-            self.openUrl.emit(
-                idx.data(BookmarksModel.UrlRole),
-                idx.data(Qt.DisplayRole))
+        if self._mouseButton == Qt.XButton1:
+            self.__mw.currentBrowser().pageAction(QWebPage.Back).trigger()
+        elif self._mouseButton == Qt.XButton2:
+            self.__mw.currentBrowser().pageAction(QWebPage.Forward).trigger()
+        elif self._mouseButton == Qt.LeftButton:
+            if self._keyboardModifiers & Qt.ControlModifier:
+                self.newUrl.emit(
+                    idx.data(BookmarksModel.UrlRole),
+                    idx.data(Qt.DisplayRole))
+            else:
+                self.openUrl.emit(
+                    idx.data(BookmarksModel.UrlRole),
+                    idx.data(Qt.DisplayRole))
     
     def __openToolBarBookmark(self):
         """
--- a/Helpviewer/HelpWebSearchWidget.py	Sun Jul 10 16:31:33 2011 +0200
+++ b/Helpviewer/HelpWebSearchWidget.py	Sun Jul 10 19:01:08 2011 +0200
@@ -7,10 +7,10 @@
 Module implementing a web search widget for the web browser.
 """
 
-from PyQt4.QtCore import pyqtSignal, QUrl, QModelIndex, QTimer
+from PyQt4.QtCore import pyqtSignal, QUrl, QModelIndex, QTimer, Qt
 from PyQt4.QtGui import QWidget, QMenu, QHBoxLayout, QStandardItem, QStandardItemModel, \
     QCompleter, QFont, QIcon, QPixmap
-from PyQt4.QtWebKit import QWebSettings
+from PyQt4.QtWebKit import QWebSettings, QWebPage
 
 import UI.PixmapCache
 
@@ -23,6 +23,35 @@
 from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction
 
 
+class HelpWebSearchEdit(E5LineEdit):
+    """
+    Class implementing the web search line edit.
+    """
+    def __init__(self, mainWindow, parent=None):
+        """
+        Constructor
+        
+        @param mainWindow reference to the main window (HelpWindow)
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.__mw = mainWindow
+    
+    def mousePressEvent(self, evt):
+        """
+        Protected method called by a mouse press event.
+        
+        @param evt reference to the mouse event (QMouseEvent)
+        """
+        if evt.button() == Qt.XButton1:
+            self.__mw.currentBrowser().pageAction(QWebPage.Back).trigger()
+        elif evt.button() == Qt.XButton2:
+            self.__mw.currentBrowser().pageAction(QWebPage.Forward).trigger()
+        else:
+            super().mousePressEvent(evt)
+
+
 class HelpWebSearchWidget(QWidget):
     """
     Class implementing a web search widget for the web browser.
@@ -35,7 +64,6 @@
         """
         Constructor
         
-        @param inactiveText text to be shown on inactivity (string)
         @param parent reference to the parent widget (QWidget)
         """
         super().__init__(parent)
@@ -53,7 +81,7 @@
         
         self.__enginesMenu = QMenu(self)
         
-        self.__searchEdit = E5LineEdit(parent=self)
+        self.__searchEdit = HelpWebSearchEdit(self.mw, parent=self)
         self.__layout.addWidget(self.__searchEdit)
         
         self.__engineButton = E5LineEditButton(self)
@@ -391,3 +419,16 @@
         """
         self.__engineButton.setIcon(
             QIcon(QPixmap.fromImage(self.__openSearchManager.currentEngine().image())))
+    
+    def mousePressEvent(self, evt):
+        """
+        Protected method called by a mouse press event.
+        
+        @param evt reference to the mouse event (QMouseEvent)
+        """
+        if evt.button() == Qt.XButton1:
+            self.mw.currentBrowser().pageAction(QWebPage.Back).trigger()
+        elif evt.button() == Qt.XButton2:
+            self.mw.currentBrowser().pageAction(QWebPage.Forward).trigger()
+        else:
+            super().mousePressEvent(evt)
--- a/Helpviewer/HelpWindow.py	Sun Jul 10 16:31:33 2011 +0200
+++ b/Helpviewer/HelpWindow.py	Sun Jul 10 19:01:08 2011 +0200
@@ -15,7 +15,7 @@
     QDesktopServices, QKeySequence, qApp, QComboBox, QFont, QFontMetrics, QLabel, \
     QSplitter, QMenu, QToolButton, QLineEdit, QApplication, QWhatsThis, QDialog, \
     QHBoxLayout, QProgressBar, QAction, QIcon
-from PyQt4.QtWebKit import QWebSettings, QWebDatabase, QWebSecurityOrigin
+from PyQt4.QtWebKit import QWebSettings, QWebDatabase, QWebSecurityOrigin, QWebPage
 from PyQt4.QtHelp import QHelpEngine, QHelpEngineCore, QHelpSearchQuery
 
 from .SearchWidget import SearchWidget
@@ -1377,7 +1377,7 @@
         forwardButton.setPopupMode(QToolButton.MenuButtonPopup)
         
         bookmarksModel = self.bookmarksManager().bookmarksModel()
-        self.bookmarksToolBar = BookmarksToolBar(bookmarksModel)
+        self.bookmarksToolBar = BookmarksToolBar(self, bookmarksModel)
         self.bookmarksToolBar.setObjectName("BookmarksToolBar")
         self.bookmarksToolBar.setIconSize(UI.Config.ToolBarIconSize)
         self.bookmarksToolBar.openUrl.connect(self.openUrl)
@@ -2681,6 +2681,19 @@
         """
         self.__eventKeyboardModifiers = modifiers
     
+    def mousePressEvent(self, evt):
+        """
+        Protected method called by a mouse press event.
+        
+        @param evt reference to the mouse event (QMouseEvent)
+        """
+        if evt.button() == Qt.XButton1:
+            self.currentBrowser().pageAction(QWebPage.Back).trigger()
+        elif evt.button() == Qt.XButton2:
+            self.currentBrowser().pageAction(QWebPage.Forward).trigger()
+        else:
+            super().mousePressEvent(evt)
+
     ###########################################################################
     ## Interface to VirusTotal below                                         ##
     ###########################################################################
--- a/Helpviewer/UrlBar/UrlBar.py	Sun Jul 10 16:31:33 2011 +0200
+++ b/Helpviewer/UrlBar/UrlBar.py	Sun Jul 10 19:01:08 2011 +0200
@@ -13,7 +13,7 @@
     from PyQt4.QtNetwork import QSslCertificate
 except ImportError:
     QSslCertificate = None      # __IGNORE_WARNING__
-from PyQt4.QtWebKit import QWebSettings
+from PyQt4.QtWebKit import QWebSettings, QWebPage
 
 from E5Gui.E5LineEdit import E5LineEdit
 from E5Gui.E5LineEditButton import E5LineEditButton
@@ -273,6 +273,19 @@
             self.__browserUrlChanged(self.__browser.url())
         E5LineEdit.focusOutEvent(self, evt)
     
+    def mousePressEvent(self, evt):
+        """
+        Protected method called by a mouse press event.
+        
+        @param evt reference to the mouse event (QMouseEvent)
+        """
+        if evt.button() == Qt.XButton1:
+            self.__mw.currentBrowser().pageAction(QWebPage.Back).trigger()
+        elif evt.button() == Qt.XButton2:
+            self.__mw.currentBrowser().pageAction(QWebPage.Forward).trigger()
+        else:
+            super().mousePressEvent(evt)
+    
     def mouseDoubleClickEvent(self, evt):
         """
         Protected method to handle mouse double click events.
--- a/changelog	Sun Jul 10 16:31:33 2011 +0200
+++ b/changelog	Sun Jul 10 19:01:08 2011 +0200
@@ -21,6 +21,7 @@
   from the eric IDE
 - added editor actions to go to the last edit location and to the previous or
   next Python or Ruby class or method definition
+- improved the handling of mouse XButton1 and XButton2 handling in the web browser
 
 Version 5.2-snapshot-20110501:
 - bug fixes

eric ide

mercurial