@@ -135,6 +135,7 @@ def initWidgets(self):
135
135
self .tblParameters .horizontalHeader ().setStretchLastSection (True )
136
136
137
137
def load (self ):
138
+ context = dataobjects .createContext ()
138
139
settings = QgsSettings ()
139
140
last_path = settings .value ("/Processing/LastBatchPath" , QDir .homePath ())
140
141
filename , selected_filter = QFileDialog .getOpenFileName (self ,
@@ -164,7 +165,7 @@ def load(self):
164
165
if param .name () in params :
165
166
value = eval (params [param .name ()])
166
167
wrapper = self .wrappers [row ][column ]
167
- wrapper .setValue (value )
168
+ wrapper .setParameterValue (value , context )
168
169
column += 1
169
170
170
171
for out in self .alg .destinationParameterDefinitions ():
@@ -195,12 +196,24 @@ def save(self):
195
196
if param .isDestination ():
196
197
continue
197
198
wrapper = self .wrappers [row ][col ]
198
- if not param .checkValueIsAcceptable (wrapper .value (), context ):
199
+
200
+ # For compatibility with 3.x API, we need to check whether the wrapper is
201
+ # the deprecated WidgetWrapper class. If not, it's the newer
202
+ # QgsAbstractProcessingParameterWidgetWrapper class
203
+ # TODO QGIS 4.0 - remove
204
+ if issubclass (wrapper .__class__ , WidgetWrapper ):
205
+ widget = wrapper .widget
206
+ else :
207
+ widget = wrapper .wrappedWidget ()
208
+
209
+ value = wrapper .parameterValue ()
210
+
211
+ if not param .checkValueIsAcceptable (value , context ):
199
212
self .parent .messageBar ().pushMessage ("" , self .tr ('Wrong or missing parameter value: {0} (row {1})' ).format (
200
213
param .description (), row + 1 ),
201
214
level = Qgis .Warning , duration = 5 )
202
215
return
203
- algParams [param .name ()] = param .valueAsPythonString (wrapper . value () , context )
216
+ algParams [param .name ()] = param .valueAsPythonString (value , context )
204
217
col += 1
205
218
for out in alg .destinationParameterDefinitions ():
206
219
if out .flags () & QgsProcessingParameterDefinition .FlagHidden :
@@ -289,13 +302,15 @@ def removeRows(self):
289
302
self .tblParameters .setRowCount (self .tblParameters .rowCount () - 1 )
290
303
291
304
def fillParameterValues (self , column ):
305
+ context = dataobjects .createContext ()
306
+
292
307
wrapper = self .wrappers [0 ][column ]
293
308
if wrapper is None :
294
309
# e.g. double clicking on a destination header
295
310
return
296
311
297
312
for row in range (1 , self .tblParameters .rowCount ()):
298
- self .wrappers [row ][column ].setValue (wrapper .value ())
313
+ self .wrappers [row ][column ].setParameterValue (wrapper .value (), context )
299
314
300
315
def toggleAdvancedMode (self , checked ):
301
316
for column , param in enumerate (self .alg .parameterDefinitions ()):
0 commit comments