Fix running processing algs through locator

This commit is contained in:
Nyall Dawson 2017-06-11 20:54:03 +10:00
parent f5a0243c9d
commit be2ec2f1a7

View File

@ -72,17 +72,16 @@ class AlgorithmLocatorFilter(QgsLocatorFilter):
self.resultFetched.emit(result) self.resultFetched.emit(result)
def triggerResult(self, result): def triggerResult(self, result):
a = QgsApplication.processingRegistry().algorithmById(result.userData) alg = QgsApplication.processingRegistry().algorithmById(result.userData)
if a: if alg:
alg = a.getCopy() ok, message = alg.canExecute()
message = alg.checkBeforeOpeningParametersDialog() if not ok:
if message:
dlg = MessageDialog() dlg = MessageDialog()
dlg.setTitle(self.tr('Missing dependency')) dlg.setTitle(self.tr('Missing dependency'))
dlg.setMessage(message) dlg.setMessage(message)
dlg.exec_() dlg.exec_()
return return
dlg = alg.getCustomParametersDialog() dlg = alg.createCustomParametersWidget()
if not dlg: if not dlg:
dlg = AlgorithmDialog(alg) dlg = AlgorithmDialog(alg)
canvas = iface.mapCanvas() canvas = iface.mapCanvas()