Skip to content

Commit ffac4f9

Browse files
committed
[processing] simplify modeler algorithm dialog and use new help in it
too
1 parent a137a7c commit ffac4f9

File tree

1 file changed

+14
-38
lines changed

1 file changed

+14
-38
lines changed

python/plugins/processing/modeler/ModelerParametersDialog.py

Lines changed: 14 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,14 @@
2727

2828
__revision__ = '$Format:%H$'
2929

30+
import webbrowser
31+
3032
from qgis.PyQt.QtCore import Qt, QUrl, QMetaObject
3133
from qgis.PyQt.QtWidgets import (QDialog, QDialogButtonBox, QLabel, QLineEdit,
3234
QFrame, QPushButton, QSizePolicy, QVBoxLayout,
33-
QHBoxLayout, QTabWidget, QWidget,
34-
QTextBrowser)
35-
from qgis.PyQt.QtNetwork import QNetworkRequest, QNetworkReply
35+
QHBoxLayout, QWidget)
3636

37-
from qgis.core import (QgsNetworkAccessManager,
38-
QgsProcessingParameterDefinition)
37+
from qgis.core import (QgsProcessingParameterDefinition)
3938

4039
from qgis.gui import (QgsMessageBar,
4140
QgsScrollArea)
@@ -89,7 +88,8 @@ def setupUi(self):
8988
self.buttonBox = QDialogButtonBox()
9089
self.buttonBox.setOrientation(Qt.Horizontal)
9190
self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel |
92-
QDialogButtonBox.Ok)
91+
+ QDialogButtonBox.Ok |
92+
+ QDialogButtonBox.Help)
9393
self.setSizePolicy(QSizePolicy.Expanding,
9494
QSizePolicy.Expanding)
9595
self.verticalLayout = QVBoxLayout()
@@ -182,53 +182,24 @@ def setupUi(self):
182182
self.verticalLayout2 = QVBoxLayout()
183183
self.verticalLayout2.setSpacing(2)
184184
self.verticalLayout2.setMargin(0)
185-
self.tabWidget = QTabWidget()
186-
self.tabWidget.setMinimumWidth(300)
185+
187186
self.paramPanel = QWidget()
188187
self.paramPanel.setLayout(self.verticalLayout)
189188
self.scrollArea = QgsScrollArea()
190189
self.scrollArea.setWidget(self.paramPanel)
191190
self.scrollArea.setWidgetResizable(True)
192-
self.tabWidget.addTab(self.scrollArea, self.tr('Parameters'))
193-
194-
self.txtHelp = QTextBrowser()
195191

196-
html = None
197-
isText, algHelp = self._alg.help()
198-
if algHelp is not None:
199-
algHelp = algHelp if isText else QUrl(algHelp)
200-
try:
201-
if isText:
202-
self.txtHelp.setHtml(algHelp)
203-
else:
204-
html = self.tr('<p>Downloading algorithm help... Please wait.</p>')
205-
self.txtHelp.setHtml(html)
206-
self.tabWidget.addTab(self.txtHelp, 'Help')
207-
self.reply = QgsNetworkAccessManager.instance().get(QNetworkRequest(algHelp))
208-
self.reply.finished.connect(self.requestFinished)
209-
except:
210-
pass
211-
212-
self.verticalLayout2.addWidget(self.tabWidget)
192+
self.verticalLayout2.addWidget(self.scrollArea)
213193
self.verticalLayout2.addWidget(self.buttonBox)
214194
self.setLayout(self.verticalLayout2)
215195
self.buttonBox.accepted.connect(self.okPressed)
216196
self.buttonBox.rejected.connect(self.cancelPressed)
197+
self.buttonBox.helpRequested.connect(self.openHelp)
217198
QMetaObject.connectSlotsByName(self)
218199

219200
for wrapper in list(self.wrappers.values()):
220201
wrapper.postInitialize(list(self.wrappers.values()))
221202

222-
def requestFinished(self):
223-
"""Change the webview HTML content"""
224-
reply = self.sender()
225-
if reply.error() != QNetworkReply.NoError:
226-
html = self.tr('<h2>No help available for this algorithm</h2><p>{}</p>'.format(reply.errorString()))
227-
else:
228-
html = str(reply.readAll())
229-
reply.deleteLater()
230-
self.txtHelp.setHtml(html)
231-
232203
def getAvailableDependencies(self): # spellok
233204
if self._algName is None:
234205
dependent = []
@@ -353,3 +324,8 @@ def okPressed(self):
353324
def cancelPressed(self):
354325
self.alg = None
355326
self.close()
327+
328+
def openHelp(self):
329+
algHelp = self._alg.help()
330+
if algHelp is not None:
331+
webbrowser.open(algHelp)

0 commit comments

Comments
 (0)