Helpviewer/HelpBrowserWV.py

branch
Py2 comp.
changeset 2525
8b507a9a2d40
parent 2432
b1a2f9054b28
child 2677
3d4277929fb3
equal deleted inserted replaced
2523:139f182b72f6 2525:8b507a9a2d40
5 5
6 6
7 """ 7 """
8 Module implementing the helpbrowser using QWebView. 8 Module implementing the helpbrowser using QWebView.
9 """ 9 """
10
11 from __future__ import unicode_literals # __IGNORE_WARNING__
12 try:
13 str = unicode
14 except (NameError):
15 pass
10 16
11 from PyQt4.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, QUrl, \ 17 from PyQt4.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, QUrl, \
12 QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, QRect, QFile, QPoint, \ 18 QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, QRect, QFile, QPoint, \
13 QByteArray, qVersion 19 QByteArray, qVersion
14 from PyQt4.QtGui import qApp, QDesktopServices, QStyle, QMenu, QApplication, \ 20 from PyQt4.QtGui import qApp, QDesktopServices, QStyle, QMenu, QApplication, \
45 Constructor 51 Constructor
46 52
47 @param mw reference to the main window 8HelpWindow) 53 @param mw reference to the main window 8HelpWindow)
48 @param parent reference to the parent object (QObject) 54 @param parent reference to the parent object (QObject)
49 """ 55 """
50 super().__init__(parent) 56 super(JavaScriptExternalObject, self).__init__(parent)
51 57
52 self.__mw = mw 58 self.__mw = mw
53 59
54 @pyqtSlot(str) 60 @pyqtSlot(str)
55 def AddSearchProvider(self, url): 61 def AddSearchProvider(self, url):
94 Constructor 100 Constructor
95 101
96 @param mw reference to the main window 8HelpWindow) 102 @param mw reference to the main window 8HelpWindow)
97 @param parent reference to the parent object (QObject) 103 @param parent reference to the parent object (QObject)
98 """ 104 """
99 super().__init__(parent) 105 super(JavaScriptEricObject, self).__init__(parent)
100 106
101 self.__mw = mw 107 self.__mw = mw
102 108
103 @pyqtSlot(str, result=str) 109 @pyqtSlot(str, result=str)
104 def translate(self, trans): 110 def translate(self, trans):
152 """ 158 """
153 Constructor 159 Constructor
154 160
155 @param parent parent widget of this window (QWidget) 161 @param parent parent widget of this window (QWidget)
156 """ 162 """
157 super().__init__(parent) 163 super(HelpWebPage, self).__init__(parent)
158 164
159 self.setPluginFactory(self.webPluginFactory()) 165 self.setPluginFactory(self.webPluginFactory())
160 166
161 self.__lastRequest = None 167 self.__lastRequest = None
162 self.__lastRequestType = QWebPage.NavigationTypeOther 168 self.__lastRequestType = QWebPage.NavigationTypeOther
258 """ 264 """
259 if extension == QWebPage.ChooseMultipleFilesExtension: 265 if extension == QWebPage.ChooseMultipleFilesExtension:
260 info = sip.cast(option, QWebPage.ChooseMultipleFilesExtensionOption) 266 info = sip.cast(option, QWebPage.ChooseMultipleFilesExtensionOption)
261 files = sip.cast(output, QWebPage.ChooseMultipleFilesExtensionReturn) 267 files = sip.cast(output, QWebPage.ChooseMultipleFilesExtensionReturn)
262 if info is None or files is None: 268 if info is None or files is None:
263 return super().extension(extension, option, output) 269 return super(HelpWebPage, self).extension(extension, option, output)
264 270
265 suggestedFileName = "" 271 suggestedFileName = ""
266 if info.suggestedFileNames: 272 if info.suggestedFileNames:
267 suggestedFileName = info.suggestedFileNames[0] 273 suggestedFileName = info.suggestedFileNames[0]
268 274
560 # Fake a mouse move event just outside of the widget to trigger 566 # Fake a mouse move event just outside of the widget to trigger
561 # the WebKit event handler's mouseMoved function. This implements 567 # the WebKit event handler's mouseMoved function. This implements
562 # the interesting mouse-out behavior like invalidating scrollbars. 568 # the interesting mouse-out behavior like invalidating scrollbars.
563 fakeEvent = QMouseEvent(QEvent.MouseMove, QPoint(0, -1), 569 fakeEvent = QMouseEvent(QEvent.MouseMove, QPoint(0, -1),
564 Qt.NoButton, Qt.NoButton, Qt.NoModifier) 570 Qt.NoButton, Qt.NoButton, Qt.NoModifier)
565 return super().event(fakeEvent) 571 return super(HelpWebPage, self).event(fakeEvent)
566 572
567 return super().event(evt) 573 return super(HelpWebPage, self).event(evt)
568 574
569 ########################################################################################## 575 ##########################################################################################
570 576
571 577
572 class HelpBrowser(QWebView): 578 class HelpBrowser(QWebView):
603 609
604 @param mainWindow reference to the main window (HelpWindow) 610 @param mainWindow reference to the main window (HelpWindow)
605 @param parent parent widget of this window (QWidget) 611 @param parent parent widget of this window (QWidget)
606 @param name name of this window (string) 612 @param name name of this window (string)
607 """ 613 """
608 super().__init__(parent) 614 super(HelpBrowser, self).__init__(parent)
609 self.setObjectName(name) 615 self.setObjectName(name)
610 self.setWhatsThis(self.trUtf8( 616 self.setWhatsThis(self.trUtf8(
611 """<b>Help Window</b>""" 617 """<b>Help Window</b>"""
612 """<p>This window displays the selected help information.</p>""" 618 """<p>This window displays the selected help information.</p>"""
613 )) 619 ))
1521 url = QUrl(evt.mimeData().text()) 1527 url = QUrl(evt.mimeData().text())
1522 if url.isValid(): 1528 if url.isValid():
1523 evt.acceptProposedAction() 1529 evt.acceptProposedAction()
1524 1530
1525 if not evt.isAccepted(): 1531 if not evt.isAccepted():
1526 super().dragMoveEvent(evt) 1532 super(HelpBrowser, self).dragMoveEvent(evt)
1527 1533
1528 def dropEvent(self, evt): 1534 def dropEvent(self, evt):
1529 """ 1535 """
1530 Protected method called by a drop event. 1536 Protected method called by a drop event.
1531 1537
1532 @param evt reference to the drop event (QDropEvent) 1538 @param evt reference to the drop event (QDropEvent)
1533 """ 1539 """
1534 super().dropEvent(evt) 1540 super(HelpBrowser, self).dropEvent(evt)
1535 if not evt.isAccepted() and \ 1541 if not evt.isAccepted() and \
1536 evt.source() != self and \ 1542 evt.source() != self and \
1537 evt.possibleActions() & Qt.CopyAction: 1543 evt.possibleActions() & Qt.CopyAction:
1538 url = QUrl() 1544 url = QUrl()
1539 if len(evt.mimeData().urls()) > 0: 1545 if len(evt.mimeData().urls()) > 0:
1556 if evt.button() == Qt.XButton1: 1562 if evt.button() == Qt.XButton1:
1557 self.pageAction(QWebPage.Back).trigger() 1563 self.pageAction(QWebPage.Back).trigger()
1558 elif evt.button() == Qt.XButton2: 1564 elif evt.button() == Qt.XButton2:
1559 self.pageAction(QWebPage.Forward).trigger() 1565 self.pageAction(QWebPage.Forward).trigger()
1560 else: 1566 else:
1561 super().mousePressEvent(evt) 1567 super(HelpBrowser, self).mousePressEvent(evt)
1562 1568
1563 def mouseReleaseEvent(self, evt): 1569 def mouseReleaseEvent(self, evt):
1564 """ 1570 """
1565 Protected method called by a mouse release event. 1571 Protected method called by a mouse release event.
1566 1572
1599 else: 1605 else:
1600 self.forward() 1606 self.forward()
1601 evt.accept() 1607 evt.accept()
1602 return 1608 return
1603 1609
1604 super().wheelEvent(evt) 1610 super(HelpBrowser, self).wheelEvent(evt)
1605 1611
1606 def keyPressEvent(self, evt): 1612 def keyPressEvent(self, evt):
1607 """ 1613 """
1608 Protected method called by a key press. 1614 Protected method called by a key press.
1609 1615
1624 self.__hideAccessKeys() 1630 self.__hideAccessKeys()
1625 else: 1631 else:
1626 QTimer.singleShot(300, self.__accessKeyShortcut) 1632 QTimer.singleShot(300, self.__accessKeyShortcut)
1627 1633
1628 self.ctrlPressed = (evt.key() == Qt.Key_Control) 1634 self.ctrlPressed = (evt.key() == Qt.Key_Control)
1629 super().keyPressEvent(evt) 1635 super(HelpBrowser, self).keyPressEvent(evt)
1630 1636
1631 def keyReleaseEvent(self, evt): 1637 def keyReleaseEvent(self, evt):
1632 """ 1638 """
1633 Protected method called by a key release. 1639 Protected method called by a key release.
1634 1640
1636 """ 1642 """
1637 if self.__enableAccessKeys: 1643 if self.__enableAccessKeys:
1638 self.__accessKeysPressed = evt.key() == Qt.Key_Control 1644 self.__accessKeysPressed = evt.key() == Qt.Key_Control
1639 1645
1640 self.ctrlPressed = False 1646 self.ctrlPressed = False
1641 super().keyReleaseEvent(evt) 1647 super(HelpBrowser, self).keyReleaseEvent(evt)
1642 1648
1643 def focusOutEvent(self, evt): 1649 def focusOutEvent(self, evt):
1644 """ 1650 """
1645 Protected method called by a focus out event. 1651 Protected method called by a focus out event.
1646 1652
1648 """ 1654 """
1649 if self.__accessKeysPressed: 1655 if self.__accessKeysPressed:
1650 self.__hideAccessKeys() 1656 self.__hideAccessKeys()
1651 self.__accessKeysPressed = False 1657 self.__accessKeysPressed = False
1652 1658
1653 super().focusOutEvent(evt) 1659 super(HelpBrowser, self).focusOutEvent(evt)
1654 1660
1655 def event(self, evt): 1661 def event(self, evt):
1656 """ 1662 """
1657 Protected method handling events. 1663 Protected method handling events.
1658 1664
1661 """ 1667 """
1662 if evt.type() == QEvent.Gesture: 1668 if evt.type() == QEvent.Gesture:
1663 self.gestureEvent(evt) 1669 self.gestureEvent(evt)
1664 return True 1670 return True
1665 1671
1666 return super().event(evt) 1672 return super(HelpBrowser, self).event(evt)
1667 1673
1668 def gestureEvent(self, evt): 1674 def gestureEvent(self, evt):
1669 """ 1675 """
1670 Protected method handling gesture events. 1676 Protected method handling gesture events.
1671 1677

eric ide

mercurial