UI/CodeDocumentationViewer.py

Tue, 01 May 2018 12:03:52 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 01 May 2018 12:03:52 +0200
branch
maintenance
changeset 6273
0daf79d65080
parent 6266
c7bc0e516cd6
child 6372
ae44c83fccab
permissions
-rw-r--r--

Merged with default branch to prepare new release.

5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
6048
82ad8ec9548c Updated copyright for 2018.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5987
diff changeset
3 # Copyright (c) 2017 - 2018 Detlev Offenbach <detlev@die-offenbachs.de>
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a widget to show some source code information provided by
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 plug-ins.
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from __future__ import unicode_literals
5924
85e126ab4ca5 Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5923
diff changeset
12 try:
85e126ab4ca5 Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5923
diff changeset
13 basestring # __IGNORE_WARNING__
85e126ab4ca5 Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5923
diff changeset
14 except NameError:
85e126ab4ca5 Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5923
diff changeset
15 basestring = str
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
6266
c7bc0e516cd6 CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
17 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QTimer
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
18 from PyQt5.QtGui import QCursor
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
19 from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, \
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
20 QComboBox, QSizePolicy, QLineEdit, QTextEdit, QToolTip, QToolButton, \
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
21 QActionGroup, QMenu
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
22
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
23 from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget
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
24 from E5Gui.E5ToolButton import E5ToolButton
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
25
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 import Preferences
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
27 import UI.PixmapCache
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
28
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
29 from .CodeDocumentationViewerTemplate import \
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
30 prepareDocumentationViewerHtmlDocument, \
5919
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
31 prepareDocumentationViewerHtmlDocWarningDocument, \
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
32 prepareDocumentationViewerHtmlWarningDocument
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
33
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
34 from .data import codeDocumentationViewer_rc # __IGNORE_WARNING__
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
35
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
36
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
37 class PlainTextDocumentationViewer(QWidget):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
38 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
39 Class implementing the plain text documentation viewer.
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
40 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
41 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
42 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
43 Constructor
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
44
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
45 @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
46 @type QWidget
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
47 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
48 super(PlainTextDocumentationViewer, self).__init__(parent)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
49 self.setObjectName("PlainTextDocumentationViewer")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
50
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
51 self.__verticalLayout = QVBoxLayout(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
52 self.__verticalLayout.setObjectName("verticalLayout")
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
53 self.__verticalLayout.setContentsMargins(0, 0, 0, 0)
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
54
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
55 self.__contents = QTextEdit(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
56 self.__contents.setTabChangesFocus(True)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
57 self.__contents.setReadOnly(True)
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
58 self.__contents.setLineWrapMode(QTextEdit.NoWrap)
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
59 self.__contents.setObjectName("contents")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
60 self.__verticalLayout.addWidget(self.__contents)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
61
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
62 self.__searchWidget = E5TextEditSearchWidget(self, False)
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
63 self.__searchWidget.setFocusPolicy(Qt.WheelFocus)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
64 self.__searchWidget.setObjectName("searchWidget")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
65 self.__verticalLayout.addWidget(self.__searchWidget)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
66
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
67 self.__searchWidget.attachTextEdit(self.__contents, "QTextEdit")
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
68
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
69 self.preferencesChanged()
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 def clear(self):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
72 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
73 Public method to clear the contents.
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
74 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
75 self.__contents.clear()
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
76
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
77 def setText(self, text):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
78 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
79 Public method to set the text to be shown.
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
80
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
81 @param text text to be shown
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
82 @type str
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
83 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
84 self.__contents.setPlainText(text)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
85
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
86 def preferencesChanged(self):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
87 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
88 Public slot to handle a change of preferences.
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
89 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
90 font = Preferences.getEditorOtherFonts("MonospacedFont")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
91 self.__contents.setFontFamily(font.family())
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
92 self.__contents.setFontPointSize(font.pointSize())
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
93
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
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
95 class WebViewDocumentationViewer(QWidget):
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
96 """
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
97 Class implementing the rich text documentation viewer.
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
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 def __init__(self, parent=None):
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
100 """
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 Constructor
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
102
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
103 @param parent reference to the parent widget
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
104 @type QWidget
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
105 """
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
106 super(WebViewDocumentationViewer, self).__init__(parent)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
107 self.setObjectName("WebViewDocumentationViewer")
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
108
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 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
110 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
111 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
112
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 try:
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
114 from PyQt5.QtWebEngineWidgets import QWebEngineView, \
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
115 QWebEngineSettings
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
116 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
117 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
118 try:
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
119 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
120 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
121 except AttributeError:
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
122 # 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
123 pass
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
124 self.__usesWebKit = False
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
125 except ImportError:
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
126 from PyQt5.QtWebKitWidgets import QWebPage, QWebView
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
127 self.__contents = QWebView(self)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
128 self.__contents.page().setLinkDelegationPolicy(
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
129 QWebPage.DelegateAllLinks)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
130 self.__usesWebKit = True
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
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 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
133 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
134 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
135 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
136 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
137 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
138 self.__contents.setContextMenuPolicy(Qt.NoContextMenu)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
139 self.__contents.setUrl(QUrl("about:blank"))
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
140 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
141
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
142 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
143 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
144 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
145 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
146
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
147 self.__searchWidget.attachTextEdit(
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
148 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
149 "QWebView" if self.__usesWebKit else "QWebEngineView",
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
150 )
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
151
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
152 @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
153 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
154 """
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
155 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
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 @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
158 @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
159 """
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
160 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
161
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 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
163 """
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
164 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
165
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
166 @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
167 @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
168 """
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
169 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
170 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
171 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
172
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
173 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
174 """
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
175 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
176 """
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
177 self.__contents.setHtml("")
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
178
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
179
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
180 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
181 """
cd90bfdc1247 Started to implement a viewer for source 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 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
183 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
184
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
185 @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
186 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
187 @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
188 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 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
190 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
191
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 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
193 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 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
195
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 @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
197 @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
198 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 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
200 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
201
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
202 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
203
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 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
205 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
206 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
207
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 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
209 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
210
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 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
212 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
213
c7bc0e516cd6 CodeDocumentationViewer: added code to remember the most recently unregistered provider for some time in case it is registered again (e.g. during plug-in update)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
214 self.__unregisterTimer = 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
215 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
216 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
217 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
218 self.__mostRecentlyUnregisteredProvider = None
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
219
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
220 def __setupUi(self):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
221 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
222 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
223 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
224 self.setObjectName("CodeDocumentationViewer")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
225
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
226 self.verticalLayout = QVBoxLayout(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
227 self.verticalLayout.setObjectName("verticalLayout")
5915
4bdac859df60 Fixed a few issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5914
diff changeset
228 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
229
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
230 # 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
231 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
232 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
233
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
234 self.label = QLabel(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
235 self.label.setObjectName("label")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
236 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
237 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
238 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
239
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
240 self.providerComboBox = QComboBox(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
241 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
242 sizePolicy.setHorizontalStretch(0)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
243 sizePolicy.setVerticalStretch(0)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
244 sizePolicy.setHeightForWidth(
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
245 self.providerComboBox.sizePolicy().hasHeightForWidth())
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
246 self.providerComboBox.setSizePolicy(sizePolicy)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
247 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
248 self.providerComboBox.setObjectName("providerComboBox")
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
249 self.providerComboBox.setToolTip(
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
250 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
251 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
252 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
253
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
254 # top row 2 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
255 self.horizontalLayout2 = 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
256 self.horizontalLayout2.setObjectName("horizontalLayout2")
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
257
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
258 self.objectLineEdit = QLineEdit(self)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
259 self.objectLineEdit.setReadOnly(True)
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
260 self.objectLineEdit.setObjectName("objectLineEdit")
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
261 self.horizontalLayout2.addWidget(self.objectLineEdit)
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
262
5962
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
263 self.verticalLayout.addLayout(self.horizontalLayout1)
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
264 self.verticalLayout.addLayout(self.horizontalLayout2)
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
265
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
266 # Plain Text Viewer
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
267 self.__plainTextViewer = PlainTextDocumentationViewer(self)
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
268 self.__plainTextViewer.setObjectName("__plainTextViewer")
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
269 self.verticalLayout.addWidget(self.__plainTextViewer)
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
270
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
271 # Rich Text (Web) Viewer
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
272 self.__richTextViewer = WebViewDocumentationViewer(self)
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
273 self.__richTextViewer.setObjectName("__richTextViewer")
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
274 self.verticalLayout.addWidget(self.__richTextViewer)
5962
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
275
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
276 self.__toolButton = E5ToolButton(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
277 self.__toolButton.setObjectName(
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
278 "navigation_supermenu_button")
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
279 self.__toolButton.setIcon(UI.PixmapCache.getIcon("superMenu.png"))
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
280 self.__toolButton.setToolTip(self.tr("Main Menu"))
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
281 self.__toolButton.setPopupMode(QToolButton.InstantPopup)
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
282 self.__toolButton.setToolButtonStyle(Qt.ToolButtonIconOnly)
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
283 self.__toolButton.setFocusPolicy(Qt.NoFocus)
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 self.__toolButton.setAutoRaise(True)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
285 self.__toolButton.setShowMenuInside(True)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
286
5962
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
287 self.__optionsActionGroup = QActionGroup(self)
a339eed93b19 Made the HTML based documentation viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5961
diff changeset
288 self.__optionsActionGroup.setExclusive(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
289 self.__optionsMenu = QMenu(self)
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
290 self.__richTextAct = self.__optionsMenu.addAction(
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
291 self.tr("Rich Text"),
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
292 lambda: self.__showTextViewer(True))
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
293 self.__richTextAct.setCheckable(True)
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
294 self.__optionsActionGroup.addAction(self.__richTextAct)
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
295 self.__plainTextAct = self.__optionsMenu.addAction(
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
296 self.tr("Plain Text"),
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
297 lambda: self.__showTextViewer(False))
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
298 self.__plainTextAct.setCheckable(True)
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
299 self.__optionsActionGroup.addAction(self.__plainTextAct)
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
300
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
301 self.__toolButton.setMenu(self.__optionsMenu)
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
302 self.horizontalLayout2.addWidget(self.__toolButton)
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
303
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
304 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
305 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
306
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 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
308 """
cd90bfdc1247 Started to implement a viewer for source 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 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
310 """
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
311 self.__showTextViewer(
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
312 Preferences.getDocuViewer("ShowInfoAsRichText"))
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
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 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
315 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
316 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
317 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
318 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
319 index = 0
5908
4d08fb83a844 Some fixes in the new code info viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
320 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
321 self.providerComboBox.setCurrentIndex(index)
5908
4d08fb83a844 Some fixes in the new code info viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
322 self.__selectedProvider = provider
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
323 if index == 0:
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
324 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
325
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
326 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
327 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
328 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 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
330
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 @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
332 @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
333 @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
334 @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
335 @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
336 @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
337 @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
338 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 @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
340 @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
341 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
342 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 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
344 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
345 "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
346
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
347 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
348 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
349
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
350 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
351
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
352 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
353 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
354 # 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
355 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
356 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
357 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
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 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
360 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 Public method 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
362
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 @param 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
364 @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
365 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 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
367 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
368 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
369
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
370 # 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
371 # 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
372 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
373 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
374
cd90bfdc1247 Started to implement a viewer for source 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 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
376 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
377 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
378
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
379 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
380
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
381 @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
382 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
383 """
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
384 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
385 """
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
386 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
387
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
388 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
389 """
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
390 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
391 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
392
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
393 @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
394 @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
395 @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
396 @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
397 """
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
398 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
399
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
400 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
401 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
402
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
403 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
404
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
405 def getProviders(self):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
406 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
407 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
408
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
409 @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
410 @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
411 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
412 providers = []
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
413 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
414 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
415 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
416 providers.append((provider, text))
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
417
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
418 return providers
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
419
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
420 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
421 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 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
423
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 @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
425 @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
426 """
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
427 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
428 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
429 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
430 # 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
431 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
432 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
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 if self.__selectedProvider != self.__disabledProvider:
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
435 self.__plainTextViewer.clear()
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
436 self.__richTextViewer.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
437 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
438
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
439 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
440 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
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 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
443
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
444 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
445 (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
446
cd90bfdc1247 Started to implement a viewer for source 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 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
448 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
449 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
450 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
451 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
452 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
453
cd90bfdc1247 Started to implement a viewer for source 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 @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
455 @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
456 @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
457 @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
458 @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
459 @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
460 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
461 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
462
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
463 if not isWarning and not isDocWarning:
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
464 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
465
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
466 if not documentationInfo:
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
467 if self.__selectedProvider == self.__disabledProvider:
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
468 self.__showDisabledMessage()
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
469 else:
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
470 self.documentationReady(self.tr("No documentation available"),
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
471 isDocWarning=True)
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
472 else:
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
473 if self.__showMarkdown:
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
474 if isWarning:
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
475 html = prepareDocumentationViewerHtmlWarningDocument(
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
476 documentationInfo)
5919
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
477 elif isDocWarning:
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
478 html = prepareDocumentationViewerHtmlDocWarningDocument(
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
479 documentationInfo)
5914
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
480 elif isinstance(documentationInfo, dict):
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
481 html = prepareDocumentationViewerHtmlDocument(
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
482 documentationInfo)
e44c04a89dbc Improved and beautified the rich text display of the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5913
diff changeset
483 else:
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
484 html = documentationInfo
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
485 self.__setHtml(html)
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
486 else:
5924
85e126ab4ca5 Fixed some issues detected using Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5923
diff changeset
487 if isinstance(documentationInfo, basestring):
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
488 fullText = documentationInfo
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
489 elif isinstance(documentationInfo, dict):
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
490 name = documentationInfo["name"]
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
491 if name:
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
492 title = "".join([name, "\n",
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
493 "=" * len(name), "\n\n"])
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494
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
495 if "argspec" in documentationInfo and \
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
496 documentationInfo["argspec"]:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
497 definition = self.tr("Definition: {0}{1}\n")\
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
498 .format(name, documentationInfo["argspec"])
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
499 elif name:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
500 definition = self.tr("Definition: {0}\n")\
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
501 .format(name)
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
502 else:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
503 definition = ""
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
504
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
505 if "typ" in documentationInfo and \
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
506 documentationInfo["typ"]:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
507 typeInfo = self.tr("Type: {0}\n").format(
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
508 documentationInfo["typ"])
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
509 else:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
510 typeInfo = ""
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
511
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
512 if "note" in documentationInfo and \
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
513 documentationInfo["note"]:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
514 note = self.tr("Note: {0}\n").format(
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
515 documentationInfo["note"])
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
516 else:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
517 note = ""
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
518
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
519 header = "".join([title, definition, typeInfo, note])
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
520 else:
5961
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
521 header = ""
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
522
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
523 if "docstring" not in documentationInfo or \
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
524 not documentationInfo["docstring"]:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
525 docString = self.tr(
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
526 "No further documentation available")
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
527 else:
5961
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
528 if header:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
529 docString = "\n----\n\n{0}".format(
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
530 documentationInfo["docstring"])
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
531 else:
2a5232311a65 Added possibility to show the type of the object info is shown for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5959
diff changeset
532 docString = documentationInfo["docstring"]
5922
4ee909600092 Streamlined the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5919
diff changeset
533
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
534 fullText = "".join([header, docString])
5913
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
535
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
536 self.__plainTextViewer.setText(fullText)
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
537
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
538 def __showDisabledMessage(self):
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
539 """
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
540 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
541 """
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
542 if len(self.__providers) == 0:
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
543 self.documentationReady(
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
544 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
545 " registered. This function has been disabled."),
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
546 isWarning=True)
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
547 else:
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
548 self.documentationReady(
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
549 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
550 isWarning=True)
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
551
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
552 def __setHtml(self, html):
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
553 """
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
554 Private slot to set the prepared HTML text.
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
555
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
556 @param html prepared HTML text
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
557 @type str
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
558 """
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
559 self.__richTextViewer.setHtml(html)
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560
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
561 def __setHtmlWarning(self, warningText):
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
562 """
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
563 Private slot to set a display message.
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
564
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
565 @param warningText text to be shown as a warning
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
566 @type str
d0de2b378b24 Improved and beautified the rich text display of the documentation viewer some more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5915
diff changeset
567 """
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
568 html = prepareDocumentationViewerHtmlWarningDocument(warningText)
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
569 self.__richTextViewer.setHtml(html)
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
570
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
571 @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
572 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
573 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
574 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
575
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
576 @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
577 @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
578 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
579 if not self.__shuttingDown and not self.__startingUp:
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
580 self.__plainTextViewer.clear()
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
581 self.__richTextViewer.clear()
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
582 self.objectLineEdit.clear()
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
583
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
584 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
585 if provider == self.__disabledProvider:
5925
0174aece0923 Some little enhancement to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5924
diff changeset
586 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
587 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
588 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
589
5912
b6643d36dddd Added the rich text view to the documentation viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5911
diff changeset
590 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
591 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
592
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
593 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
594 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
595 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
596 """
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
597 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
598 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
599
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
600 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
601 """
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
602 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
603 """
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
604 showMarkdown = Preferences.getDocuViewer("ShowInfoAsRichText")
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
605 if showMarkdown != self.__showMarkdown:
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
606 self.__showTextViewer(showMarkdown)
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
607
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
608 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
609 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
610
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
611 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
612 """
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
613 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
614
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
615 @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
616 @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
617 """
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
618 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
619 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
620 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
621 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
622 self.providerComboBox.setCurrentIndex(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
623
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
624 def __showTextViewer(self, richText):
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
625 """
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
626 Private slot to show the selected viewer.
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
627
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
628 @param richText flag indicating the rich text viewer
7ab2293917f8 Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5912
diff changeset
629 @type bool
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
630 """
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
631 self.__showMarkdown = richText
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
632
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
633 self.__plainTextViewer.clear()
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
634 self.__richTextViewer.clear()
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
635
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
636 self.__plainTextViewer.setVisible(not richText)
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
637 self.__richTextViewer.setVisible(richText)
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
638
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
639 self.__plainTextAct.setChecked(not richText)
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5962
diff changeset
640 self.__richTextAct.setChecked(richText)
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
641
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
642 self.documentationReady(self.__lastDocumentation)
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
643
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
644 Preferences.setDocuViewer("ShowInfoAsRichText", richText)

eric ide

mercurial