13 from PyQt5.QtWidgets import ( |
13 from PyQt5.QtWidgets import ( |
14 QWidget, QVBoxLayout, QHBoxLayout, QLabel, QComboBox, QSizePolicy, |
14 QWidget, QVBoxLayout, QHBoxLayout, QLabel, QComboBox, QSizePolicy, |
15 QLineEdit, QTextBrowser, QToolTip |
15 QLineEdit, QTextBrowser, QToolTip |
16 ) |
16 ) |
17 |
17 |
18 from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget |
18 from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget, E5TextEditType |
19 from E5Gui.E5Application import e5App |
19 from E5Gui.E5Application import e5App |
20 |
20 |
21 import Preferences |
21 import Preferences |
22 |
22 |
23 from .CodeDocumentationViewerTemplate import ( |
23 from .CodeDocumentationViewerTemplate import ( |
85 self.__contents = QWebEngineView(self) |
85 self.__contents = QWebEngineView(self) |
86 self.__contents.page().linkHovered.connect(self.__showLink) |
86 self.__contents.page().linkHovered.connect(self.__showLink) |
87 self.__contents.settings().setAttribute( |
87 self.__contents.settings().setAttribute( |
88 QWebEngineSettings.WebAttribute.FocusOnNavigationEnabled, |
88 QWebEngineSettings.WebAttribute.FocusOnNavigationEnabled, |
89 False) |
89 False) |
90 self.__viewerType = "QWebEngineView" |
90 self.__viewerType = E5TextEditType.QWEBENGINEVIEW |
91 except ImportError: |
91 except ImportError: |
92 self.__contents = QTextBrowser(self) |
92 self.__contents = QTextBrowser(self) |
93 self.__contents.setOpenExternalLinks(True) |
93 self.__contents.setOpenExternalLinks(True) |
94 self.__viewerType = "QTextEdit" |
94 self.__viewerType = E5TextEditType.QTEXTBROWSER |
95 |
95 |
96 sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, |
96 sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, |
97 QSizePolicy.Policy.Expanding) |
97 QSizePolicy.Policy.Expanding) |
98 sizePolicy.setHorizontalStretch(0) |
98 sizePolicy.setHorizontalStretch(0) |
99 sizePolicy.setVerticalStretch(0) |
99 sizePolicy.setVerticalStretch(0) |
100 sizePolicy.setHeightForWidth( |
100 sizePolicy.setHeightForWidth( |
101 self.__contents.sizePolicy().hasHeightForWidth()) |
101 self.__contents.sizePolicy().hasHeightForWidth()) |
102 self.__contents.setSizePolicy(sizePolicy) |
102 self.__contents.setSizePolicy(sizePolicy) |
103 self.__contents.setContextMenuPolicy( |
103 self.__contents.setContextMenuPolicy( |
104 Qt.ContextMenuPolicy.NoContextMenu) |
104 Qt.ContextMenuPolicy.NoContextMenu) |
105 if self.__viewerType != "QTextEdit": |
105 if self.__viewerType != E5TextEditType.QTEXTBROWSER: |
106 self.__contents.setUrl(QUrl("about:blank")) |
106 self.__contents.setUrl(QUrl("about:blank")) |
107 self.__verticalLayout.addWidget(self.__contents) |
107 self.__verticalLayout.addWidget(self.__contents) |
108 |
108 |
109 self.__searchWidget = E5TextEditSearchWidget(self, False) |
109 self.__searchWidget = E5TextEditSearchWidget(self, False) |
110 self.__searchWidget.setFocusPolicy(Qt.FocusPolicy.WheelFocus) |
110 self.__searchWidget.setFocusPolicy(Qt.FocusPolicy.WheelFocus) |
111 self.__searchWidget.setObjectName("searchWidget") |
111 self.__searchWidget.setObjectName("searchWidget") |
112 self.__verticalLayout.addWidget(self.__searchWidget) |
112 self.__verticalLayout.addWidget(self.__searchWidget) |
113 |
113 |
114 self.__searchWidget.attachTextEdit( |
114 self.__searchWidget.attachTextEdit( |
115 self.__contents, self.__viewerType) |
115 self.__contents, editType=self.__viewerType) |
116 |
116 |
117 @pyqtSlot(str) |
117 @pyqtSlot(str) |
118 def __showLink(self, urlStr): |
118 def __showLink(self, urlStr): |
119 """ |
119 """ |
120 Private slot to show the hovered link in a tooltip. |
120 Private slot to show the hovered link in a tooltip. |