@@ -901,6 +901,7 @@ def selectFile(self):
901
901
self .combo .setCurrentIndex (self .combo .findText (filename ))
902
902
else :
903
903
self .combo .setEditText (filename )
904
+ self .widgetValueHasChanged .emit (self )
904
905
905
906
def setValue (self , value ):
906
907
if value is None or value == NULL :
@@ -918,6 +919,7 @@ def setValue(self, value):
918
919
self .widget .setText (value )
919
920
else :
920
921
self .setComboValue (value , combobox = self .combo )
922
+ self .widgetValueHasChanged .emit (self )
921
923
922
924
def value (self ):
923
925
if self .dialogType == DIALOG_STANDARD :
@@ -962,6 +964,7 @@ def selectFile(self):
962
964
self .combo .setCurrentIndex (self .combo .findText (filename ))
963
965
else :
964
966
self .combo .setEditText (filename )
967
+ self .widgetValueHasChanged .emit (self )
965
968
966
969
967
970
class EnumWidgetWrapper (WidgetWrapper ):
@@ -1136,6 +1139,7 @@ def selectFile(self):
1136
1139
self .combo .setCurrentIndex (self .combo .findText (filename ))
1137
1140
else :
1138
1141
self .combo .setEditText (filename )
1142
+ self .widgetValueHasChanged .emit (self )
1139
1143
1140
1144
def setValue (self , value ):
1141
1145
if value is None or value == NULL :
@@ -1153,6 +1157,7 @@ def setValue(self, value):
1153
1157
self .widget .setValue (value )
1154
1158
else :
1155
1159
self .setComboValue (value , combobox = self .combo )
1160
+ self .widgetValueHasChanged .emit (self )
1156
1161
1157
1162
def value (self ):
1158
1163
if self .dialogType == DIALOG_STANDARD :
@@ -1280,6 +1285,10 @@ def validator(v):
1280
1285
1281
1286
class ExpressionWidgetWrapper (WidgetWrapper ):
1282
1287
1288
+ def __init__ (self , param , dialog , row = 0 , col = 0 , ** kwargs ):
1289
+ super ().__init__ (param , dialog , row , col , ** kwargs )
1290
+ self .context = dataobjects .createContext ()
1291
+
1283
1292
def createWidget (self ):
1284
1293
if self .dialogType in (DIALOG_STANDARD , DIALOG_BATCH ):
1285
1294
if self .param .parentLayerParameterName ():
@@ -1312,11 +1321,10 @@ def parentLayerChanged(self, wrapper):
1312
1321
self .setLayer (wrapper .value ())
1313
1322
1314
1323
def setLayer (self , layer ):
1315
- context = dataobjects .createContext ()
1316
1324
if isinstance (layer , QgsProcessingFeatureSourceDefinition ):
1317
- layer , ok = layer .source .valueAsString (context .expressionContext ())
1325
+ layer , ok = layer .source .valueAsString (self . context .expressionContext ())
1318
1326
if isinstance (layer , str ):
1319
- layer = QgsProcessingUtils .mapLayerFromString (layer , context )
1327
+ layer = QgsProcessingUtils .mapLayerFromString (layer , self . context )
1320
1328
self .widget .setLayer (layer )
1321
1329
1322
1330
def setValue (self , value ):
@@ -1433,6 +1441,7 @@ def selectFile(self):
1433
1441
self .combo .setCurrentIndex (self .combo .findText (filename ))
1434
1442
else :
1435
1443
self .combo .setEditText (filename )
1444
+ self .widgetValueHasChanged .emit (self )
1436
1445
1437
1446
def setValue (self , value ):
1438
1447
if value is None or value == NULL :
@@ -1450,6 +1459,7 @@ def setValue(self, value):
1450
1459
return self .widget .setText (value )
1451
1460
else :
1452
1461
self .setComboValue (value , combobox = self .combo )
1462
+ self .widgetValueHasChanged .emit (self )
1453
1463
1454
1464
def value (self ):
1455
1465
if self .dialogType == DIALOG_STANDARD :
@@ -1473,6 +1483,10 @@ def validator(v):
1473
1483
class TableFieldWidgetWrapper (WidgetWrapper ):
1474
1484
NOT_SET = '[Not set]'
1475
1485
1486
+ def __init__ (self , param , dialog , row = 0 , col = 0 , ** kwargs ):
1487
+ super ().__init__ (param , dialog , row , col , ** kwargs )
1488
+ self .context = dataobjects .createContext ()
1489
+
1476
1490
def createWidget (self ):
1477
1491
self ._layer = None
1478
1492
@@ -1516,11 +1530,10 @@ def parentValueChanged(self, wrapper):
1516
1530
self .setLayer (wrapper .value ())
1517
1531
1518
1532
def setLayer (self , layer ):
1519
- context = dataobjects .createContext ()
1520
1533
if isinstance (layer , QgsProcessingFeatureSourceDefinition ):
1521
- layer , ok = layer .source .valueAsString (context .expressionContext ())
1534
+ layer , ok = layer .source .valueAsString (self . context .expressionContext ())
1522
1535
if isinstance (layer , str ):
1523
- layer = QgsProcessingUtils .mapLayerFromString (layer , context )
1536
+ layer = QgsProcessingUtils .mapLayerFromString (layer , self . context )
1524
1537
self ._layer = layer
1525
1538
self .refreshItems ()
1526
1539
@@ -1595,6 +1608,10 @@ def validator(v):
1595
1608
class BandWidgetWrapper (WidgetWrapper ):
1596
1609
NOT_SET = '[Not set]'
1597
1610
1611
+ def __init__ (self , param , dialog , row = 0 , col = 0 , ** kwargs ):
1612
+ super ().__init__ (param , dialog , row , col , ** kwargs )
1613
+ self .context = dataobjects .createContext ()
1614
+
1598
1615
def createWidget (self ):
1599
1616
self ._layer = None
1600
1617
@@ -1626,11 +1643,10 @@ def parentValueChanged(self, wrapper):
1626
1643
self .setLayer (wrapper .value ())
1627
1644
1628
1645
def setLayer (self , layer ):
1629
- context = dataobjects .createContext ()
1630
1646
if isinstance (layer , QgsProcessingParameterRasterLayer ):
1631
- layer , ok = layer .source .valueAsString (context .expressionContext ())
1647
+ layer , ok = layer .source .valueAsString (self . context .expressionContext ())
1632
1648
if isinstance (layer , str ):
1633
- layer = QgsProcessingUtils .mapLayerFromString (layer , context )
1649
+ layer = QgsProcessingUtils .mapLayerFromString (layer , self . context )
1634
1650
self ._layer = layer
1635
1651
self .refreshItems ()
1636
1652
0 commit comments