eric6/UI/CodeDocumentationViewer.py

Sat, 26 Sep 2020 10:58:18 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Sep 2020 10:58:18 +0200
changeset 7717
f32d7965a17e
parent 7526
92ef4bd9d2c5
child 7923
91e843545d9a
permissions
-rw-r--r--

Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).

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
7360
9190402e4505 Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7264
diff changeset
3 # Copyright (c) 2017 - 2020 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
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
11 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
12 from PyQt5.QtGui import QCursor
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
13 from PyQt5.QtWidgets import (
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
14 QWidget, QVBoxLayout, QHBoxLayout, QLabel, QComboBox, QSizePolicy,
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
15 QLineEdit, QTextBrowser, QToolTip
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
16 )
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
18 from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget
7526
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
19 from E5Gui.E5Application import e5App
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 import Preferences
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
23 from .CodeDocumentationViewerTemplate import (
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
24 prepareDocumentationViewerHtmlDocument,
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
25 prepareDocumentationViewerHtmlDocWarningDocument,
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
26 prepareDocumentationViewerHtmlWarningDocument
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
27 )
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
28
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
30 class DocumentationViewerWidget(QWidget):
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
31 """
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
32 Class implementing a rich text documentation viewer.
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
33 """
7526
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
34 EmpytDocument_Light = (
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
35 '''<!DOCTYPE html>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
36 '''<html lang="EN">\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
37 '''<head>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
38 '''<style type="text/css">\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
39 '''html {background-color: #ffffff;}\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
40 '''body {background-color: #ffffff;\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
41 ''' color: #000000;\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
42 ''' margin: 0px 10px 10px 10px;\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
43 '''}\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
44 '''</style'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
45 '''</head>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
46 '''<body>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
47 '''</body>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
48 '''</html>'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
49 )
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
50 EmpytDocument_Dark = (
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
51 '''<!DOCTYPE html>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
52 '''<html lang="EN">\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
53 '''<head>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
54 '''<style type="text/css">\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
55 '''html {background-color: #262626;}\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
56 '''body {background-color: #262626;\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
57 ''' color: #ffffff;\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
58 ''' margin: 0px 10px 10px 10px;\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
59 '''}\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
60 '''</style'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
61 '''</head>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
62 '''<body>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
63 '''</body>\n'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
64 '''</html>'''
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
65 )
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
66
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
67 def __init__(self, parent=None):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
68 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
69 Constructor
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
70
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
71 @param parent reference to the parent widget
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
72 @type QWidget
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
73 """
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
74 super(DocumentationViewerWidget, self).__init__(parent)
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
75 self.setObjectName("DocumentationViewerWidget")
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
76
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
77 self.__verticalLayout = QVBoxLayout(self)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
78 self.__verticalLayout.setObjectName("verticalLayout")
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
79 self.__verticalLayout.setContentsMargins(0, 0, 0, 0)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
80
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
81 try:
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
82 from PyQt5.QtWebEngineWidgets import (
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
83 QWebEngineView, QWebEngineSettings
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7236
diff changeset
84 )
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
85 self.__contents = QWebEngineView(self)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
86 self.__contents.page().linkHovered.connect(self.__showLink)
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
87 try:
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
88 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
89 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
90 except AttributeError:
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
91 # 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
92 pass
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
93 self.__viewerType = "QWebEngineView"
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
94 except ImportError:
7196
ab0a91b82b37 Removed support for QtWebKit and the old web rowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
95 self.__contents = QTextBrowser(self)
ab0a91b82b37 Removed support for QtWebKit and the old web rowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
96 self.__contents.setOpenExternalLinks(True)
ab0a91b82b37 Removed support for QtWebKit and the old web rowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
97 self.__viewerType = "QTextEdit"
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
98
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
99 sizePolicy = 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
100 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
101 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
102 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
103 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
104 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
105 self.__contents.setContextMenuPolicy(Qt.NoContextMenu)
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
106 if self.__viewerType != "QTextEdit":
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
107 self.__contents.setUrl(QUrl("about:blank"))
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
108 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
109
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
110 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
111 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
112 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
113 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
114
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
115 self.__searchWidget.attachTextEdit(
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
116 self.__contents, self.__viewerType)
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
117
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
118 @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
119 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
120 """
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 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
122
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 @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
124 @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
125 """
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 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
127
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 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
129 """
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 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
131
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 @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
133 @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
134 """
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
135 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
136 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
137 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
138
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
139 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
140 """
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 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
142 """
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
143 if self.__viewerType == "QTextEdit":
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
144 self.__contents.clear()
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
145 else:
7526
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
146 if e5App().usesDarkPalette():
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
147 self.__contents.setHtml(self.EmpytDocument_Dark)
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
148 else:
92ef4bd9d2c5 CodeDocumentationViewer: improved the clean() method to respect current color scheme type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
149 self.__contents.setHtml(self.EmpytDocument_Light)
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
150
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
151
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
152 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
153 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 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
155 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
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 @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
158 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
159 @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
160 """
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
161 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
162 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
163
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 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
165 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 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
167
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 @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
169 @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
170 """
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
171 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
172 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
173
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
174 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
175
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 self.__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
177 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
178 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
179
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 self.__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
181 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
182
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
183 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
184 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
185
c7bc0e516cd6 CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
186 self.__unregisterTimer = 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
187 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
188 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
189 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
190 self.__mostRecentlyUnregisteredProvider = None
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
191
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
192 def __setupUi(self):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
193 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
194 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
195 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
196 self.setObjectName("CodeDocumentationViewer")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
197
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
198 self.verticalLayout = QVBoxLayout(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
199 self.verticalLayout.setObjectName("verticalLayout")
5915
4bdac859df60 Fixed a few issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5914
diff changeset
200 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
201
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
202 # 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
203 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
204 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
205
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
206 self.label = QLabel(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
207 self.label.setObjectName("label")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
208 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
209 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
210 self.horizontalLayout1.addWidget(self.label)
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
211
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
212 self.providerComboBox = QComboBox(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
213 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
214 sizePolicy.setHorizontalStretch(0)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
215 sizePolicy.setVerticalStretch(0)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
216 sizePolicy.setHeightForWidth(
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
217 self.providerComboBox.sizePolicy().hasHeightForWidth())
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
218 self.providerComboBox.setSizePolicy(sizePolicy)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
219 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
220 self.providerComboBox.setObjectName("providerComboBox")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
221 self.providerComboBox.setToolTip(
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
222 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
223 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
224 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
225
4c716b02e10d Changed the search widget used in the documentation viewer (and other places) to allow to save width but make it higher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5925
diff changeset
226 # 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
227 self.objectLineEdit = QLineEdit(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
228 self.objectLineEdit.setReadOnly(True)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
229 self.objectLineEdit.setObjectName("objectLineEdit")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
230
5962
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
231 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
232 self.verticalLayout.addWidget(self.objectLineEdit)
5962
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
233
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
234 # Rich Text (Web) Viewer
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
235 self.__viewerWidget = DocumentationViewerWidget(self)
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
236 self.__viewerWidget.setObjectName("__viewerWidget")
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
237 self.verticalLayout.addWidget(self.__viewerWidget)
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
238
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
239 # backward compatibility for plug-ins before 2018-09-17
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
240 Preferences.setDocuViewer("ShowInfoAsRichText", True)
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
241
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
242 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
243 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
244
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
245 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
246 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 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
248 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 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
250 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
251 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
252 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
253 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
254 index = 0
5908
4d08fb83a844 Some fixes in the new code info viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
255 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
256 self.providerComboBox.setCurrentIndex(index)
5908
4d08fb83a844 Some fixes in the new code info viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
257 self.__selectedProvider = provider
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
258 if index == 0:
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
259 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
260
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
261 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
262 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
263 """
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
264 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
265
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 @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
267 @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
268 @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
269 @type str
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 @param 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
271 @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
272 @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
273 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
274 @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
275 @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
276 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
277 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 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
279 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
280 "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
281
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
282 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
283 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
284
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
285 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
286
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
287 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
288 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
289 # 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
290 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
291 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
292 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
293
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
294 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
295 """
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
296 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
297
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 @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
299 @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
300 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 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
302 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
303 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
304
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
305 # 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
306 # 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
307 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
308 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
309
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
310 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
311 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
312 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
313
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
314 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
315
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
316 @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
317 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
318 """
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
319 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
320 """
c7bc0e516cd6 CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
321 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
322
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
323 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
324 """
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
325 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
326 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
327
0c7bcba51391 Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5908
diff changeset
328 @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
329 @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
330 @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
331 @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
332 """
0c7bcba51391 Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5908
diff changeset
333 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
334
0c7bcba51391 Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5908
diff changeset
335 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
336 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
337
0c7bcba51391 Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5908
diff changeset
338 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
339
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
340 def getProviders(self):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
341 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
342 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
343
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
344 @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
345 @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
346 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
347 providers = []
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
348 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
349 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
350 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
351 providers.append((provider, text))
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
352
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
353 return providers
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
354
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
355 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
356 """
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
357 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
358
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 @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
360 @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
361 """
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
362 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
363 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
364 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
365 # 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
366 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
367 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
368
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
369 if self.__selectedProvider != self.__disabledProvider:
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
370 self.__viewerWidget.clear()
5911
0c7bcba51391 Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5908
diff changeset
371 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
372
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
373 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
374 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
375 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 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
377
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
378 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
379 (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
380
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 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
382 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
383 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
384 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
385 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
386 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
387
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 @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
389 @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
390 @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
391 @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
392 @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
393 @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
394 """
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 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
396
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
397 if not isWarning and not isDocWarning:
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
398 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
399
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
400 if not documentationInfo:
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
401 if self.__selectedProvider == self.__disabledProvider:
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
402 self.__showDisabledMessage()
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
403 else:
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
404 self.documentationReady(self.tr("No documentation available"),
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
405 isDocWarning=True)
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
406 else:
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
407 if isWarning:
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
408 html = prepareDocumentationViewerHtmlWarningDocument(
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
409 documentationInfo)
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
410 elif isDocWarning:
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
411 html = prepareDocumentationViewerHtmlDocWarningDocument(
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
412 documentationInfo)
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
413 elif isinstance(documentationInfo, dict):
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
414 html = prepareDocumentationViewerHtmlDocument(
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
415 documentationInfo)
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
416 else:
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
417 html = documentationInfo
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
418 self.__viewerWidget.setHtml(html)
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
419
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
420 def __showDisabledMessage(self):
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
421 """
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
422 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
423 """
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
424 if len(self.__providers) == 0:
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
425 self.documentationReady(
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
426 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
427 " registered. This function has been disabled."),
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
428 isWarning=True)
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
429 else:
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
430 self.documentationReady(
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
431 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
432 isWarning=True)
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
433
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
434 @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
435 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
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 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
438
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 @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
440 @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
441 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 if not self.__shuttingDown and not self.__startingUp:
6506
ff6172ce89a9 CodeDocumentationViewer: simplified the front end handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6505
diff changeset
443 self.__viewerWidget.clear()
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
444 self.objectLineEdit.clear()
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
445
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
446 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
447 if provider == self.__disabledProvider:
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
448 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
449 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
450 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
451
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
452 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
453 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
454
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
455 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
456 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
457 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
458 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
459 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
460 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
461
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
462 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
463 """
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
464 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
465 """
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
466 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
467 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
468
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
469 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
470 """
c7bc0e516cd6 CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
471 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
472
c7bc0e516cd6 CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
473 @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
474 @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
475 """
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
476 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
477 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
478 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
479 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
480 self.providerComboBox.setCurrentIndex(index)

eric ide

mercurial