Sun, 16 May 2021 20:07:24 +0200
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7717
diff
changeset
|
3 | # Copyright (c) 2017 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a widget to show some source code information provided by |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | plug-ins. |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | |
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
|
11 | from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QTimer |
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
|
12 | from PyQt6.QtGui import QCursor |
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 ( |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7236
diff
changeset
|
14 | QWidget, QVBoxLayout, QHBoxLayout, QLabel, QComboBox, QSizePolicy, |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7236
diff
changeset
|
15 | QLineEdit, QTextBrowser, QToolTip |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7236
diff
changeset
|
16 | ) |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
8268
6b8128e0c9d1
Modernized some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
18 | from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget, E5TextEditType |
7526
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
19 | from E5Gui.E5Application import e5App |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import Preferences |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7236
diff
changeset
|
23 | from .CodeDocumentationViewerTemplate import ( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7236
diff
changeset
|
24 | prepareDocumentationViewerHtmlDocument, |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7236
diff
changeset
|
25 | prepareDocumentationViewerHtmlDocWarningDocument, |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
26 | prepareDocumentationViewerHtmlWarningDocument |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7236
diff
changeset
|
27 | ) |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
28 | |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
30 | class DocumentationViewerWidget(QWidget): |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
31 | """ |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
32 | Class implementing a rich text documentation viewer. |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
33 | """ |
7526
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
34 | EmpytDocument_Light = ( |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
35 | '''<!DOCTYPE html>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
36 | '''<html lang="EN">\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
37 | '''<head>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
38 | '''<style type="text/css">\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
39 | '''html {background-color: #ffffff;}\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
40 | '''body {background-color: #ffffff;\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
41 | ''' color: #000000;\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
42 | ''' margin: 0px 10px 10px 10px;\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
43 | '''}\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
44 | '''</style''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
45 | '''</head>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
46 | '''<body>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
47 | '''</body>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
48 | '''</html>''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
49 | ) |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
50 | EmpytDocument_Dark = ( |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
51 | '''<!DOCTYPE html>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
52 | '''<html lang="EN">\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
53 | '''<head>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
54 | '''<style type="text/css">\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
55 | '''html {background-color: #262626;}\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
56 | '''body {background-color: #262626;\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
57 | ''' color: #ffffff;\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
58 | ''' margin: 0px 10px 10px 10px;\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
59 | '''}\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
60 | '''</style''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
61 | '''</head>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
62 | '''<body>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
63 | '''</body>\n''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
64 | '''</html>''' |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
65 | ) |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
66 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
67 | def __init__(self, parent=None): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
68 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
69 | Constructor |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
70 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
71 | @param parent reference to the parent widget |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
72 | @type QWidget |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
73 | """ |
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
|
74 | super().__init__(parent) |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
75 | self.setObjectName("DocumentationViewerWidget") |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
76 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
77 | self.__verticalLayout = QVBoxLayout(self) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
78 | self.__verticalLayout.setObjectName("verticalLayout") |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
79 | self.__verticalLayout.setContentsMargins(0, 0, 0, 0) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
80 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
81 | try: |
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
|
82 | from PyQt6.QtWebEngineWidgets import ( |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7236
diff
changeset
|
83 | QWebEngineView, QWebEngineSettings |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7236
diff
changeset
|
84 | ) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
85 | self.__contents = QWebEngineView(self) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
86 | self.__contents.page().linkHovered.connect(self.__showLink) |
8243
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8227
diff
changeset
|
87 | self.__contents.settings().setAttribute( |
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8227
diff
changeset
|
88 | QWebEngineSettings.WebAttribute.FocusOnNavigationEnabled, |
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8227
diff
changeset
|
89 | False) |
8268
6b8128e0c9d1
Modernized some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
90 | self.__viewerType = E5TextEditType.QWEBENGINEVIEW |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
91 | except ImportError: |
7196
ab0a91b82b37
Removed support for QtWebKit and the old web rowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7192
diff
changeset
|
92 | self.__contents = QTextBrowser(self) |
ab0a91b82b37
Removed support for QtWebKit and the old web rowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7192
diff
changeset
|
93 | self.__contents.setOpenExternalLinks(True) |
8268
6b8128e0c9d1
Modernized some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
94 | self.__viewerType = E5TextEditType.QTEXTBROWSER |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
95 | |
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
|
96 | sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, |
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
|
97 | QSizePolicy.Policy.Expanding) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
98 | sizePolicy.setHorizontalStretch(0) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
99 | sizePolicy.setVerticalStretch(0) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
100 | sizePolicy.setHeightForWidth( |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
101 | self.__contents.sizePolicy().hasHeightForWidth()) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
102 | self.__contents.setSizePolicy(sizePolicy) |
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
|
103 | self.__contents.setContextMenuPolicy( |
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
|
104 | Qt.ContextMenuPolicy.NoContextMenu) |
8268
6b8128e0c9d1
Modernized some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
105 | if self.__viewerType != E5TextEditType.QTEXTBROWSER: |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
106 | self.__contents.setUrl(QUrl("about:blank")) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
107 | self.__verticalLayout.addWidget(self.__contents) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
108 | |
5959
4c716b02e10d
Changed the search widget used in the documentation viewer (and other places) to allow to save width but make it higher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5925
diff
changeset
|
109 | self.__searchWidget = E5TextEditSearchWidget(self, False) |
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
|
110 | self.__searchWidget.setFocusPolicy(Qt.FocusPolicy.WheelFocus) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
111 | self.__searchWidget.setObjectName("searchWidget") |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
112 | self.__verticalLayout.addWidget(self.__searchWidget) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
113 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
114 | self.__searchWidget.attachTextEdit( |
8268
6b8128e0c9d1
Modernized some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
115 | self.__contents, editType=self.__viewerType) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
116 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
117 | @pyqtSlot(str) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
118 | def __showLink(self, urlStr): |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
119 | """ |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
120 | Private slot to show the hovered link in a tooltip. |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
121 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
122 | @param urlStr hovered URL |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
123 | @type str |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
124 | """ |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
125 | QToolTip.showText(QCursor.pos(), urlStr, self.__contents) |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
126 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
127 | def setHtml(self, html): |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
128 | """ |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
129 | Public method to set the HTML text of the widget. |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
130 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
131 | @param html HTML text to be shown |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
132 | @type str |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
133 | """ |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
134 | self.__contents.setEnabled(False) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
135 | self.__contents.setHtml(html) |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
136 | self.__contents.setEnabled(True) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
137 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
138 | def clear(self): |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
139 | """ |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
140 | Public method to clear the shown contents. |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
141 | """ |
8268
6b8128e0c9d1
Modernized some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
142 | if self.__viewerType == E5TextEditType.QTEXTBROWSER: |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
143 | self.__contents.clear() |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
144 | else: |
7526
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
145 | if e5App().usesDarkPalette(): |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
146 | self.__contents.setHtml(self.EmpytDocument_Dark) |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
147 | else: |
92ef4bd9d2c5
CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
148 | self.__contents.setHtml(self.EmpytDocument_Light) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
149 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
150 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
151 | class CodeDocumentationViewer(QWidget): |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | Class implementing a widget to show some source code information provided |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | by plug-ins. |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
155 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
156 | @signal providerAdded() emitted to indicate the availability of a new |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
157 | provider |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
158 | @signal providerRemoved() emitted to indicate the removal of a provider |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | providerAdded = pyqtSignal() |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
161 | providerRemoved = pyqtSignal() |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | def __init__(self, parent=None): |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | Constructor |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | @param parent reference to the parent widget |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | @type QWidget |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | """ |
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
|
170 | super().__init__(parent) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
171 | self.__setupUi() |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
172 | |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | self.__ui = parent |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | self.__providers = {} |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | self.__selectedProvider = "" |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | self.__disabledProvider = "disabled" |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | self.__shuttingDown = False |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | self.__startingUp = True |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
182 | self.__lastDocumentation = None |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
183 | self.__requestingEditor = None |
6266
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
184 | |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
185 | self.__unregisterTimer = QTimer(self) |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
186 | self.__unregisterTimer.setInterval(30000) # 30 seconds |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
187 | self.__unregisterTimer.setSingleShot(True) |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
188 | self.__unregisterTimer.timeout.connect(self.__unregisterTimerTimeout) |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
189 | self.__mostRecentlyUnregisteredProvider = None |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
190 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
191 | def __setupUi(self): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
192 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
193 | Private method to generate the UI layout. |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
194 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
195 | self.setObjectName("CodeDocumentationViewer") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
196 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
197 | self.verticalLayout = QVBoxLayout(self) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
198 | self.verticalLayout.setObjectName("verticalLayout") |
5915
4bdac859df60
Fixed a few issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5914
diff
changeset
|
199 | self.verticalLayout.setContentsMargins(3, 3, 3, 3) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
200 | |
5959
4c716b02e10d
Changed the search widget used in the documentation viewer (and other places) to allow to save width but make it higher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5925
diff
changeset
|
201 | # top row 1 of widgets |
4c716b02e10d
Changed the search widget used in the documentation viewer (and other places) to allow to save width but make it higher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5925
diff
changeset
|
202 | self.horizontalLayout1 = QHBoxLayout() |
4c716b02e10d
Changed the search widget used in the documentation viewer (and other places) to allow to save width but make it higher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5925
diff
changeset
|
203 | self.horizontalLayout1.setObjectName("horizontalLayout1") |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
204 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
205 | self.label = QLabel(self) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
206 | self.label.setObjectName("label") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
207 | self.label.setText(self.tr("Code Info Provider:")) |
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
|
208 | self.label.setAlignment(Qt.AlignmentFlag.AlignRight | |
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
|
209 | Qt.AlignmentFlag.AlignVCenter) |
5959
4c716b02e10d
Changed the search widget used in the documentation viewer (and other places) to allow to save width but make it higher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5925
diff
changeset
|
210 | self.horizontalLayout1.addWidget(self.label) |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
211 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
212 | self.providerComboBox = QComboBox(self) |
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 | sizePolicy = QSizePolicy( |
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
|
214 | QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
215 | sizePolicy.setHorizontalStretch(0) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
216 | sizePolicy.setVerticalStretch(0) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
217 | sizePolicy.setHeightForWidth( |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
218 | self.providerComboBox.sizePolicy().hasHeightForWidth()) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
219 | self.providerComboBox.setSizePolicy(sizePolicy) |
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
|
220 | self.providerComboBox.setSizeAdjustPolicy( |
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
|
221 | QComboBox.SizeAdjustPolicy.AdjustToContents) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
222 | self.providerComboBox.setObjectName("providerComboBox") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
223 | self.providerComboBox.setToolTip( |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
224 | self.tr("Select the code info provider")) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
225 | self.providerComboBox.addItem(self.tr("<disabled>"), "disabled") |
5959
4c716b02e10d
Changed the search widget used in the documentation viewer (and other places) to allow to save width but make it higher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5925
diff
changeset
|
226 | self.horizontalLayout1.addWidget(self.providerComboBox) |
4c716b02e10d
Changed the search widget used in the documentation viewer (and other places) to allow to save width but make it higher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5925
diff
changeset
|
227 | |
4c716b02e10d
Changed the search widget used in the documentation viewer (and other places) to allow to save width but make it higher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5925
diff
changeset
|
228 | # top row 2 of widgets |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
229 | self.objectLineEdit = QLineEdit(self) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
230 | self.objectLineEdit.setReadOnly(True) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
231 | self.objectLineEdit.setObjectName("objectLineEdit") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
232 | |
5962
a339eed93b19
Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5961
diff
changeset
|
233 | self.verticalLayout.addLayout(self.horizontalLayout1) |
6505
470d878cbe9f
CodeDocumentationViewer: chanegd code to always show the HTML based documentation viewer, if QtWebEngine or QtWebKit is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6475
diff
changeset
|
234 | self.verticalLayout.addWidget(self.objectLineEdit) |
5962
a339eed93b19
Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5961
diff
changeset
|
235 | |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
236 | # Rich Text (Web) Viewer |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
237 | self.__viewerWidget = DocumentationViewerWidget(self) |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
238 | self.__viewerWidget.setObjectName("__viewerWidget") |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
239 | self.verticalLayout.addWidget(self.__viewerWidget) |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
240 | |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
241 | # backward compatibility for plug-ins before 2018-09-17 |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
242 | Preferences.setDocuViewer("ShowInfoAsRichText", True) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
243 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
244 | self.providerComboBox.currentIndexChanged[int].connect( |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
245 | self.on_providerComboBox_currentIndexChanged) |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | def finalizeSetup(self): |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | Public method to finalize the setup of the documentation viewer. |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | self.__startingUp = False |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
252 | provider = Preferences.getDocuViewer("Provider") |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | if provider in self.__providers: |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | index = self.providerComboBox.findData(provider) |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | else: |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | index = 0 |
5908
4d08fb83a844
Some fixes in the new code info viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
257 | provider = self.__disabledProvider |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | self.providerComboBox.setCurrentIndex(index) |
5908
4d08fb83a844
Some fixes in the new code info viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
259 | self.__selectedProvider = provider |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
260 | if index == 0: |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
261 | self.__showDisabledMessage() |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | |
5911
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
263 | def registerProvider(self, providerName, providerDisplay, provider, |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
264 | supported): |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | Public method register a source docu provider. |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | @param providerName name of the provider (must be unique) |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | @type str |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | @param providerDisplay visible name of the provider |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | @type str |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | @param provider function to be called to determine source docu |
5911
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
273 | @type function(editor) |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
274 | @param supported function to be called to determine, if a language is |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
275 | supported |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
276 | @type function(language) |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | @exception KeyError raised if a provider with the given name was |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | already registered |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | if providerName in self.__providers: |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | raise KeyError( |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | "Provider '{0}' already registered.".format(providerName)) |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | |
5911
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
284 | self.__providers[providerName] = (provider, supported) |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | self.providerComboBox.addItem(providerDisplay, providerName) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
286 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
287 | self.providerAdded.emit() |
6266
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
288 | |
8227
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
289 | if ( |
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
290 | self.__unregisterTimer.isActive() and |
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
291 | providerName == self.__mostRecentlyUnregisteredProvider |
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
292 | ): |
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
293 | # this is assumed to be a plug-in reload |
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
294 | self.__unregisterTimer.stop() |
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
295 | self.__mostRecentlyUnregisteredProvider = None |
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
296 | self.__selectProvider(providerName) |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | def unregisterProvider(self, providerName): |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | Public method register a source docu provider. |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | @param providerName name of the provider (must be unique) |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | @type str |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | if providerName in self.__providers: |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | if providerName == self.__selectedProvider: |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | self.providerComboBox.setCurrentIndex(0) |
6266
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
308 | |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
309 | # in case this is just a temporary unregistration (< 30s) |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
310 | # e.g. when the plug-in is re-installed or updated |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
311 | self.__mostRecentlyUnregisteredProvider = providerName |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
312 | self.__unregisterTimer.start() |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | del self.__providers[providerName] |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | index = self.providerComboBox.findData(providerName) |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | self.providerComboBox.removeItem(index) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
317 | |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
318 | self.providerRemoved.emit() |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | |
6266
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
320 | @pyqtSlot() |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
321 | def __unregisterTimerTimeout(self): |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
322 | """ |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
323 | Private slot handling the timeout signal of the unregister timer. |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
324 | """ |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
325 | self.__mostRecentlyUnregisteredProvider = None |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
326 | |
5911
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
327 | def isSupportedLanguage(self, language): |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
328 | """ |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
329 | Public method to check, if the given language is supported by the |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
330 | selected provider. |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
331 | |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
332 | @param language editor programming language to check |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
333 | @type str |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
334 | @return flag indicating the support status |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
335 | @rtype bool |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
336 | """ |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
337 | supported = False |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
338 | |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
339 | if self.__selectedProvider != self.__disabledProvider: |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
340 | supported = self.__providers[self.__selectedProvider][1](language) |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
341 | |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
342 | return supported |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
343 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
344 | def getProviders(self): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
345 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
346 | Public method to get a list of providers and their visible strings. |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
347 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
348 | @return list containing the providers and their visible strings |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
349 | @rtype list of tuple of (str,str) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
350 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
351 | providers = [] |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
352 | for index in range(1, self.providerComboBox.count()): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
353 | provider = self.providerComboBox.itemData(index) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
354 | text = self.providerComboBox.itemText(index) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
355 | providers.append((provider, text)) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
356 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
357 | return providers |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
358 | |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | def showInfo(self, editor): |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | Public method to request code documentation data from a provider. |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | @param editor reference to the editor to request code docu for |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | @type Editor |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | """ |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
366 | line, index = editor.getCursorPosition() |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
367 | word = editor.getWord(line, index) |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
368 | if not word: |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
369 | # try again one index before |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
370 | word = editor.getWord(line, index - 1) |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
371 | self.objectLineEdit.setText(word) |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
372 | |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | if self.__selectedProvider != self.__disabledProvider: |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
374 | self.__viewerWidget.clear() |
5911
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5908
diff
changeset
|
375 | self.__providers[self.__selectedProvider][0](editor) |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | |
5919
d0de2b378b24
Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5915
diff
changeset
|
377 | def documentationReady(self, documentationInfo, isWarning=False, |
d0de2b378b24
Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5915
diff
changeset
|
378 | isDocWarning=False): |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | Public method to provide the documentation info to the viewer. |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | |
5961
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
382 | If documentationInfo is a dictionary, it should contain these |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
383 | (optional) keys and data: |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | name: the name of the inspected object |
5961
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
386 | argspec: its arguments specification |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | note: A phrase describing the type of object (function or method) and |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | the module it belongs to. |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | docstring: its documentation string |
5961
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
390 | typ: its type information |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | @param documentationInfo dictionary containing the source docu data |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | @type dict or str |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
394 | @param isWarning flag indicating a warning page |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
395 | @type bool |
5919
d0de2b378b24
Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5915
diff
changeset
|
396 | @param isDocWarning flag indicating a documentation warning page |
d0de2b378b24
Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5915
diff
changeset
|
397 | @type bool |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | self.__ui.activateCodeDocumentationViewer(switchFocus=False) |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
401 | if not isWarning and not isDocWarning: |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
402 | self.__lastDocumentation = documentationInfo |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
403 | |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
404 | if not documentationInfo: |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
405 | if self.__selectedProvider == self.__disabledProvider: |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
406 | self.__showDisabledMessage() |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
407 | else: |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
408 | self.documentationReady(self.tr("No documentation available"), |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
409 | isDocWarning=True) |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
410 | else: |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
411 | if isWarning: |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
412 | html = prepareDocumentationViewerHtmlWarningDocument( |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
413 | documentationInfo) |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
414 | elif isDocWarning: |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
415 | html = prepareDocumentationViewerHtmlDocWarningDocument( |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
416 | documentationInfo) |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
417 | elif isinstance(documentationInfo, dict): |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
418 | html = prepareDocumentationViewerHtmlDocument( |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
419 | documentationInfo) |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
420 | else: |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
421 | html = documentationInfo |
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
422 | self.__viewerWidget.setHtml(html) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
423 | |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
424 | def __showDisabledMessage(self): |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
425 | """ |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
426 | Private method to show a message giving the reason for being disabled. |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
427 | """ |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
428 | if len(self.__providers) == 0: |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
429 | self.documentationReady( |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
430 | self.tr("No source code documentation provider has been" |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
431 | " registered. This function has been disabled."), |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
432 | isWarning=True) |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
433 | else: |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
434 | self.documentationReady( |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
435 | self.tr("This function has been disabled."), |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
436 | isWarning=True) |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
437 | |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
438 | @pyqtSlot(int) |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
439 | def on_providerComboBox_currentIndexChanged(self, index): |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | Private slot to handle the selection of a provider. |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | @param index index of the selected provider |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
444 | @type int |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | if not self.__shuttingDown and not self.__startingUp: |
6506
ff6172ce89a9
CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6505
diff
changeset
|
447 | self.__viewerWidget.clear() |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
448 | self.objectLineEdit.clear() |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
449 | |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | provider = self.providerComboBox.itemData(index) |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | if provider == self.__disabledProvider: |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
452 | self.__showDisabledMessage() |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
453 | else: |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
454 | self.__lastDocumentation = None |
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5912
diff
changeset
|
455 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
456 | Preferences.setDocuViewer("Provider", provider) |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | self.__selectedProvider = provider |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | def shutdown(self): |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | Public method to perform shutdown actions. |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
462 | """ |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
463 | self.__shuttingDown = True |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
464 | Preferences.setDocuViewer("Provider", self.__selectedProvider) |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
465 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
466 | def preferencesChanged(self): |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
467 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
468 | Public slot to handle a change of preferences. |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
469 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
470 | provider = Preferences.getDocuViewer("Provider") |
6266
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
471 | self.__selectProvider(provider) |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
472 | |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
473 | def __selectProvider(self, provider): |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
474 | """ |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
475 | Private method to select a provider programmatically. |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
476 | |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
477 | @param provider name of the provider to be selected |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
478 | @type str |
c7bc0e516cd6
CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
479 | """ |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
480 | if provider != self.__selectedProvider: |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
481 | index = self.providerComboBox.findData(provider) |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
482 | if index < 0: |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
483 | index = 0 |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
484 | self.providerComboBox.setCurrentIndex(index) |