Mon, 17 Sep 2018 19:25:49 +0200
CodeDocumentationViewer: chanegd code to always show the HTML based documentation viewer, if QtWebEngine or QtWebKit is available.
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 | |
6048
82ad8ec9548c
Updated copyright for 2018.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5987
diff
changeset
|
3 | # Copyright (c) 2017 - 2018 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 | |
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
|
11 | from __future__ import unicode_literals |
5924
85e126ab4ca5
Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5923
diff
changeset
|
12 | try: |
85e126ab4ca5
Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5923
diff
changeset
|
13 | basestring # __IGNORE_WARNING__ |
85e126ab4ca5
Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5923
diff
changeset
|
14 | except NameError: |
85e126ab4ca5
Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5923
diff
changeset
|
15 | basestring = str |
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
|
16 | |
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
|
17 | from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QTimer |
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
|
18 | from PyQt5.QtGui import QCursor |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
19 | from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, \ |
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
|
20 | QComboBox, QSizePolicy, QLineEdit, QTextEdit, QToolTip |
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
|
21 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
22 | from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget |
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
|
23 | |
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
|
24 | 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
|
25 | |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
26 | from .CodeDocumentationViewerTemplate import \ |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
27 | prepareDocumentationViewerHtmlDocument, \ |
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
|
28 | prepareDocumentationViewerHtmlDocWarningDocument, \ |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
29 | prepareDocumentationViewerHtmlWarningDocument |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
30 | |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
31 | from .data import codeDocumentationViewer_rc # __IGNORE_WARNING__ |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
32 | |
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
|
33 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
34 | class PlainTextDocumentationViewer(QWidget): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
35 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
36 | Class implementing the plain text documentation viewer. |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
37 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
38 | 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
|
39 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
40 | Constructor |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
41 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
42 | @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
|
43 | @type QWidget |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
44 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
45 | super(PlainTextDocumentationViewer, self).__init__(parent) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
46 | self.setObjectName("PlainTextDocumentationViewer") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
47 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
48 | self.__verticalLayout = QVBoxLayout(self) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
49 | self.__verticalLayout.setObjectName("verticalLayout") |
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
|
50 | self.__verticalLayout.setContentsMargins(0, 0, 0, 0) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
51 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
52 | self.__contents = QTextEdit(self) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
53 | self.__contents.setTabChangesFocus(True) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
54 | self.__contents.setReadOnly(True) |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
55 | self.__contents.setLineWrapMode(QTextEdit.NoWrap) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
56 | self.__contents.setObjectName("contents") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
57 | self.__verticalLayout.addWidget(self.__contents) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
58 | |
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
|
59 | self.__searchWidget = E5TextEditSearchWidget(self, False) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
60 | self.__searchWidget.setFocusPolicy(Qt.WheelFocus) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
61 | self.__searchWidget.setObjectName("searchWidget") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
62 | self.__verticalLayout.addWidget(self.__searchWidget) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
63 | |
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
|
64 | self.__searchWidget.attachTextEdit(self.__contents, "QTextEdit") |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
65 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
66 | self.preferencesChanged() |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
67 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
68 | def clear(self): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
69 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
70 | Public method to clear the contents. |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
71 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
72 | self.__contents.clear() |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
73 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
74 | def setText(self, text): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
75 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
76 | Public method to set the text to be shown. |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
77 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
78 | @param text text to be shown |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
79 | @type str |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
80 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
81 | self.__contents.setPlainText(text) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
82 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
83 | def preferencesChanged(self): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
84 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
85 | Public slot to handle a change of preferences. |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
86 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
87 | font = Preferences.getEditorOtherFonts("MonospacedFont") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
88 | self.__contents.setFontFamily(font.family()) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
89 | self.__contents.setFontPointSize(font.pointSize()) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
90 | |
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 | |
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
|
92 | class WebViewDocumentationViewer(QWidget): |
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
|
93 | """ |
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
|
94 | Class implementing the rich text documentation viewer. |
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 | """ |
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
|
96 | def __init__(self, parent=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
|
97 | """ |
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 | Constructor |
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 | |
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 | @param parent reference to the parent 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
|
101 | @type QWidget |
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 | """ |
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
|
103 | super(WebViewDocumentationViewer, self).__init__(parent) |
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
|
104 | self.setObjectName("WebViewDocumentationViewer") |
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
|
105 | |
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
|
106 | 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
|
107 | 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
|
108 | 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
|
109 | |
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
|
110 | try: |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
111 | from PyQt5.QtWebEngineWidgets import QWebEngineView, \ |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
112 | QWebEngineSettings |
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
|
113 | 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
|
114 | self.__contents.page().linkHovered.connect(self.__showLink) |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
115 | try: |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
116 | self.__contents.settings().setAttribute( |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
117 | QWebEngineSettings.FocusOnNavigationEnabled, False) |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
118 | except AttributeError: |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
119 | # pre Qt 5.8 |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
120 | pass |
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
|
121 | self.__usesWebKit = False |
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 | except ImportError: |
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 | from PyQt5.QtWebKitWidgets import QWebPage, QWebView |
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 | self.__contents = QWebView(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
|
125 | self.__contents.page().setLinkDelegationPolicy( |
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 | QWebPage.DelegateAllLinks) |
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 | self.__usesWebKit = True |
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 | sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) |
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 | 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
|
131 | 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
|
132 | 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
|
133 | 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
|
134 | self.__contents.setSizePolicy(sizePolicy) |
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.setContextMenuPolicy(Qt.NoContextMenu) |
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
|
136 | self.__contents.setUrl(QUrl("about:blank")) |
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 | 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
|
138 | |
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
|
139 | self.__searchWidget = E5TextEditSearchWidget(self, 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
|
140 | self.__searchWidget.setFocusPolicy(Qt.WheelFocus) |
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 | 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
|
142 | 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
|
143 | |
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
|
144 | self.__searchWidget.attachTextEdit( |
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
|
145 | 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
|
146 | "QWebView" if self.__usesWebKit else "QWebEngineView", |
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
|
147 | ) |
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
|
148 | |
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 | @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
|
150 | 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
|
151 | """ |
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
|
152 | 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
|
153 | |
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
|
154 | @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
|
155 | @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
|
156 | """ |
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 | 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
|
158 | |
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
|
159 | 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
|
160 | """ |
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 | 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
|
162 | |
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
|
163 | @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
|
164 | @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
|
165 | """ |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
166 | 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
|
167 | 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
|
168 | 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
|
169 | |
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
|
170 | 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
|
171 | """ |
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
|
172 | 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
|
173 | """ |
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
|
174 | self.__contents.setHtml("") |
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
|
175 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
176 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
177 | 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
|
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 | 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
|
180 | 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
|
181 | |
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
|
182 | @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
|
183 | 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
|
184 | @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
|
185 | """ |
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
|
186 | 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
|
187 | 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
|
188 | |
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
|
189 | 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
|
190 | """ |
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
|
191 | 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
|
192 | |
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
|
193 | @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
|
194 | @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
|
195 | """ |
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
|
196 | super(CodeDocumentationViewer, self).__init__(parent) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
197 | 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
|
198 | |
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
|
199 | 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
|
200 | |
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
|
201 | 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
|
202 | 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
|
203 | 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
|
204 | |
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
|
205 | 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
|
206 | 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
|
207 | |
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
|
208 | 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
|
209 | 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
|
210 | |
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
|
211 | 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
|
212 | 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
|
213 | 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
|
214 | 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
|
215 | self.__mostRecentlyUnregisteredProvider = None |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
216 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
217 | def __setupUi(self): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
218 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
219 | 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
|
220 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
221 | self.setObjectName("CodeDocumentationViewer") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
222 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
223 | self.verticalLayout = QVBoxLayout(self) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
224 | self.verticalLayout.setObjectName("verticalLayout") |
5915
4bdac859df60
Fixed a few issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5914
diff
changeset
|
225 | 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
|
226 | |
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
|
227 | # 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
|
228 | 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
|
229 | 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
|
230 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
231 | self.label = QLabel(self) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
232 | self.label.setObjectName("label") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
233 | self.label.setText(self.tr("Code Info Provider:")) |
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
|
234 | self.label.setAlignment(Qt.AlignRight | Qt.AlignVCenter) |
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
|
235 | 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
|
236 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
237 | self.providerComboBox = QComboBox(self) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
238 | sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
239 | sizePolicy.setHorizontalStretch(0) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
240 | sizePolicy.setVerticalStretch(0) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
241 | sizePolicy.setHeightForWidth( |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
242 | self.providerComboBox.sizePolicy().hasHeightForWidth()) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
243 | self.providerComboBox.setSizePolicy(sizePolicy) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
244 | self.providerComboBox.setSizeAdjustPolicy(QComboBox.AdjustToContents) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
245 | self.providerComboBox.setObjectName("providerComboBox") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
246 | self.providerComboBox.setToolTip( |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
247 | 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
|
248 | 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
|
249 | 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
|
250 | |
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
|
251 | # 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
|
252 | self.objectLineEdit = QLineEdit(self) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
253 | self.objectLineEdit.setReadOnly(True) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
254 | self.objectLineEdit.setObjectName("objectLineEdit") |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
255 | |
5962
a339eed93b19
Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5961
diff
changeset
|
256 | 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
|
257 | self.verticalLayout.addWidget(self.objectLineEdit) |
5962
a339eed93b19
Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5961
diff
changeset
|
258 | |
6372
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
259 | try: |
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
|
260 | # Rich Text (Web) Viewer |
6372
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
261 | self.__richTextViewer = WebViewDocumentationViewer(self) |
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
262 | self.__richTextViewer.setObjectName("__richTextViewer") |
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
263 | self.verticalLayout.addWidget(self.__richTextViewer) |
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
|
264 | |
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
|
265 | self.__plainTextViewer = None |
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
|
266 | |
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
|
267 | # backward compatibility for plug-ins before 2018-09-17 |
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
|
268 | Preferences.setDocuViewer("ShowInfoAsRichText", True) |
6372
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
269 | except ImportError: |
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
270 | # neither QtWebEngineWidgets nor QtWebKitWidgets is available |
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
271 | self.__richTextViewer = None |
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
|
272 | |
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
|
273 | # Plain Text Viewer |
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
|
274 | self.__plainTextViewer = PlainTextDocumentationViewer(self) |
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
|
275 | self.__plainTextViewer.setObjectName("__plainTextViewer") |
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
|
276 | self.verticalLayout.addWidget(self.__plainTextViewer) |
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
|
277 | |
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
|
278 | # backward compatibility for plug-ins before 2018-09-17 |
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
|
279 | Preferences.setDocuViewer("ShowInfoAsRichText", 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
|
280 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
281 | 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
|
282 | 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
|
283 | |
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
|
284 | 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
|
285 | """ |
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
|
286 | 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
|
287 | """ |
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
|
288 | 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
|
289 | 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
|
290 | 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
|
291 | 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
|
292 | 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
|
293 | index = 0 |
5908
4d08fb83a844
Some fixes in the new code info viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
294 | 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
|
295 | self.providerComboBox.setCurrentIndex(index) |
5908
4d08fb83a844
Some fixes in the new code info viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
296 | self.__selectedProvider = provider |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
297 | if index == 0: |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
298 | 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
|
299 | |
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
|
300 | 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
|
301 | 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
|
302 | """ |
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 | 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
|
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 | @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
|
306 | @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
|
307 | @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
|
308 | @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
|
309 | @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
|
310 | @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
|
311 | @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
|
312 | 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
|
313 | @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
|
314 | @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
|
315 | 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
|
316 | """ |
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
|
317 | 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
|
318 | 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
|
319 | "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
|
320 | |
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
|
321 | 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
|
322 | 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
|
323 | |
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
|
324 | 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
|
325 | |
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 | if self.__unregisterTimer.isActive(): |
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
|
327 | if providerName == self.__mostRecentlyUnregisteredProvider: |
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
|
328 | # this is assumed to be a plug-in reload |
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
|
329 | self.__unregisterTimer.stop() |
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
|
330 | 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
|
331 | 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
|
332 | |
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
|
333 | 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
|
334 | """ |
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
|
335 | 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
|
336 | |
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
|
337 | @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
|
338 | @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
|
339 | """ |
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
|
340 | 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
|
341 | 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
|
342 | 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
|
343 | |
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
|
344 | # 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
|
345 | # 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
|
346 | 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
|
347 | 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
|
348 | |
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
|
349 | 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
|
350 | 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
|
351 | 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
|
352 | |
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
|
353 | 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
|
354 | |
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
|
355 | @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
|
356 | 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
|
357 | """ |
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
|
358 | 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
|
359 | """ |
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
|
360 | 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
|
361 | |
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
|
362 | 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
|
363 | """ |
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
|
364 | 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
|
365 | 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
|
366 | |
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
|
367 | @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
|
368 | @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
|
369 | @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
|
370 | @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
|
371 | """ |
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
|
372 | 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
|
373 | |
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
|
374 | 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
|
375 | 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
|
376 | |
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
|
377 | 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
|
378 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
379 | def getProviders(self): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
380 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
381 | 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
|
382 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
383 | @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
|
384 | @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
|
385 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
386 | providers = [] |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
387 | 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
|
388 | 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
|
389 | 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
|
390 | providers.append((provider, text)) |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
391 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
392 | return providers |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
393 | |
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
|
394 | 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
|
395 | """ |
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
|
396 | 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
|
397 | |
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 | @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
|
399 | @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
|
400 | """ |
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
|
401 | 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
|
402 | 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
|
403 | 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
|
404 | # 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
|
405 | 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
|
406 | 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
|
407 | |
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
|
408 | if self.__selectedProvider != self.__disabledProvider: |
6372
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
409 | if self.__richTextViewer: |
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
410 | self.__richTextViewer.clear() |
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
|
411 | else: |
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
|
412 | self.__plainTextViewer.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
|
413 | 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
|
414 | |
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
|
415 | 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
|
416 | 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
|
417 | """ |
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
|
418 | 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
|
419 | |
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
|
420 | 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
|
421 | (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
|
422 | |
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
|
423 | 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
|
424 | 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
|
425 | 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
|
426 | 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
|
427 | 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
|
428 | 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
|
429 | |
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
|
430 | @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
|
431 | @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
|
432 | @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
|
433 | @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
|
434 | @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
|
435 | @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
|
436 | """ |
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
|
437 | 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
|
438 | |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
439 | if not isWarning and not isDocWarning: |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
440 | 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
|
441 | |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
442 | if not documentationInfo: |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
443 | if self.__selectedProvider == self.__disabledProvider: |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
444 | self.__showDisabledMessage() |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
445 | else: |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
446 | self.documentationReady(self.tr("No documentation available"), |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
447 | isDocWarning=True) |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
448 | else: |
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
|
449 | if self.__richTextViewer: |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
450 | if isWarning: |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
451 | html = prepareDocumentationViewerHtmlWarningDocument( |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
452 | documentationInfo) |
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
|
453 | elif isDocWarning: |
d0de2b378b24
Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5915
diff
changeset
|
454 | html = prepareDocumentationViewerHtmlDocWarningDocument( |
d0de2b378b24
Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5915
diff
changeset
|
455 | documentationInfo) |
5914
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
456 | elif isinstance(documentationInfo, dict): |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
457 | html = prepareDocumentationViewerHtmlDocument( |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
458 | documentationInfo) |
e44c04a89dbc
Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5913
diff
changeset
|
459 | else: |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
460 | html = documentationInfo |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
461 | self.__setHtml(html) |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
462 | else: |
5924
85e126ab4ca5
Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5923
diff
changeset
|
463 | if isinstance(documentationInfo, basestring): |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
464 | fullText = documentationInfo |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
465 | elif isinstance(documentationInfo, dict): |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
466 | name = documentationInfo["name"] |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
467 | if name: |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
468 | title = "".join([name, "\n", |
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
469 | "=" * len(name), "\n\n"]) |
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
|
470 | |
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
|
471 | if "argspec" in documentationInfo and \ |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
472 | documentationInfo["argspec"]: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
473 | definition = self.tr("Definition: {0}{1}\n")\ |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
474 | .format(name, documentationInfo["argspec"]) |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
475 | elif name: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
476 | definition = self.tr("Definition: {0}\n")\ |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
477 | .format(name) |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
478 | else: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
479 | definition = "" |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
480 | |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
481 | if "typ" in documentationInfo and \ |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
482 | documentationInfo["typ"]: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
483 | typeInfo = self.tr("Type: {0}\n").format( |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
484 | documentationInfo["typ"]) |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
485 | else: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
486 | typeInfo = "" |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
487 | |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
488 | if "note" in documentationInfo and \ |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
489 | documentationInfo["note"]: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
490 | note = self.tr("Note: {0}\n").format( |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
491 | documentationInfo["note"]) |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
492 | else: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
493 | note = "" |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
494 | |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
495 | header = "".join([title, definition, typeInfo, note]) |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
496 | else: |
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
|
497 | header = "" |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
498 | |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
499 | if "docstring" not in documentationInfo or \ |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
500 | not documentationInfo["docstring"]: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
501 | docString = self.tr( |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
502 | "No further documentation available") |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
503 | else: |
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
|
504 | if header: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
505 | docString = "\n----\n\n{0}".format( |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
506 | documentationInfo["docstring"]) |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
507 | else: |
2a5232311a65
Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5959
diff
changeset
|
508 | docString = documentationInfo["docstring"] |
5922
4ee909600092
Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5919
diff
changeset
|
509 | |
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
|
510 | fullText = "".join([header, docString]) |
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
|
511 | |
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
|
512 | self.__plainTextViewer.setText(fullText) |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
513 | |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
514 | def __showDisabledMessage(self): |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
515 | """ |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
516 | 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
|
517 | """ |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
518 | if len(self.__providers) == 0: |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
519 | self.documentationReady( |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
520 | 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
|
521 | " registered. This function has been disabled."), |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
522 | isWarning=True) |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
523 | else: |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
524 | self.documentationReady( |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
525 | 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
|
526 | isWarning=True) |
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
527 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
528 | def __setHtml(self, html): |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
529 | """ |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
530 | Private slot to set the prepared HTML text. |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
531 | |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
532 | @param html prepared HTML text |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
533 | @type str |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
534 | """ |
6372
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
535 | if self.__richTextViewer: |
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
536 | self.__richTextViewer.setHtml(html) |
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
|
537 | |
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
|
538 | @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
|
539 | 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
|
540 | """ |
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
|
541 | 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
|
542 | |
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
|
543 | @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
|
544 | @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
|
545 | """ |
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
|
546 | if not self.__shuttingDown and not self.__startingUp: |
6372
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
547 | if self.__richTextViewer: |
ae44c83fccab
CodeDocumentationViewer, PreviewerHTML: prepared the code for the non-availability of either QtWebEngine or QtWebKit (e.g. in the Win-32 PyQt5 wheels as of 5.11).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6266
diff
changeset
|
548 | self.__richTextViewer.clear() |
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
|
549 | else: |
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
|
550 | self.__plainTextViewer.clear() |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
551 | self.objectLineEdit.clear() |
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
552 | |
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
|
553 | 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
|
554 | if provider == self.__disabledProvider: |
5925
0174aece0923
Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5924
diff
changeset
|
555 | 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
|
556 | 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
|
557 | 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
|
558 | |
5912
b6643d36dddd
Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
559 | 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
|
560 | 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
|
561 | |
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
|
562 | 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
|
563 | """ |
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
|
564 | 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
|
565 | """ |
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
|
566 | 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
|
567 | 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
|
568 | |
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
|
569 | 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
|
570 | """ |
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
|
571 | 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
|
572 | """ |
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
|
573 | 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
|
574 | 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
|
575 | |
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
|
576 | 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
|
577 | """ |
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
|
578 | 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
|
579 | |
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
|
580 | @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
|
581 | @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
|
582 | """ |
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
|
583 | 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
|
584 | 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
|
585 | 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
|
586 | 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
|
587 | self.providerComboBox.setCurrentIndex(index) |