eric7/HelpViewer/HelpViewerImplQTB.py

Thu, 23 Jun 2022 17:54:29 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 23 Jun 2022 17:54:29 +0200
branch
eric7
changeset 9172
4bac907a4c74
parent 8900
9c153ce17d74
permissions
-rw-r--r--

Added light and dark mode empty documents to the 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
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8705
diff changeset
3 # Copyright (c) 2021 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
8679
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
8700
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
10 import contextlib
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
11 import functools
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
12
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
13 from PyQt6.QtCore import (
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
14 pyqtSlot, Qt, QByteArray, QUrl, QEvent, QCoreApplication, QPoint
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
15 )
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
16 from PyQt6.QtGui import QDesktopServices, QImage, QGuiApplication, QClipboard
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
17 from PyQt6.QtWidgets import QTextBrowser, QMenu
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 from .HelpViewerImpl import HelpViewerImpl
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
21 import UI.PixmapCache
8679
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
23
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
24 AboutBlank = QCoreApplication.translate(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
25 "HelpViewer",
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
26 "<html>"
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
27 "<head><title>about:blank</title></head>"
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
28 "<body></body>"
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
29 "</html>")
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
30
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
31 PageNotFound = QCoreApplication.translate(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
32 "HelpViewer",
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
33 """<html>"""
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
34 """<head><title>Error 404...</title></head>"""
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
35 """<body><div align="center"><br><br>"""
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
36 """<h1>The page could not be found</h1><br>"""
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
37 """<h3>'{0}'</h3></div></body>"""
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
38 """</html>""")
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
39
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
40
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
41 class HelpViewerImplQTB(HelpViewerImpl, QTextBrowser):
8679
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 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
44 """
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
45 def __init__(self, engine, parent=None):
8679
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 Constructor
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
49 @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
50 @type QHelpEngine
8679
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 @param parent reference to the parent widget
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 @type QWidget
fd172973428e Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
54 QTextBrowser.__init__(self, parent=parent)
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
55 HelpViewerImpl.__init__(self, engine)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
56
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
57 self.__helpViewerWidget = parent
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
58
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
59 self.__zoomCount = 0
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
60
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
61 self.__menu = QMenu(self)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
62 self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
63 self.customContextMenuRequested.connect(self.__showContextMenu)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
64
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
65 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
66
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
67 self.grabGesture(Qt.GestureType.PinchGesture)
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
68
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
69 def setLink(self, url):
8680
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 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
72
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
73 @param url source of the document
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
74 @type QUrl
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
75 """
9172
4bac907a4c74 Added light and dark mode empty documents to the help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8900
diff changeset
76 if url.toString() == "about:blank":
4bac907a4c74 Added light and dark mode empty documents to the help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8900
diff changeset
77 self.setHtml(self.__helpViewerWidget.emptyDocument())
4bac907a4c74 Added light and dark mode empty documents to the help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8900
diff changeset
78 else:
4bac907a4c74 Added light and dark mode empty documents to the help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8900
diff changeset
79 self.setSource(url)
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
80
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
81 def link(self):
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
82 """
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
83 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
84
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
85 @return URL of the document
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
86 @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
87 """
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
88 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
89
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
90 def doSetSource(self, url, type_):
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
91 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
92 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
93
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
94 @param url URL of resource to load
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
95 @type QUrl
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
96 @param type_ type of the resource to load
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
97 @type QTextDocument.ResourceType
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
98 """
8700
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
99 if not self.__canLoadResource(url):
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
100 QDesktopServices.openUrl(url)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
101 return
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
102
8700
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
103 super().doSetSource(url, type_)
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
104
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
105 self.sourceChanged.emit(url)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
106 self.loadFinished.emit(True)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
107
8700
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
108 def loadResource(self, type_, name):
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
109 """
8700
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
110 Public method to load data of the specified type from the resource with
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
111 the given name.
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
112
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
113 @param type_ resource type
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
114 @type int
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
115 @param name resource name
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
116 @type QUrl
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
117 @return byte array containing the loaded data
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
118 @rtype QByteArray
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
119 """
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
120 ba = QByteArray()
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
121 scheme = name.scheme()
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
122
8700
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
123 if type_ < 4: # QTextDocument.ResourceType.MarkdownResource
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
124 if scheme == "about":
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
125 if name.toString() == "about:blank":
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
126 return QByteArray(AboutBlank.encode("utf-8"))
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
127 elif scheme in ("file", ""):
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
128 filePath = name.toLocalFile()
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
129 with contextlib.suppress(OSError), open(filePath, "rb") as f:
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
130 ba = QByteArray(f.read())
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
131 elif scheme == "qthelp":
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
132 url = self._engine.findFile(name)
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
133 if url.isValid():
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
134 ba = self._engine.fileData(url)
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
135
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
136 if name.toString().lower().endswith(".svg"):
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
137 image = QImage()
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
138 image.loadFromData(ba, "svg")
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
139 if not image.isNull():
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
140 return image
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
141
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
142 if ba.isEmpty():
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
143 ba = QByteArray(
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
144 PageNotFound.format(name.toString()).encode("utf-8")
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
145 )
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
146
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
147 return ba
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
148
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
149 def __canLoadResource(self, url):
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
150 """
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
151 Private method to check, if the given resource can be loaded.
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
152
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
153 @param url URL of resource to be loaded
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
154 @type QUrl
8700
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
155 @return flag indicating, that the given URL can be handled
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
156 @rtype bool
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
157 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
158 scheme = url.scheme()
8700
112271b4a2eb Refactored the data loading mechanism of the QTextBrowser based help viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8697
diff changeset
159 return scheme in ("about", "qthelp", "file", "")
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
160
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
161 def pageTitle(self):
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
162 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
163 Public method get the page title.
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
164
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
165 @return page title
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
166 @rtype str
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
167 """
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
168 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
169 if not titleStr:
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
170 url = self.link()
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
171
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
172 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
173 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
174 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
175 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
176
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
177 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
178 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
179
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
180 return titleStr
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
181
8705
327e596607f8 Added a configuration option to use the internal help viewer and made that the default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8702
diff changeset
182 def isEmptyPage(self):
327e596607f8 Added a configuration option to use the internal help viewer and made that the default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8702
diff changeset
183 """
327e596607f8 Added a configuration option to use the internal help viewer and made that the default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8702
diff changeset
184 Public method to check, if the current page is the empty page.
327e596607f8 Added a configuration option to use the internal help viewer and made that the default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8702
diff changeset
185
327e596607f8 Added a configuration option to use the internal help viewer and made that the default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8702
diff changeset
186 @return flag indicating an empty page is loaded
327e596607f8 Added a configuration option to use the internal help viewer and made that the default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8702
diff changeset
187 @rtype bool
327e596607f8 Added a configuration option to use the internal help viewer and made that the default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8702
diff changeset
188 """
327e596607f8 Added a configuration option to use the internal help viewer and made that the default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8702
diff changeset
189 return self.pageTitle() == self.tr("Empty Page")
327e596607f8 Added a configuration option to use the internal help viewer and made that the default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8702
diff changeset
190
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
191 def mousePressEvent(self, evt):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
192 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
193 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
194
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
195 @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
196 @type QMouseEvent
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
197 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
198 if evt.button() == Qt.MouseButton.XButton1:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
199 self.backward()
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
200 evt.accept()
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
201 elif evt.button() == Qt.MouseButton.XButton2:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
202 self.forward()
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
203 evt.accept()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
204 else:
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
205 super().mousePressEvent(evt)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
206
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
207 def mouseReleaseEvent(self, evt):
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
208 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
209 Protected method called by a mouse release event.
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
210
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
211 @param evt reference to the mouse event
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
212 @type QMouseEvent
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
213 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
214 hasModifier = evt.modifiers() != Qt.KeyboardModifier.NoModifier
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
215 if evt.button() == Qt.MouseButton.LeftButton and hasModifier:
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
216
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
217 anchor = self.anchorAt(evt.pos())
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
218 if anchor:
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
219 url = self.link().resolved(QUrl(anchor))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
220 if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
221 self.__helpViewerWidget.openUrlNewBackgroundPage(url)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
222 else:
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
223 self.__helpViewerWidget.openUrlNewPage(url)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
224 evt.accept()
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
225 else:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
226 super().mousePressEvent(evt)
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
227
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
228 def gotoHistory(self, index):
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
229 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
230 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
231
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
232 @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
233 @type int
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
234 """
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
235 if index < 0:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
236 # backward
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
237 for _ind in range(-index):
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
238 self.backward()
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
239 else:
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
240 # forward
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
241 for _ind in range(index):
8680
85503ff2fce9 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8679
diff changeset
242 self.forward()
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
243
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
244 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
245 """
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 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
247 available.
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
248
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
249 @return flag indicating backward stepping is available
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
250 @rtype bool
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
251 """
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 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
253
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
254 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
255 """
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
256 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
257 available.
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
258
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
259 @return flag indicating forward stepping is available
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
260 @rtype bool
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
261 """
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
262 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
263
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
264 def scaleUp(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
265 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
266 Public method to zoom in.
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
267 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
268 if self.__zoomCount < 10:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
269 self.__zoomCount += 1
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
270 self.zoomIn()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
271 self.zoomChanged.emit()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
272
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
273 def scaleDown(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
274 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
275 Public method to zoom out.
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
276 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
277 if self.__zoomCount > -5:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
278 self.__zoomCount -= 1
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
279 self.zoomOut()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
280 self.zoomChanged.emit()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
281
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
282 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
283 """
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 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
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 @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
287 @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
288 """
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 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
290 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
291 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
292 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
293
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
294 def resetScale(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
295 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
296 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
297 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
298 if self.__zoomCount != 0:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
299 self.zoomOut(self.__zoomCount)
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
300 self.zoomChanged.emit()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
301 self.__zoomCount = 0
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
302
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
303 def scale(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
304 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
305 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
306
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
307 @return current zoom level
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
308 @rtype int
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
309 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
310 return self.__zoomCount
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
311
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
312 def isScaleUpAvailable(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
313 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
314 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
315
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
316 @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
317 @rtype bool
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
318 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
319 return self.__zoomCount < 10
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
320
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
321 def isScaleDownAvailable(self):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
322 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
323 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
324
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
325 @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
326 @rtype bool
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
327 """
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
328 return self.__zoomCount > -5
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
329
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
330 def wheelEvent(self, evt):
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
331 """
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
332 Protected method to handle wheel event to zoom.
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
333
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
334 @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
335 @type QWheelEvent
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
336 """
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
337 delta = evt.angleDelta().y()
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
338 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
339 if delta > 0:
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
340 self.scaleUp()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
341 else:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
342 self.scaleDown()
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
343 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
344
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
345 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
346 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
347 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
348 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
349 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
350 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
351
8681
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
352 else:
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
353 QTextBrowser.wheelEvent(self, evt)
6285e8374d99 Continued implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8680
diff changeset
354
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
355 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
356 """
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
357 Protected method to handle key press events.
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
358
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
359 @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
360 @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
361 """
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
362 key = evt.key()
8702
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
363 isControlModifier = (
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
364 evt.modifiers() == Qt.KeyboardModifier.ControlModifier
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
365 )
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
366
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
367 if (
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
368 key == Qt.Key.Key_ZoomIn or
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
369 (key == Qt.Key.Key_Plus and isControlModifier)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
370 ):
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
371 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
372 evt.accept()
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
373 elif (
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
374 key == Qt.Key.Key_ZoomOut or
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
375 (key == Qt.Key.Key_Minus and isControlModifier)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
376 ):
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
377 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
378 evt.accept()
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
379 elif key == Qt.Key.Key_0 and isControlModifier:
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
380 self.resetScale()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
381 evt.accept()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
382 elif (
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
383 key == Qt.Key.Key_Backspace or
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
384 (key == Qt.Key.Key_Left and isControlModifier)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
385 ):
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
386 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
387 evt.accept()
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
388 elif key == Qt.Key.Key_Right and isControlModifier:
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
389 self.forward()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
390 evt.accept()
8702
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
391 elif key == Qt.Key.Key_F and isControlModifier:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
392 self.__helpViewerWidget.showHideSearch(True)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
393 evt.accept()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
394 elif (
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
395 key == Qt.Key.Key_F3 and
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
396 evt.modifiers() == Qt.KeyboardModifier.NoModifier
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
397 ):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
398 self.__helpViewerWidget.searchNext()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
399 evt.accept()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
400 elif (
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
401 key == Qt.Key.Key_F3 and
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
402 evt.modifiers() == Qt.KeyboardModifier.ShiftModifier
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
403 ):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
404 self.__helpViewerWidget.searchPrev()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8700
diff changeset
405 evt.accept()
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
406 else:
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
407 super().keyPressEvent(evt)
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
408
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
409 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
410 """
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
411 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
412
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
413 @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
414 @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
415 @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
416 @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
417 """
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
418 if evt.type() == QEvent.Type.Gesture:
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
419 self.gestureEvent(evt)
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
420 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
421
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
422 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
423
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
424 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
425 """
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
426 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
427
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
428 @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
429 @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
430 """
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
431 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
432 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
433 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
434 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
435 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
436 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
437 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
438 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
439 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
440 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
441 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
442 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
443 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
444 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
445 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
446
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
447 #######################################################################
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
448 ## Context menu related methods below
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
449 #######################################################################
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
450
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
451 @pyqtSlot(QPoint)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
452 def __showContextMenu(self, pos):
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
453 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
454 Private slot to show the context menu.
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
455
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
456 @param pos position to show the context menu at
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
457 @type QPoint
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
458 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
459 self.__menu.clear()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
460 anchor = self.anchorAt(pos)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
461 linkUrl = self.link().resolved(QUrl(anchor)) if anchor else QUrl()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
462 selectedText = self.textCursor().selectedText()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
463
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
464 act = self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
465 UI.PixmapCache.getIcon("back"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
466 self.tr("Backward"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
467 self.backward)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
468 act.setEnabled(self.isBackwardAvailable())
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
469
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
470 act = self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
471 UI.PixmapCache.getIcon("forward"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
472 self.tr("Forward"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
473 self.forward)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
474 act.setEnabled(self.isForwardAvailable())
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
475
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
476 act = self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
477 UI.PixmapCache.getIcon("reload"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
478 self.tr("Reload"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
479 self.reload)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
480
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
481 if not linkUrl.isEmpty() and linkUrl.scheme() != "javascript":
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
482 self.__createLinkContextMenu(self.__menu, linkUrl)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
483
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
484 self.__menu.addSeparator()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
485
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
486 act = self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
487 UI.PixmapCache.getIcon("editCopy"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
488 self.tr("Copy Page URL to Clipboard"))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
489 act.setData(self.link())
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
490 act.triggered.connect(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
491 functools.partial(self.__copyLink, act))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
492
8900
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
493 act = self.__menu.addAction(
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
494 UI.PixmapCache.getIcon("bookmark22"),
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
495 self.tr("Bookmark Page"))
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
496 act.setData({
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
497 "title": self.pageTitle(),
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
498 "url": self.link()
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
499 })
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
500 act.triggered.connect(
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
501 functools.partial(self.__bookmarkPage, act))
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
502
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
503 self.__menu.addSeparator()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
504
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
505 act = self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
506 UI.PixmapCache.getIcon("zoomIn"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
507 self.tr("Zoom in"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
508 self.scaleUp)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
509 act.setEnabled(self.isScaleUpAvailable())
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
510
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
511 act = self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
512 UI.PixmapCache.getIcon("zoomOut"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
513 self.tr("Zoom out"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
514 self.scaleDown)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
515 act.setEnabled(self.isScaleDownAvailable())
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
516
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
517 self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
518 UI.PixmapCache.getIcon("zoomReset"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
519 self.tr("Zoom reset"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
520 self.resetScale)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
521
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
522 self.__menu.addSeparator()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
523
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
524 act = self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
525 UI.PixmapCache.getIcon("editCopy"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
526 self.tr("Copy"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
527 self.copy)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
528 act.setEnabled(bool(selectedText))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
529
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
530 self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
531 UI.PixmapCache.getIcon("editSelectAll"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
532 self.tr("Select All"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
533 self.selectAll)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
534
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
535 self.__menu.addSeparator()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
536
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
537 self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
538 UI.PixmapCache.getIcon("tabClose"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
539 self.tr('Close'),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
540 self.__closePage)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
541
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
542 act = self.__menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
543 UI.PixmapCache.getIcon("tabCloseOther"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
544 self.tr("Close Others"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
545 self.__closeOtherPages)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
546 act.setEnabled(self.__helpViewerWidget.openPagesCount() > 1)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
547
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
548 self.__menu.popup(self.mapToGlobal(pos))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
549
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
550 def __createLinkContextMenu(self, menu, linkUrl):
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
551 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
552 Private method to populate the context menu for URLs.
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
553
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
554 @param menu reference to the menu to be populated
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
555 @type QMenu
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
556 @param linkUrl URL to create the menu part for
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
557 @type QUrl
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
558 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
559 if not menu.isEmpty():
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
560 menu.addSeparator()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
561
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
562 act = menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
563 UI.PixmapCache.getIcon("openNewTab"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
564 self.tr("Open Link in New Page"))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
565 act.setData(linkUrl)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
566 act.triggered.connect(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
567 functools.partial(self.__openLinkInNewPage, act))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
568
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
569 act = menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
570 UI.PixmapCache.getIcon("newWindow"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
571 self.tr("Open Link in Background Page"))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
572 act.setData(linkUrl)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
573 act.triggered.connect(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
574 functools.partial(self.__openLinkInBackgroundPage, act))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
575
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
576 menu.addSeparator()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
577
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
578 act = menu.addAction(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
579 UI.PixmapCache.getIcon("editCopy"),
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
580 self.tr("Copy URL to Clipboard"))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
581 act.setData(linkUrl)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
582 act.triggered.connect(
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
583 functools.partial(self.__copyLink, act))
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
584
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
585 def __openLinkInNewPage(self, act):
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
586 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
587 Private method called by the context menu to open a link in a new page.
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
588
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
589 @param act reference to the action that triggered
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
590 @type QAction
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
591 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
592 url = act.data()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
593 if url.isEmpty():
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
594 return
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
595
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
596 self.__helpViewerWidget.openUrlNewPage(url)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
597
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
598 def __openLinkInBackgroundPage(self, act):
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
599 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
600 Private method called by the context menu to open a link in a
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
601 background page.
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
602
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
603 @param act reference to the action that triggered
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
604 @type QAction
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
605 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
606 url = act.data()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
607 if url.isEmpty():
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
608 return
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
609
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
610 self.__helpViewerWidget.openUrlNewBackgroundPage(url)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
611
8900
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
612 def __bookmarkPage(self, act):
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
613 """
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
614 Private method called by the context menu to bookmark the page.
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
615
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
616 @param act reference to the action that triggered
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
617 @type QAction
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
618 """
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
619 data = act.data()
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
620 if data:
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
621 with contextlib.suppress(KeyError):
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
622 url = data["url"]
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
623 title = data["title"]
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
624
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
625 self.__helpViewerWidget.bookmarkPage(title, url)
9c153ce17d74 Help Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
626
8696
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
627 def __copyLink(self, act):
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
628 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
629 Private method called by the context menu to copy a link to the
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
630 clipboard.
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
631
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
632 @param act reference to the action that triggered
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
633 @type QAction
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
634 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
635 data = act.data()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
636 if isinstance(data, QUrl) and data.isEmpty():
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
637 return
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
638
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
639 if isinstance(data, QUrl):
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
640 data = data.toString()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
641
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
642 # copy the URL to both clipboard areas
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
643 QGuiApplication.clipboard().setText(data, QClipboard.Mode.Clipboard)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
644 QGuiApplication.clipboard().setText(data, QClipboard.Mode.Selection)
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
645
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
646 def __closePage(self):
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
647 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
648 Private method called by the context menu to close the current page.
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
649 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
650 self.__helpViewerWidget.closeCurrentPage()
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
651
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
652 def __closeOtherPages(self):
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
653 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
654 Private method called by the context menu to close all other pages.
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
655 """
7e88f292b1b1 Continued implementing the embedded help viewer widget. Added context menus to the help viewer variants.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
656 self.__helpViewerWidget.closeOtherPages()

eric ide

mercurial