eric7/HelpViewer/HelpViewerImpl_qtb.py

Sat, 16 Oct 2021 20:38:23 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 16 Oct 2021 20:38:23 +0200
branch
eric7
changeset 8693
d51660d6f1b9
parent 8689
da40117c42d6
permissions
-rw-r--r--

Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.

8679
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2021 Detlev Offenbach <detlev@die-offenbachs.de>
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the QTextBrowser based help viewer class.
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8689
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
10 from PyQt6.QtCore import Qt, QByteArray, QUrl, QEvent
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
11 from PyQt6.QtGui import QDesktopServices, QImage
8679
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt6.QtWidgets import QTextBrowser
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from .HelpViewerImpl import HelpViewerImpl
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
17 class HelpViewerImpl_qtb(HelpViewerImpl, QTextBrowser):
8679
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 Class implementing the QTextBrowser based help viewer class.
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
21 def __init__(self, engine, parent=None):
8679
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Constructor
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
25 @param engine reference to the help engine
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
26 @type QHelpEngine
8679
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param parent reference to the parent widget
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type QWidget
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
30 QTextBrowser.__init__(self, parent=parent)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
31 HelpViewerImpl.__init__(self, engine)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
32
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
33 self.__zoomCount = 0
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
34
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
35 self.sourceChanged.connect(self.titleChanged)
8689
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
36
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
37 self.grabGesture(Qt.GestureType.PinchGesture)
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
38
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
39 def setUrl(self, url):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
40 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
41 Public method to set the URL of the document to be shown.
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
42
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
43 @param url source of the document
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
44 @type QUrl
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
45 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
46 self.setSource(url)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
47
8683
e8a907801549 Continued implementing the embedded help viewer widget. Added the QtHelp Table of Contents widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8681
diff changeset
48 def url(self):
e8a907801549 Continued implementing the embedded help viewer widget. Added the QtHelp Table of Contents widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8681
diff changeset
49 """
e8a907801549 Continued implementing the embedded help viewer widget. Added the QtHelp Table of Contents widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8681
diff changeset
50 Public method to get the URL of the shown document.
e8a907801549 Continued implementing the embedded help viewer widget. Added the QtHelp Table of Contents widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8681
diff changeset
51
e8a907801549 Continued implementing the embedded help viewer widget. Added the QtHelp Table of Contents widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8681
diff changeset
52 @return url URL of the document
e8a907801549 Continued implementing the embedded help viewer widget. Added the QtHelp Table of Contents widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8681
diff changeset
53 @rtype QUrl
e8a907801549 Continued implementing the embedded help viewer widget. Added the QtHelp Table of Contents widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8681
diff changeset
54 """
e8a907801549 Continued implementing the embedded help viewer widget. Added the QtHelp Table of Contents widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8681
diff changeset
55 return self.source()
e8a907801549 Continued implementing the embedded help viewer widget. Added the QtHelp Table of Contents widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8681
diff changeset
56
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
57 def doSetSource(self, url, type):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
58 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
59 Public method to load the data and show it.
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
60
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
61 @param url DESCRIPTION
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
62 @type TYPE
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
63 @param type DESCRIPTION
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
64 @type TYPE
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
65 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
66 data = self.getData(url)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
67 if data is None:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
68 QDesktopServices.openUrl(url)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
69 return
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
70
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
71 if url != QUrl("about:blank"):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
72 super().doSetSource(url, type)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
73
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
74 self.setHtml(data)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
75 self.sourceChanged.emit(url)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
76 self.loadFinished.emit(True)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
77
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
78 def title(self):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
79 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
80 Public method get the page title.
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
81
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
82 @return page title
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
83 @rtype str
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
84 """
8693
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
85 titleStr = self.documentTitle()
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
86 if not titleStr:
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
87 url = self.url()
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
88
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
89 titleStr = url.host()
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
90 if not titleStr:
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
91 titleStr = url.toString(
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
92 QUrl.UrlFormattingOption.RemoveFragment)
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
93
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
94 if not titleStr or titleStr == "about:blank":
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
95 titleStr = self.tr("Empty Page")
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
96
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
97 return titleStr
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
98
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
99 def loadResource(self, type_, name):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
100 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
101 Public method to load data of the specified type from the resource with
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
102 the given name.
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
103
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
104 @param type_ resource type
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
105 @type int
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
106 @param name resource name
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
107 @type QUrl
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
108 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
109 ba = QByteArray()
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
110
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
111 if type_ < 4: # QTextDocument.ResourceType.MarkdownResource
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
112 url = self._engine.findFile(name)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
113 ba = self._engine.fileData(url)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
114 if url.toString().lower().endswith(".svg"):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
115 image = QImage()
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
116 image.loadFromData(ba, "svg")
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
117 if not image.isNull():
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
118 return image
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
119
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
120 return ba
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
121
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
122 def mousePressEvent(self, evt):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
123 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
124 Protected method called by a mouse press event.
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
125
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
126 @param evt reference to the mouse event
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
127 @type QMouseEvent
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
128 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
129 if evt.button() == Qt.MouseButton.XButton1:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
130 self.backward()
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
131 elif evt.button() == Qt.MouseButton.XButton2:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
132 self.forward()
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
133 else:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
134 super().mousePressEvent(evt)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
135
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
136 def gotoHistory(self, index):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
137 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
138 Public method to step through the history.
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
139
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
140 @param index history index (<0 backward, >0 forward)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
141 @type int
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
142 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
143 if index < 0:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
144 # backward
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
145 for ind in range(-index):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
146 self.backward()
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
147 else:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
148 # forward
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
149 for ind in range(index):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
150 self.forward()
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
151
8693
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
152 def isBackwardAvailable(self):
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
153 """
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
154 Public method to check, if stepping backward through the history is
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
155 available.
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
156 """
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
157 return QTextBrowser.isBackwardAvailable(self)
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
158
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
159 def isForwardAvailable(self):
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
160 """
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
161 Public method to check, if stepping forward through the history is
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
162 available.
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
163 """
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
164 return QTextBrowser.isForwardAvailable(self)
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
165
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
166 def scaleUp(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
167 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
168 Public method to zoom in.
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
169 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
170 if self.__zoomCount < 10:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
171 self.__zoomCount += 1
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
172 self.zoomIn()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
173 self.zoomChanged.emit()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
174
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
175 def scaleDown(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
176 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
177 Public method to zoom out.
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
178 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
179 if self.__zoomCount > -5:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
180 self.__zoomCount -= 1
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
181 self.zoomOut()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
182 self.zoomChanged.emit()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
183
8689
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
184 def setScale(self, scale):
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
185 """
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
186 Public method to set the zoom level.
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
187
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
188 @param scale zoom level to set
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
189 @type int
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
190 """
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
191 if -5 <= scale <= 10:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
192 self.zoomOut(scale)
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
193 self.__zoomCount = scale
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
194 self.zoomChanged.emit()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
195
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
196 def resetScale(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
197 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
198 Public method to reset the zoom level.
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
199 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
200 if self.__zoomCount != 0:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
201 self.zoomOut(self.__zoomCount)
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
202 self.zoomChanged.emit()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
203 self.__zoomCount = 0
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
204
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
205 def scale(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
206 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
207 Public method to get the zoom level.
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
208
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
209 @return current zoom level
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
210 @rtype int
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
211 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
212 return self.__zoomCount
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
213
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
214 def isScaleUpAvailable(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
215 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
216 Public method to check, if the max. zoom level is reached.
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
217
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
218 @return flag indicating scale up is available
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
219 @rtype bool
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
220 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
221 return self.__zoomCount < 10
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
222
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
223 def isScaleDownAvailable(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
224 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
225 Public method to check, if the min. zoom level is reached.
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
226
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
227 @return flag indicating scale down is available
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
228 @rtype bool
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
229 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
230 return self.__zoomCount > -5
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
231
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
232 def wheelEvent(self, evt):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
233 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
234 Public method to handle wheel event to zoom.
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
235
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
236 @param evt reference to the event object
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
237 @type QWheelEvent
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
238 """
8693
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
239 delta = evt.angleDelta().y()
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
240 if evt.modifiers() == Qt.KeyboardModifier.ControlModifier:
8693
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
241 if delta > 0:
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
242 self.scaleUp()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
243 else:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
244 self.scaleDown()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
245 evt.accept()
8693
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
246
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
247 elif evt.modifiers() & Qt.KeyboardModifier.ShiftModifier:
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
248 if delta < 0:
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
249 self.backward()
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
250 elif delta > 0:
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
251 self.forward()
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
252 evt.accept()
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
253
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
254 else:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
255 QTextBrowser.wheelEvent(self, evt)
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
256
8689
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
257 def keyPressEvent(self, evt):
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
258 """
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
259 Public method to handle key press events.
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
260
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
261 @param evt reference to the key event
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
262 @type QKeyEvent
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
263 """
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
264 if evt.key() == Qt.Key.Key_ZoomIn:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
265 self.scaleUp()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
266 evt.accept()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
267 elif evt.key() == Qt.Key.Key_ZoomOut:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
268 self.scaleDown()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
269 evt.accept()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
270 elif evt.key() == Qt.Key.Key_Plus:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
271 if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
272 self.scaleUp()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
273 evt.accept()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
274 elif evt.key() == Qt.Key.Key_Minus:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
275 if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
276 self.scaleDown()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
277 evt.accept()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
278 elif evt.key() == Qt.Key.Key_0:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
279 if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
280 self.resetScale()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
281 evt.accept()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
282 elif evt.key() == Qt.Key.Key_Backspace:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
283 self.backward()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
284 evt.accept()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
285
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
286 def event(self, evt):
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
287 """
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
288 Public method handling events.
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
289
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
290 @param evt reference to the event
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
291 @type QEvent
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
292 @return flag indicating the event was handled
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
293 @rtype bool
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
294 """
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
295 if evt.type() == QEvent.Type.Gesture:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
296 self.gestureEvent(evt)
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
297 return True
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
298
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
299 return super().event(evt)
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
300
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
301 def gestureEvent(self, evt):
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
302 """
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
303 Protected method handling gesture events.
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
304
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
305 @param evt reference to the gesture event
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
306 @type QGestureEvent
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
307 """
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
308 pinch = evt.gesture(Qt.GestureType.PinchGesture)
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
309 if pinch:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
310 if pinch.state() == Qt.GestureState.GestureStarted:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
311 zoom = (self.getZoom() + 6) / 10.0
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
312 pinch.setTotalScaleFactor(zoom)
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
313 elif pinch.state() == Qt.GestureState.GestureUpdated:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
314 zoom = int(pinch.totalScaleFactor() * 10) - 6
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
315 if zoom <= -5:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
316 zoom = -5
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
317 pinch.setTotalScaleFactor(0.1)
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
318 elif zoom >= 10:
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
319 zoom = 10
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
320 pinch.setTotalScaleFactor(1.6)
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
321 self.setScale(zoom)
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
322 evt.accept()
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
323
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
324 # TODO: implement context menu
8693
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
325 # - Backward
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
326 # - Forward
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
327 # - Reload
8689
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
328 # - Open Link
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
329 # - Open Link in New Page
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
330 # - Open Link in Background Page
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
331 # - Copy
8693
d51660d6f1b9 Continued implementing the embedded help viewer widget. Implemented most part of the QWebEngine based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8689
diff changeset
332 # - Copy Link Location
8689
da40117c42d6 Implemented some keyboard zoom actions and zooming via a pinch gesture for the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8683
diff changeset
333 # - Select All
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
334 # TODO: add Ctrl+LMB action (open link in new page)

eric ide

mercurial