src/eric7/WebBrowser/QtHelp/QtHelpDocumentationSettings.py

Mon, 07 Nov 2022 17:19:58 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 07 Nov 2022 17:19:58 +0100
branch
eric7
changeset 9482
a2bc06a54d9d
parent 9221
bf71ee032bb4
child 9653
e67609152c5e
permissions
-rw-r--r--

Corrected/acknowledged some bad import style and removed some obsolete code.

8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
3 # Copyright (c) 2021 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a class to store the QtHelp documentation settings before
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 being applied to the help engine.
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import collections
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import copy
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from PyQt6.QtHelp import QCompressedHelpInfo
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 class QtHelpDocumentationSettings:
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 Class implementing a temporary store for QtHelp documentation settings.
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
21
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 def __init__(self):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Constructor
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 self._namespaceToComponent = {}
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 self._componentToNamespace = collections.defaultdict(list)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
28
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 self._namespaceToVersion = {}
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self._versionToNamespace = collections.defaultdict(list)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 self._namespaceToFilename = {}
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self._filenameToNamespace = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
34
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 def addDocumentation(self, filename):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 Public method to a add a documentation file to the list.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
38
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @param filename name of the documentation file to add
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @type str
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @return flag indicating success
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @rtype bool
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 info = QCompressedHelpInfo.fromCompressedHelpFile(filename)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
45
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 if info.isNull():
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
48
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 namespace = info.namespaceName()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
50
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 if namespace in self._namespaceToFilename:
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
53
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 if filename in self._filenameToNamespace:
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
56
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 component = info.component()
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 version = info.version()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
59
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self._namespaceToFilename[namespace] = filename
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self._filenameToNamespace[filename] = namespace
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
62
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self._namespaceToComponent[namespace] = component
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self._componentToNamespace[component].append(namespace)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
65
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self._namespaceToVersion[namespace] = version
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self._versionToNamespace[version].append(namespace)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
68
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
70
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 def removeDocumentation(self, namespace):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 Public method to remove the documentation of a given namespace.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 @param namespace name of the namespace
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @type str
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 @return flag indicating success
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 @rtype bool
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 if not namespace:
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
82
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 try:
8565
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
84 filename = self._namespaceToFilename[namespace]
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 except KeyError:
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
87
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 component = self._namespaceToComponent[namespace]
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 version = self._namespaceToVersion[namespace]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
90
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 del self._namespaceToComponent[namespace]
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 del self._namespaceToVersion[namespace]
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 del self._namespaceToFilename[namespace]
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 del self._filenameToNamespace[filename]
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 self._componentToNamespace[component].remove(namespace)
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 if len(self._componentToNamespace[component]) == 0:
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 del self._componentToNamespace[component]
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 self._versionToNamespace[version].remove(namespace)
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 if len(self._versionToNamespace[version]) == 0:
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 del self._versionToNamespace[version]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
101
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
103
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 def namespace(self, filename):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 Public method to get the namespace defined by a QtHelp file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
107
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 @param filename name of the QtHelp file
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 @type str
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 @return name of the namespace
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 @rtype str
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 """
8564
c48137b0d7ba Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8422
diff changeset
113 return self._filenameToNamespace[filename]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
114
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 def components(self):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 Public method to get the list of components.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
118
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 @return list of components
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 @rtype list of str
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 return [k for k in self._componentToNamespace.keys()]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
123
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 def versions(self):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 Public method to get the list of versions.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
127
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 @return list of versions
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 @rtype list of QVersionNumber
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 return [k for k in self._versionToNamespace.keys()]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
132
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 def namespaces(self):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 Public method to get the list of namespaces.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
136
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 @return list of namespaces
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 @rtype list of str
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 return [k for k in self._namespaceToFilename.keys()]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
141
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 def namespaceToFilename(self):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 Public method to get the namespace to filename mapping.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
145
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 @return dictionary containing the namespace to filename mapping
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 @rtype dict
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 return copy.deepcopy(self._namespaceToFilename)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
150
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 @staticmethod
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 def readSettings(helpEngine):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 Static method to read the QtHelp documentation configuration.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
155
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 @param helpEngine reference to the QtHelp engine
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 @type QHelpEngineCore
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @return reference to the created QtHelpDocumentationSettings object
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @rtype QtHelpDocumentationSettings
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 filterEngine = helpEngine.filterEngine()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
162
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 docSettings = QtHelpDocumentationSettings()
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 docSettings._namespaceToComponent = filterEngine.namespaceToComponent()
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 docSettings._namespaceToVersion = filterEngine.namespaceToVersion()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
166
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 for namespace, component in docSettings._namespaceToComponent.items():
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 filename = helpEngine.documentationFileName(namespace)
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 docSettings._namespaceToFilename[namespace] = filename
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 docSettings._filenameToNamespace[filename] = namespace
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 docSettings._componentToNamespace[component].append(namespace)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
172
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 for namespace, version in docSettings._namespaceToVersion.items():
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 docSettings._versionToNamespace[version].append(namespace)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
175
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 return docSettings
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
177
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 @staticmethod
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 def applySettings(helpEngine, settings):
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 Static method to apply the changed QtHelp documentation configuration.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
182
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 @param helpEngine reference to the QtHelp engine
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 @type QHelpEngineCore
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 @param settings reference to the created QtHelpDocumentationSettings
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 object
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 @type QtHelpDocumentationSettings
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 @return flag indicating success
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 @rtype bool
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 """
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 currentSettings = QtHelpDocumentationSettings.readSettings(helpEngine)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
192
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
193 docsToRemove = [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
194 name
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
195 for name in currentSettings._namespaceToFilename
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
196 if name not in settings._namespaceToFilename
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
197 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
198 docsToAdd = [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
199 filename
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
200 for filename in settings._filenameToNamespace
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
201 if filename not in currentSettings._filenameToNamespace
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
202 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
203
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 changed = False
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 for namespace in docsToRemove:
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 helpEngine.unregisterDocumentation(namespace)
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 changed = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
208
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 for filename in docsToAdd:
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 helpEngine.registerDocumentation(filename)
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 changed = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
212
8422
bb5da74c1b3f WebBrowser: reimplemented the QtHelp documentation configuration dialog using Qt6 capabilities and widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 return changed

eric ide

mercurial