diff --git a/picard/ui/options/scripting.py b/picard/ui/options/scripting.py index 290bf444f..6a55aaa58 100644 --- a/picard/ui/options/scripting.py +++ b/picard/ui/options/scripting.py @@ -35,16 +35,11 @@ from picard.config import ( Option, get_config, ) -from picard.const import PICARD_URLS from picard.const.sys import IS_MACOS -from picard.script import ( - ScriptParser, - script_function_documentation_all, -) +from picard.script import ScriptParser from picard.util import restore_method from picard.ui import ( - FONT_FAMILY_MONOSPACE, PicardDialog, SingletonDialog, ) @@ -54,11 +49,11 @@ from picard.ui.options import ( OptionsPage, register_options_page, ) -from picard.ui.theme import theme from picard.ui.ui_options_script import Ui_ScriptingOptionsPage from picard.ui.ui_scripting_documentation_dialog import ( Ui_ScriptingDocumentationDialog, ) +from picard.ui.widgets.scriptdocumentation import ScriptingDocumentationWidget from picard.ui.widgets.scriptlistwidget import ScriptListWidgetItem @@ -66,31 +61,6 @@ class ScriptCheckError(OptionsCheckError): pass -DOCUMENTATION_HTML_TEMPLATE = ''' - - -
- - - - %(html)s - - -''' - - class ScriptingDocumentationDialog(PicardDialog, SingletonDialog): defaultsize = QtCore.QSize(570, 400) autorestore = False @@ -105,49 +75,9 @@ class ScriptingDocumentationDialog(PicardDialog, SingletonDialog): self.parent = parent self.ui = Ui_ScriptingDocumentationDialog() self.ui.setupUi(self) + doc_widget = ScriptingDocumentationWidget(self) + self.ui.documentation_layout.addWidget(doc_widget) self.restore_geometry() - args = { - "picard-doc-scripting-url": PICARD_URLS['doc_scripting'], - } - text = _('Open Scripting' - ' Documentation in your browser') % args - self.ui.scripting_doc_link.setText(text) - - def process_html(html, function): - if not html: - html = '' - template = '$%s()" % function.name, module, html)
-
- funcdoc = script_function_documentation_all(
- fmt='html',
- postprocessor=process_html,
- )
-
- if self.ui.textBrowser.layoutDirection() == QtCore.Qt.RightToLeft:
- text_direction = 'rtl'
- else:
- text_direction = 'ltr'
-
- html = DOCUMENTATION_HTML_TEMPLATE % {
- 'html': "', '')
- self.ui.textBrowser.setHtml(html)
self.ui.buttonBox.rejected.connect(self.close)
def closeEvent(self, event):
diff --git a/picard/ui/ui_scripting_documentation_dialog.py b/picard/ui/ui_scripting_documentation_dialog.py
index 2dec50eea..65408b1c1 100644
--- a/picard/ui/ui_scripting_documentation_dialog.py
+++ b/picard/ui/ui_scripting_documentation_dialog.py
@@ -3,8 +3,10 @@
# Automatically generated - don't edit.
# Use `python setup.py build_ui` to update it.
+
from PyQt5 import QtCore, QtGui, QtWidgets
+
class Ui_ScriptingDocumentationDialog(object):
def setupUi(self, ScriptingDocumentationDialog):
ScriptingDocumentationDialog.setObjectName("ScriptingDocumentationDialog")
@@ -15,32 +17,16 @@ class Ui_ScriptingDocumentationDialog(object):
sizePolicy.setHeightForWidth(ScriptingDocumentationDialog.sizePolicy().hasHeightForWidth())
ScriptingDocumentationDialog.setSizePolicy(sizePolicy)
ScriptingDocumentationDialog.setModal(False)
- self.gridLayout = QtWidgets.QGridLayout(ScriptingDocumentationDialog)
- self.gridLayout.setObjectName("gridLayout")
- self.textBrowser = QtWidgets.QTextBrowser(ScriptingDocumentationDialog)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
- sizePolicy.setHorizontalStretch(1)
- sizePolicy.setVerticalStretch(1)
- sizePolicy.setHeightForWidth(self.textBrowser.sizePolicy().hasHeightForWidth())
- self.textBrowser.setSizePolicy(sizePolicy)
- self.textBrowser.setOpenExternalLinks(True)
- self.textBrowser.setObjectName("textBrowser")
- self.gridLayout.addWidget(self.textBrowser, 0, 0, 1, 2)
- self.scripting_doc_link = QtWidgets.QLabel(ScriptingDocumentationDialog)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.scripting_doc_link.sizePolicy().hasHeightForWidth())
- self.scripting_doc_link.setSizePolicy(sizePolicy)
- self.scripting_doc_link.setWordWrap(True)
- self.scripting_doc_link.setOpenExternalLinks(True)
- self.scripting_doc_link.setObjectName("scripting_doc_link")
- self.gridLayout.addWidget(self.scripting_doc_link, 1, 0, 1, 1)
+ self.verticalLayout = QtWidgets.QVBoxLayout(ScriptingDocumentationDialog)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.documentation_layout = QtWidgets.QVBoxLayout()
+ self.documentation_layout.setObjectName("documentation_layout")
+ self.verticalLayout.addLayout(self.documentation_layout)
self.buttonBox = QtWidgets.QDialogButtonBox(ScriptingDocumentationDialog)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close)
self.buttonBox.setObjectName("buttonBox")
- self.gridLayout.addWidget(self.buttonBox, 1, 1, 1, 1)
+ self.verticalLayout.addWidget(self.buttonBox)
self.retranslateUi(ScriptingDocumentationDialog)
QtCore.QMetaObject.connectSlotsByName(ScriptingDocumentationDialog)
@@ -48,5 +34,3 @@ class Ui_ScriptingDocumentationDialog(object):
def retranslateUi(self, ScriptingDocumentationDialog):
_translate = QtCore.QCoreApplication.translate
ScriptingDocumentationDialog.setWindowTitle(_("Scripting Documentation"))
- self.scripting_doc_link.setText(_("Open documentation in browser"))
-
diff --git a/ui/scripting_documentation_dialog.ui b/ui/scripting_documentation_dialog.ui
index 8d85a016e..49cbab8ea 100644
--- a/ui/scripting_documentation_dialog.ui
+++ b/ui/scripting_documentation_dialog.ui
@@ -22,40 +22,11 @@
false
-
- -
-
-
-
- 1
- 1
-
-
-
- true
-
-
+
+ -
+
- -
-
-
-
- 0
- 0
-
-
-
- Open documentation in browser
-
-
- true
-
-
- true
-
-
-
- -
+
-
Qt::Horizontal