@@ -146,20 +146,21 @@ def setupUi(self):
146146 self .wrappers [param .name ] = wrapper
147147
148148 widget = wrapper .widget
149- self .valueItems [param .name ] = widget
150- if param .name in list (tooltips .keys ()):
151- tooltip = tooltips [param .name ]
152- else :
153- tooltip = param .description
154- label .setToolTip (tooltip )
155- widget .setToolTip (tooltip )
156- if param .isAdvanced :
157- label .setVisible (self .showAdvanced )
158- widget .setVisible (self .showAdvanced )
159- self .widgets [param .name ] = widget
160-
161- self .verticalLayout .addWidget (label )
162- self .verticalLayout .addWidget (widget )
149+ if widget :
150+ self .valueItems [param .name ] = widget
151+ if param .name in list (tooltips .keys ()):
152+ tooltip = tooltips [param .name ]
153+ else :
154+ tooltip = param .description
155+ label .setToolTip (tooltip )
156+ widget .setToolTip (tooltip )
157+ if param .isAdvanced :
158+ label .setVisible (self .showAdvanced )
159+ widget .setVisible (self .showAdvanced )
160+ self .widgets [param .name ] = widget
161+
162+ self .verticalLayout .addWidget (label )
163+ self .verticalLayout .addWidget (widget )
163164
164165 for output in self ._alg .outputs :
165166 if output .hidden :
@@ -301,34 +302,6 @@ def resolveValueDescription(self, value):
301302 alg = self .model .algs [value .alg ]
302303 return self .tr ("'%s' from algorithm '%s'" ) % (alg .algorithm .getOutputFromName (value .output ).description , alg .description )
303304
304- def setTableContent (self ):
305- params = self ._alg .parameters
306- outputs = self ._alg .outputs
307- visibleParams = [p for p in params if not p .hidden ]
308- visibleOutputs = [p for o in outputs if not o .hidden ]
309- self .tableWidget .setRowCount (len (visibleParams ) + len (visibleOutputs ))
310-
311- for i , param in visibleParams :
312- item = QTableWidgetItem (param .description )
313- item .setFlags (Qt .ItemIsEnabled )
314- self .tableWidget .setItem (i , 0 , item )
315- item = self .getWidgetFromParameter (param )
316- self .valueItems [param .name ] = item
317- self .tableWidget .setCellWidget (i , 1 , item )
318- self .tableWidget .setRowHeight (i , 22 )
319-
320- for i , output in visibleOutputs :
321- item = QTableWidgetItem (output .description + '<'
322- + output .__module__ .split ('.' )[- 1 ] + '>' )
323- item .setFlags (Qt .ItemIsEnabled )
324- self .tableWidget .setItem (i , 0 , item )
325- item = QLineEdit ()
326- if hasattr (item , 'setPlaceholderText' ):
327- item .setPlaceholderText (ModelerParametersDialog .ENTER_NAME )
328- self .valueItems [output .name ] = item
329- self .tableWidget .setCellWidget (i , 1 , item )
330- self .tableWidget .setRowHeight (i , 22 )
331-
332305 def setPreviousValues (self ):
333306 if self ._algName is not None :
334307 alg = self .model .algs [self ._algName ]
@@ -376,12 +349,14 @@ def createAlgorithm(self):
376349 for selected in selectedOptions :
377350 alg .dependencies .append (availableDependencies [selected ].name )
378351
352+ self ._alg .processBeforeAddingToModeler (alg , self .model )
379353 return alg
380354
381355 def setParamValue (self , alg , param , wrapper ):
382356 try :
383- value = wrapper .value ()
384- alg .params [param .name ] = value
357+ if wrapper .widget :
358+ value = wrapper .value ()
359+ alg .params [param .name ] = value
385360 return True
386361 except InvalidParameterValue :
387362 return False
0 commit comments