[processing] do not allow editing model if it's missing algorithms

fixes #19607
This commit is contained in:
volaya 2019-01-23 14:02:42 +01:00
parent e3516ab1b4
commit a86965e94b

View File

@ -26,9 +26,11 @@ __copyright__ = '(C) 2012, Victor Olaya'
__revision__ = '$Format:%H$'
from qgis.PyQt.QtCore import QCoreApplication
from qgis.core import QgsApplication, QgsProcessingModelAlgorithm
from qgis.core import QgsApplication, QgsProcessingModelAlgorithm, QgsMessageLog
from processing.gui.ContextAction import ContextAction
from processing.modeler.ModelerDialog import ModelerDialog
from qgis.core import Qgis
from qgis.utils import iface
class EditModelAction(ContextAction):
@ -41,9 +43,13 @@ class EditModelAction(ContextAction):
def execute(self):
alg = self.itemData
dlg = ModelerDialog(alg)
dlg.update_model.connect(self.updateModel)
dlg.show()
ok, msg = alg.canExecute()
if not ok:
iface.messageBar().pushMessage("Cannot edit model:", msg, level=Qgis.Warning)
else:
dlg = ModelerDialog(alg)
dlg.update_model.connect(self.updateModel)
dlg.show()
def updateModel(self):
QgsApplication.processingRegistry().providerById('model').refreshAlgorithms()