Skip to content

Commit 521ebdc

Browse files
committed
[processing] Wrappers built off old API can still take advantage of the full widget context
1 parent f620adc commit 521ebdc

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

python/plugins/processing/gui/BatchPanel.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -265,21 +265,21 @@ def save(self):
265265
def setCellWrapper(self, row, column, wrapper, context):
266266
self.wrappers[row][column] = wrapper
267267

268+
widget_context = QgsProcessingParameterWidgetContext()
269+
if iface is not None:
270+
widget_context.setMapCanvas(iface.mapCanvas())
271+
if isinstance(self.alg, QgsProcessingModelAlgorithm):
272+
widget_context.setModel(self.alg)
273+
wrapper.setWidgetContext(widget_context)
274+
wrapper.registerProcessingContextGenerator(self.context_generator)
275+
268276
# For compatibility with 3.x API, we need to check whether the wrapper is
269277
# the deprecated WidgetWrapper class. If not, it's the newer
270278
# QgsAbstractProcessingParameterWidgetWrapper class
271279
# TODO QGIS 4.0 - remove
272280
is_cpp_wrapper = not issubclass(wrapper.__class__, WidgetWrapper)
273281
if is_cpp_wrapper:
274-
widget_context = QgsProcessingParameterWidgetContext()
275-
if iface is not None:
276-
widget_context.setMapCanvas(iface.mapCanvas())
277-
if isinstance(self.alg, QgsProcessingModelAlgorithm):
278-
widget_context.setModel(self.alg)
279-
280-
wrapper.setWidgetContext(widget_context)
281282
widget = wrapper.createWrappedWidget(context)
282-
wrapper.registerProcessingContextGenerator(self.context_generator)
283283
else:
284284
widget = wrapper.widget
285285

python/plugins/processing/gui/ParametersPanel.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ def initWidgets(self):
141141
continue
142142
else:
143143
wrapper = WidgetWrapperFactory.create_wrapper(param, self.parent)
144+
wrapper.setWidgetContext(widget_context)
145+
wrapper.registerProcessingContextGenerator(self.context_generator)
144146
self.wrappers[param.name()] = wrapper
145147

146148
# For compatibility with 3.x API, we need to check whether the wrapper is
@@ -149,9 +151,7 @@ def initWidgets(self):
149151
# TODO QGIS 4.0 - remove
150152
is_python_wrapper = issubclass(wrapper.__class__, WidgetWrapper)
151153
if not is_python_wrapper:
152-
wrapper.setWidgetContext(widget_context)
153154
widget = wrapper.createWrappedWidget(self.processing_context)
154-
wrapper.registerProcessingContextGenerator(self.context_generator)
155155
else:
156156
widget = wrapper.widget
157157

python/plugins/processing/modeler/ModelerParametersDialog.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,9 @@ def setupUi(self):
173173
wrapper = WidgetWrapperFactory.create_wrapper(param, self)
174174
self.wrappers[param.name()] = wrapper
175175

176+
wrapper.setWidgetContext(widget_context)
177+
wrapper.registerProcessingContextGenerator(self.context_generator)
176178
if issubclass(wrapper.__class__, QgsProcessingModelerParameterWidget):
177-
wrapper.setWidgetContext(widget_context)
178-
wrapper.registerProcessingContextGenerator(self.context_generator)
179179
widget = wrapper
180180
else:
181181
widget = wrapper.widget

0 commit comments

Comments
 (0)