eric7/HelpViewer/HelpViewerWidget.py

Wed, 06 Oct 2021 20:00:29 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 06 Oct 2021 20:00:29 +0200
branch
eric7
changeset 8678
85a83e4e7f18
child 8679
fd172973428e
permissions
-rw-r--r--

Started implementing the embedded help viewer widget.

8678
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2021 Detlev Offenbach <detlev@die-offenbachs.de>
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing an embedded viewer for QtHelp and local HTML files.
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtWidgets import (
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 QWidget, QVBoxLayout, QComboBox, QSizePolicy, QStackedWidget
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 )
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 class HelpViewerWidget(QWidget):
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 Class implementing an embedded viewer for QtHelp and local HTML files.
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 def __init__(self, parent=None):
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Constructor
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 @param parent reference to the parent widget (defaults to None)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 @type QWidget (optional)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 super().__init__(parent)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 self.setObjectName("HelpViewerWidget")
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 self.__layout = QVBoxLayout()
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self.__layout.setObjectName("MainLayout")
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 self.__layout.setContentsMargins(0, 3, 0, 0)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.__helpSelector = QComboBox(self)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.__helpSelector.setSizePolicy(
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.__layout.addWidget(self.__helpSelector)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.__populateHelpSelector()
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.__helpStack = QStackedWidget(self)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.__helpStack.setSizePolicy(
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.__layout.addWidget(self.__helpStack)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__helpNavigationStack = QStackedWidget(self)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.__helpNavigationStack.setSizePolicy(
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.__layout.addWidget(self.__helpNavigationStack)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__populateNavigationStack()
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.setLayout(self.__layout)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 def __populateNavigationStack(self):
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 Private method to populate the stack of navigation widgets.
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 # TODO: not yet implemented
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 def __populateHelpSelector(self):
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Private method to populate the help selection combo box.
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 # TODO: not yet implemented
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 def searchQtHelp(self, searchExpression):
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 Public method to search for a given search expression.
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 @param searchExpression expression to search for
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 @type str
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 # TODO: not yet implemented
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 def activate(self, searchWord=None):
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 Public method to activate the widget and search for a given word.
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 @param searchWord word to search for (defaults to None)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 @type str (optional)
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 # TODO: not yet implemented
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 if searchWord:
85a83e4e7f18 Started implementing the embedded help viewer widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 self.searchQtHelp(searchWord)

eric ide

mercurial