mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-15 00:07:25 -05:00
[processing] Fix executing models
This commit is contained in:
parent
dde48b5597
commit
ac84326464
@ -110,6 +110,8 @@ class QgsProcessingAlgorithm
|
||||
:rtype: QgsProcessingProvider
|
||||
%End
|
||||
|
||||
void setProvider( QgsProcessingProvider *provider );
|
||||
|
||||
private:
|
||||
QgsProcessingAlgorithm( const QgsProcessingAlgorithm &other );
|
||||
};
|
||||
|
||||
@ -131,7 +131,11 @@ class Processing(object):
|
||||
QgsMessageLog.logMessage(Processing.tr('Error: Algorithm {0} not found\n').format(algOrName),
|
||||
Processing.tr("Processing"))
|
||||
return
|
||||
# hack - remove when getCopy is removed
|
||||
provider = alg.provider()
|
||||
alg = alg.getCopy()
|
||||
#hack pt2
|
||||
alg.setProvider(provider)
|
||||
|
||||
if len(args) == 1 and isinstance(args[0], dict):
|
||||
# Set params by name and try to run the alg even if not all parameter values are provided,
|
||||
|
||||
@ -73,6 +73,8 @@ class BatchAlgorithmDialog(AlgorithmDialogBase):
|
||||
|
||||
for row in range(self.mainWidget.tblParameters.rowCount()):
|
||||
alg = self.alg.getCopy()
|
||||
# hack - remove when getCopy is removed
|
||||
alg.setProvider(self.alg.provider())
|
||||
col = 0
|
||||
for param in alg.parameters:
|
||||
if param.hidden:
|
||||
|
||||
@ -242,7 +242,11 @@ class ProcessingToolbox(BASE, WIDGET):
|
||||
item = self.algorithmTree.currentItem()
|
||||
if isinstance(item, TreeAlgorithmItem):
|
||||
alg = QgsApplication.processingRegistry().algorithmById(item.alg.id())
|
||||
#hack - remove when getCopy is removed
|
||||
provider = alg.provider()
|
||||
alg = alg.getCopy()
|
||||
#hack pt 2
|
||||
alg.setProvider(provider)
|
||||
dlg = BatchAlgorithmDialog(alg)
|
||||
dlg.show()
|
||||
dlg.exec_()
|
||||
@ -261,7 +265,12 @@ class ProcessingToolbox(BASE, WIDGET):
|
||||
'be run :-( </h3>\n{0}').format(message))
|
||||
dlg.exec_()
|
||||
return
|
||||
|
||||
# temporary hack - TODO remove this getCopy when parameters are moved from algorithm
|
||||
provider = alg.provider()
|
||||
alg = alg.getCopy()
|
||||
alg.setProvider(provider)
|
||||
|
||||
if (alg.getVisibleParametersCount() + alg.getVisibleOutputsCount()) > 0:
|
||||
dlg = alg.getCustomParametersDialog()
|
||||
if not dlg:
|
||||
|
||||
@ -202,7 +202,13 @@ def _executeAlgorithm(alg):
|
||||
'be run :-( </h3>\n{0}').format(message))
|
||||
dlg.exec_()
|
||||
return
|
||||
|
||||
# hack - remove when getCopy is removed
|
||||
provider = alg.provider()
|
||||
alg = alg.getCopy()
|
||||
#hack pt 2
|
||||
alg.setProvider(provider)
|
||||
|
||||
context = dataobjects.createContext()
|
||||
if (alg.getVisibleParametersCount() + alg.getVisibleOutputsCount()) > 0:
|
||||
dlg = alg.getCustomParametersDialog()
|
||||
|
||||
@ -40,7 +40,10 @@ class EditModelAction(ContextAction):
|
||||
return isinstance(self.itemData, ModelerAlgorithm)
|
||||
|
||||
def execute(self):
|
||||
dlg = ModelerDialog(self.itemData.getCopy())
|
||||
alg = self.itemData.getCopy()
|
||||
#hack - remove when getCopy is removed
|
||||
alg.setProvider(self.itemData.provider())
|
||||
dlg = ModelerDialog(alg)
|
||||
dlg.update_model.connect(self.updateModel)
|
||||
dlg.show()
|
||||
|
||||
|
||||
@ -282,7 +282,11 @@ class ModelerDialog(BASE, WIDGET):
|
||||
self.bar.pushMessage("", "Model doesn't contain any algorithm and/or parameter and can't be executed", level=QgsMessageBar.WARNING, duration=5)
|
||||
return
|
||||
|
||||
# hack - remove when above getCopy is removed
|
||||
provider = self.alg.provider()
|
||||
alg = self.alg.getCopy()
|
||||
# hack pt 2
|
||||
alg.setProvider(provider)
|
||||
dlg = AlgorithmDialog(alg)
|
||||
dlg.exec_()
|
||||
|
||||
|
||||
@ -118,13 +118,14 @@ class CORE_EXPORT QgsProcessingAlgorithm
|
||||
*/
|
||||
QgsProcessingProvider *provider() const;
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* Associates this algorithm with its provider. No transfer of ownership is involved.
|
||||
*/
|
||||
//TEMPORARY - remove when algorithms are no longer copied in python code
|
||||
void setProvider( QgsProcessingProvider *provider );
|
||||
|
||||
private:
|
||||
|
||||
QgsProcessingProvider *mProvider = nullptr;
|
||||
|
||||
// friend class to access setProvider() - we do not want this public!
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user