Skip to content

Commit c8abd40

Browse files
committedSep 11, 2018
[processing] Fix gdal algorithm use of old wrapper API
1 parent 0b40ffd commit c8abd40

File tree

4 files changed

+25
-11
lines changed

4 files changed

+25
-11
lines changed
 

‎python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
from processing.gui.MultipleInputPanel import MultipleInputPanel
5050
from processing.gui.NumberInputPanel import NumberInputPanel
5151
from processing.gui.DestinationSelectionPanel import DestinationSelectionPanel
52+
from processing.gui.wrappers import WidgetWrapper
5253
from processing.tools.dataobjects import createContext
5354

5455

@@ -85,10 +86,23 @@ def __init__(self, parent, alg):
8586

8687
def connectParameterSignals(self):
8788
for wrapper in list(self.wrappers.values()):
88-
w = wrapper.widget
89+
wrapper.widgetValueHasChanged.connect(self.parametersHaveChanged)
90+
91+
# TODO - remove when all wrappers correctly emit widgetValueHasChanged!
92+
93+
# For compatibility with 3.x API, we need to check whether the wrapper is
94+
# the deprecated WidgetWrapper class. If not, it's the newer
95+
# QgsAbstractProcessingParameterWidgetWrapper class
96+
# TODO QGIS 4.0 - remove
97+
if issubclass(wrapper.__class__, WidgetWrapper):
98+
w = wrapper.widget
99+
else:
100+
w = wrapper.wrappedWidget()
101+
89102
self.connectWidgetChangedSignals(w)
90103
for c in w.findChildren(QWidget):
91104
self.connectWidgetChangedSignals(c)
105+
92106
for output_widget in self.outputWidgets.values():
93107
self.connectWidgetChangedSignals(output_widget)
94108

‎python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -513,9 +513,9 @@ def updatePanelEnabledState():
513513

514514
def postInitialize(self, wrappers):
515515
for wrapper in wrappers:
516-
if wrapper.param.name() == self.parameterDefinition().parentLayerParameter():
517-
if wrapper.value():
518-
self.setLayer(wrapper.value())
516+
if wrapper.parameterDefinition().name() == self.parameterDefinition().parentLayerParameter():
517+
if wrapper.parameterValue():
518+
self.setLayer(wrapper.parameterValue())
519519
wrapper.widgetValueHasChanged.connect(self.parentLayerChanged)
520520
break
521521

‎python/plugins/processing/algs/qgis/ui/HeatmapWidgets.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,30 +182,30 @@ def postInitialize(self, wrappers):
182182

183183
for wrapper in wrappers:
184184
if wrapper.parameterDefinition().name() == self.param.parent_layer:
185-
self.setSource(wrapper.value())
185+
self.setSource(wrapper.parameterValue())
186186
wrapper.widgetValueHasChanged.connect(self.parentLayerChanged)
187187
elif wrapper.parameterDefinition().name() == self.param.radius_param:
188-
self.setRadius(wrapper.value())
188+
self.setRadius(wrapper.parameterValue())
189189
wrapper.widgetValueHasChanged.connect(self.radiusChanged)
190190
elif wrapper.parameterDefinition().name() == self.param.radius_field_param:
191-
self.setSource(wrapper.value())
191+
self.setSource(wrapper.parameterValue())
192192
wrapper.widgetValueHasChanged.connect(self.radiusFieldChanged)
193193

194194
def parentLayerChanged(self, wrapper):
195-
self.setSource(wrapper.value())
195+
self.setSource(wrapper.parameterValue())
196196

197197
def setSource(self, source):
198198
source = QgsProcessingUtils.variantToSource(source, self.context)
199199
self.widget.setSource(source)
200200

201201
def radiusChanged(self, wrapper):
202-
self.setRadius(wrapper.value())
202+
self.setRadius(wrapper.parameterValue())
203203

204204
def setRadius(self, radius):
205205
self.widget.setRadius(radius)
206206

207207
def radiusFieldChanged(self, wrapper):
208-
self.setRadiusField(wrapper.value())
208+
self.setRadiusField(wrapper.parameterValue())
209209

210210
def setRadiusField(self, radius_field):
211211
self.widget.setRadiusField(radius_field)

‎python/plugins/processing/algs/qgis/ui/ReliefColorsWidget.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ def postInitialize(self, wrappers):
258258
break
259259

260260
def parentValueChanged(self, wrapper):
261-
self.setLayer(wrapper.value())
261+
self.setLayer(wrapper.parameterValue())
262262

263263
def setLayer(self, layer):
264264
if isinstance(layer, QgsMapLayer):

0 commit comments

Comments
 (0)
Please sign in to comment.