8 Module implementing the helpbrowser using QWebView. |
8 Module implementing the helpbrowser using QWebView. |
9 """ |
9 """ |
10 |
10 |
11 from PyQt4.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, QUrl, \ |
11 from PyQt4.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, QUrl, \ |
12 QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, QRect, QFile, QPoint, \ |
12 QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, QRect, QFile, QPoint, \ |
13 QPointF, QByteArray, qVersion |
13 QByteArray, qVersion |
14 from PyQt4.QtGui import qApp, QDesktopServices, QStyle, QMenu, QApplication, \ |
14 from PyQt4.QtGui import qApp, QDesktopServices, QStyle, QMenu, QApplication, \ |
15 QInputDialog, QLineEdit, QClipboard, QMouseEvent, QLabel, QToolTip, QColor, \ |
15 QInputDialog, QLineEdit, QClipboard, QMouseEvent, QLabel, QToolTip, QColor, \ |
16 QPalette, QFrame, QPrinter, QPrintDialog, QDialog |
16 QPalette, QFrame, QPrinter, QPrintDialog, QDialog |
17 from PyQt4.QtWebKit import QWebView, QWebPage, QWebSettings |
17 from PyQt4.QtWebKit import QWebView, QWebPage, QWebSettings |
18 try: |
18 try: |
551 """ |
551 """ |
552 if evt.type() == QEvent.Leave: |
552 if evt.type() == QEvent.Leave: |
553 # Fake a mouse move event just outside of the widget to trigger |
553 # Fake a mouse move event just outside of the widget to trigger |
554 # the WebKit event handler's mouseMoved function. This implements |
554 # the WebKit event handler's mouseMoved function. This implements |
555 # the interesting mouse-out behavior like invalidating scrollbars. |
555 # the interesting mouse-out behavior like invalidating scrollbars. |
556 if qVersion() >= "5.0.0": |
556 fakeEvent = QMouseEvent(QEvent.MouseMove, QPoint(0, -1), |
557 fakeEvent = QMouseEvent(QEvent.MouseMove, QPointF(0, -1), |
557 Qt.NoButton, Qt.NoButton, Qt.NoModifier) |
558 Qt.NoButton, Qt.NoButton, Qt.NoModifier) |
|
559 else: |
|
560 fakeEvent = QMouseEvent(QEvent.MouseMove, QPoint(0, -1), |
|
561 Qt.NoButton, Qt.NoButton, Qt.NoModifier) |
|
562 return super().event(fakeEvent) |
558 return super().event(fakeEvent) |
563 |
559 |
564 return super().event(evt) |
560 return super().event(evt) |
565 |
561 |
566 ########################################################################################## |
562 ########################################################################################## |
1927 p -= frame.scrollPosition() |
1923 p -= frame.scrollPosition() |
1928 frame = frame.parentFrame() |
1924 frame = frame.parentFrame() |
1929 while frame and frame != self.page().mainFrame(): |
1925 while frame and frame != self.page().mainFrame(): |
1930 p -= frame.scrollPosition() |
1926 p -= frame.scrollPosition() |
1931 frame = frame.parentFrame() |
1927 frame = frame.parentFrame() |
1932 if qVersion() >= "5.0.0": |
1928 pevent = QMouseEvent(QEvent.MouseButtonPress, p, Qt.LeftButton, |
1933 pevent = QMouseEvent(QEvent.MouseButtonPress, QPointF(p), Qt.LeftButton, |
1929 Qt.MouseButtons(Qt.NoButton), Qt.KeyboardModifiers(Qt.NoModifier)) |
1934 Qt.MouseButtons(Qt.NoButton), Qt.KeyboardModifiers(Qt.NoModifier)) |
|
1935 else: |
|
1936 pevent = QMouseEvent(QEvent.MouseButtonPress, p, Qt.LeftButton, |
|
1937 Qt.MouseButtons(Qt.NoButton), Qt.KeyboardModifiers(Qt.NoModifier)) |
|
1938 qApp.sendEvent(self, pevent) |
1930 qApp.sendEvent(self, pevent) |
1939 if qVersion() >= "5.0.0": |
1931 revent = QMouseEvent(QEvent.MouseButtonRelease, p, Qt.LeftButton, |
1940 revent = QMouseEvent(QEvent.MouseButtonRelease, QPointF(p), Qt.LeftButton, |
1932 Qt.MouseButtons(Qt.NoButton), Qt.KeyboardModifiers(Qt.NoModifier)) |
1941 Qt.MouseButtons(Qt.NoButton), Qt.KeyboardModifiers(Qt.NoModifier)) |
|
1942 else: |
|
1943 revent = QMouseEvent(QEvent.MouseButtonRelease, p, Qt.LeftButton, |
|
1944 Qt.MouseButtons(Qt.NoButton), Qt.KeyboardModifiers(Qt.NoModifier)) |
|
1945 qApp.sendEvent(self, revent) |
1933 qApp.sendEvent(self, revent) |
1946 handled = True |
1934 handled = True |
1947 |
1935 |
1948 return handled |
1936 return handled |
1949 |
1937 |