src/eric7/QtHelpInterface/HelpIndexWidget.py

Tue, 10 Dec 2024 15:46:34 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:46:34 +0100
branch
eric7
changeset 11090
f5f5f5803935
parent 10692
9becf9ca115c
permissions
-rw-r--r--

Updated copyright for 2025.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10692
diff changeset
3 # Copyright (c) 2009 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a window for showing the QtHelp index.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
10 from PyQt6.QtCore import QEvent, Qt, QUrl, pyqtSignal, pyqtSlot
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
11 from PyQt6.QtGui import QClipboard, QGuiApplication
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
12 from PyQt6.QtHelp import QHelpLink
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
13 from PyQt6.QtWidgets import (
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
14 QApplication,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
15 QDialog,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
16 QHBoxLayout,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
17 QLabel,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
18 QLineEdit,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
19 QMenu,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
20 QVBoxLayout,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
21 QWidget,
7269
0c63ea7f94bd Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
22 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
24
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 class HelpIndexWidget(QWidget):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Class implementing a window for showing the QtHelp index.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
28
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @signal escapePressed() emitted when the ESC key was pressed
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
30 @signal openUrl(QUrl, str) emitted to open an entry in the current tab
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
31 @signal newTab(QUrl, str) emitted to open an entry in a new tab
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
32 @signal newBackgroundTab(QUrl, str) emitted to open an entry in a
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
33 new background tab
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
34 @signal newWindow(QUrl, str) emitted to open an entry in a new window
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
36
487
4d41d03d3d00 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 482
diff changeset
37 escapePressed = pyqtSignal()
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
38 openUrl = pyqtSignal(QUrl)
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
39 newTab = pyqtSignal(QUrl)
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
40 newBackgroundTab = pyqtSignal(QUrl)
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
41 newWindow = pyqtSignal(QUrl)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
42
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
43 def __init__(self, engine, internal=False, parent=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
46
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
47 @param engine reference to the help engine
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
48 @type QHelpEngine
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
49 @param internal flag indicating the internal help viewer
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
50 @type bool
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
51 @param parent reference to the parent widget
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
52 @type QWidget
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
54 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
55
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.__engine = engine
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
57 self.__internal = internal
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
58
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.__searchEdit = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.__index = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
61
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.__layout = QVBoxLayout(self)
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
63 if internal:
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
64 # no margins for the internal variant
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
65 self.__layout.setContentsMargins(0, 0, 0, 0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
66
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
67 self.__searchEditLayout = QHBoxLayout()
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
68 label = QLabel(self.tr("&Look for:"))
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
69 self.__searchEditLayout.addWidget(label)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
70
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.__searchEdit = QLineEdit()
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
72 self.__searchEdit.setClearButtonEnabled(True)
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2999
diff changeset
73 label.setBuddy(self.__searchEdit)
487
4d41d03d3d00 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 482
diff changeset
74 self.__searchEdit.textChanged.connect(self.__filterIndices)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 self.__searchEdit.installEventFilter(self)
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
76 self.__searchEditLayout.addWidget(self.__searchEdit)
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
77 self.__layout.addLayout(self.__searchEditLayout)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__index = self.__engine.indexWidget()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80 self.__index.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
81
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
82 self.__engine.indexModel().indexCreationStarted.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
83 self.__disableSearchEdit
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
84 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
85 self.__engine.indexModel().indexCreated.connect(self.__enableSearchEdit)
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
86 self.__index.documentActivated.connect(self.__documentActivated)
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
87 self.__index.documentsActivated.connect(self.__documentsActivated)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
88 self.__index.customContextMenuRequested.connect(self.__showContextMenu)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
89 self.__searchEdit.returnPressed.connect(self.__index.activateCurrentItem)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.__layout.addWidget(self.__index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
91
8564
c48137b0d7ba Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8421
diff changeset
92 @pyqtSlot(QHelpLink, str)
10692
9becf9ca115c Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
93 def __documentActivated(self, document, _keyword, modifiers=None):
113
33afff70d8ee Implemented a workaround for a Qt/PyQt issue causing the eric web browser to crash, when some entry of the index widget is activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
94 """
33afff70d8ee Implemented a workaround for a Qt/PyQt issue causing the eric web browser to crash, when some entry of the index widget is activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
95 Private slot to handle the activation of a keyword entry.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
96
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
97 @param document reference to a data structure containing the
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
98 document info
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
99 @type QHelpLink
10692
9becf9ca115c Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
100 @param _keyword keyword for the URL (unused)
5252
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
101 @type str
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7781
diff changeset
102 @param modifiers keyboard modifiers
5252
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
103 @type Qt.KeyboardModifiers or None
113
33afff70d8ee Implemented a workaround for a Qt/PyQt issue causing the eric web browser to crash, when some entry of the index widget is activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
104 """
5252
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
105 if modifiers is None:
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
106 modifiers = QApplication.keyboardModifiers()
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
107 if not document.url.isEmpty() and document.url.isValid():
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
108 if modifiers & (
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
109 Qt.KeyboardModifier.ControlModifier
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
110 | Qt.KeyboardModifier.ControlModifier
7269
0c63ea7f94bd Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
111 ):
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
112 self.newBackgroundTab.emit(document.url)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
113 elif modifiers & Qt.KeyboardModifier.ControlModifier:
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
114 self.newTab.emit(document.url)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
115 elif modifiers & Qt.KeyboardModifier.ShiftModifier and not self.__internal:
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
116 self.newWindow.emit(document.url)
113
33afff70d8ee Implemented a workaround for a Qt/PyQt issue causing the eric web browser to crash, when some entry of the index widget is activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
117 else:
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
118 self.openUrl.emit(document.url)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
119
8565
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
120 def __documentsActivated(self, documents, helpKeyword):
5252
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
121 """
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
122 Private slot to handle the activation of an entry with multiple help
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
123 documents.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
124
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
125 @param documents list of help document link data structures
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
126 @type list of QHelpLink
8565
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
127 @param helpKeyword keyword for the entry
5252
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
128 @type str
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
129 """
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
130 modifiers = QApplication.keyboardModifiers()
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
131 document = (
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
132 documents[0]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
133 if len(documents) == 1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
134 else self.__selectDocument(documents, helpKeyword)
8260
2161475d9639 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
135 )
8565
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
136 self.__documentActivated(document, helpKeyword, modifiers)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
137
8565
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
138 def __selectDocument(self, documents, helpKeyword):
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
139 """
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
140 Private method to give the user a chance to select among the
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
141 given documents.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
142
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
143 @param documents list of help document link data structures
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
144 @type list of QHelpLink
8565
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
145 @param helpKeyword keyword for the documents
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
146 @type str
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
147 @return selected document
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
148 @rtype QHelpLink
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
149 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
150 from .HelpTopicDialog import HelpTopicDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
151
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
152 document = QHelpLink()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153
8565
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
154 dlg = HelpTopicDialog(self, helpKeyword, documents)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
155 if dlg.exec() == QDialog.DialogCode.Accepted:
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
156 document = dlg.document()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
157
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
158 return document
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159
5605
1950fe1a32c4 Finished fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
160 def __filterIndices(self, indexFilter):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 """
5605
1950fe1a32c4 Finished fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
162 Private slot to filter the indexes according to the given filter.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
163
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
164 @param indexFilter filter to be used
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
165 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167 if "*" in indexFilter:
5605
1950fe1a32c4 Finished fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
168 self.__index.filterIndices(indexFilter, indexFilter)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 else:
5605
1950fe1a32c4 Finished fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
170 self.__index.filterIndices(indexFilter)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
171
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 def __enableSearchEdit(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 Private slot to enable the search edit.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 self.__searchEdit.setEnabled(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 self.__filterIndices(self.__searchEdit.text())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
178
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 def __disableSearchEdit(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 Private slot to enable the search edit.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 self.__searchEdit.setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
184
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 def focusInEvent(self, evt):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 Protected method handling focus in events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
188
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
189 @param evt reference to the focus event object
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
190 @type QFocusEvent
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 """
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
192 if evt.reason() != Qt.FocusReason.MouseFocusReason:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 self.__searchEdit.selectAll()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 self.__searchEdit.setFocus()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
195
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 def eventFilter(self, watched, event):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 Public method called to filter the event queue.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
199
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
200 @param watched the QObject being watched
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
201 @type QObject
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
202 @param event the event that occurred
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
203 @type QEvent
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
204 @return flag indicating whether the event was handled
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
205 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 """
7269
0c63ea7f94bd Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
207 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
208 self.__searchEdit
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
209 and watched == self.__searchEdit
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
210 and event.type() == QEvent.Type.KeyPress
7269
0c63ea7f94bd Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
211 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 idx = self.__index.currentIndex()
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
213 if event.key() == Qt.Key.Key_Up:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 idx = self.__index.model().index(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
215 idx.row() - 1, idx.column(), idx.parent()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
216 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 if idx.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 self.__index.setCurrentIndex(idx)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
219 elif event.key() == Qt.Key.Key_Down:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 idx = self.__index.model().index(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
221 idx.row() + 1, idx.column(), idx.parent()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
222 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 if idx.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 self.__index.setCurrentIndex(idx)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
225 elif event.key() == Qt.Key.Key_Escape:
487
4d41d03d3d00 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 482
diff changeset
226 self.escapePressed.emit()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
227
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 return QWidget.eventFilter(self, watched, event)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
229
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
230 def __showContextMenu(self, pos):
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
231 """
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
232 Private slot showing the context menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
233
8421
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
234 @param pos position to show the menu at
cd4eee7f1d28 QtHelp: changed the code to not use deprecated methods anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
235 @type QPoint
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
236 """
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
237 idx = self.__index.indexAt(pos)
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
238 if idx.isValid():
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
239 menu = QMenu()
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
240 curTab = menu.addAction(self.tr("Open Link"))
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
241 if self.__internal:
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
242 newTab = menu.addAction(self.tr("Open Link in New Page"))
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
243 newBackgroundTab = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
244 self.tr("Open Link in Background Page")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
245 )
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
246 else:
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
247 newTab = menu.addAction(self.tr("Open Link in New Tab"))
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
248 newBackgroundTab = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
249 self.tr("Open Link in Background Tab")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
250 )
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
251 newWindow = menu.addAction(self.tr("Open Link in New Window"))
8704
e4042abf2a5b Added a context menu action to copy the link URL to the clipboard to the QtHelp widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
252 menu.addSeparator()
e4042abf2a5b Added a context menu action to copy the link URL to the clipboard to the QtHelp widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
253 copyLink = menu.addAction(self.tr("Copy URL to Clipboard"))
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
254 menu.move(self.__index.mapToGlobal(pos))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
255
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
256 act = menu.exec()
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
257 model = self.__index.model()
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
258 if model is not None:
8565
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
259 helpKeyword = model.data(idx, Qt.ItemDataRole.DisplayRole)
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
260 helpLinks = self.__engine.documentsForKeyword(helpKeyword, "")
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
261 if len(helpLinks) == 1:
207b47c2eed9 Next batch of changes for QtHelp as of Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8564
diff changeset
262 link = helpLinks[0].url
5038
df7103c3f2a6 Added capabilities to open links in a new background tab, and several other link open actions to various context menus of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4875
diff changeset
263 else:
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
264 link = self.__selectDocument(helpLinks, helpKeyword).url
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
265
5252
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
266 if not link.isEmpty() and link.isValid():
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
267 if act == curTab:
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
268 self.openUrl.emit(link)
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
269 elif act == newTab:
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
270 self.newTab.emit(link)
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
271 elif act == newBackgroundTab:
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
272 self.newBackgroundTab.emit(link)
8685
b0669ce1066d Continued implementing the embedded help viewer widget. Added the help index and help search widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8565
diff changeset
273 elif not self.__internal and act == newWindow:
5252
321c2003745d Optimized the QtHelp handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5038
diff changeset
274 self.newWindow.emit(link)
8704
e4042abf2a5b Added a context menu action to copy the link URL to the clipboard to the QtHelp widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
275 elif act == copyLink:
e4042abf2a5b Added a context menu action to copy the link URL to the clipboard to the QtHelp widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
276 # copy the URL to both clipboard areas
e4042abf2a5b Added a context menu action to copy the link URL to the clipboard to the QtHelp widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
277 QGuiApplication.clipboard().setText(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
278 link.toString(), QClipboard.Mode.Clipboard
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
279 )
8704
e4042abf2a5b Added a context menu action to copy the link URL to the clipboard to the QtHelp widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8693
diff changeset
280 QGuiApplication.clipboard().setText(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
281 link.toString(), QClipboard.Mode.Selection
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
282 )

eric ide

mercurial