mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
[processing] Correctly set default value for matrix parameters
Fixes #18871
This commit is contained in:
parent
b63733ed96
commit
c68262da7f
@ -81,7 +81,7 @@ class FixedTableDialog(BASE, WIDGET):
|
||||
# Populate table
|
||||
for i in range(rows):
|
||||
for j in range(cols):
|
||||
item = QStandardItem(table[i][j])
|
||||
item = QStandardItem(str(table[i][j]))
|
||||
model.setItem(i, j, item)
|
||||
self.tblView.setModel(model)
|
||||
|
||||
|
@ -56,11 +56,16 @@ class FixedTablePanel(BASE, WIDGET):
|
||||
|
||||
self.btnSelect.clicked.connect(self.showFixedTableDialog)
|
||||
|
||||
def updateSummaryText(self):
|
||||
self.leText.setText(self.tr('Fixed table {0}x{1}').format(
|
||||
len(self.table), len(self.param.headers())))
|
||||
|
||||
def setValue(self, value):
|
||||
self.table = value
|
||||
self.updateSummaryText()
|
||||
|
||||
def showFixedTableDialog(self):
|
||||
dlg = FixedTableDialog(self.param, self.table)
|
||||
dlg.exec_()
|
||||
if dlg.rettable is not None:
|
||||
self.table = dlg.rettable
|
||||
|
||||
self.leText.setText(self.tr('Fixed table {0}x{1}').format(
|
||||
len(self.table), len(self.param.headers())))
|
||||
self.setValue(dlg.rettable)
|
||||
|
@ -559,7 +559,7 @@ class FixedTableWidgetWrapper(WidgetWrapper):
|
||||
return FixedTablePanel(self.param)
|
||||
|
||||
def setValue(self, value):
|
||||
pass
|
||||
self.widget.setValue(value)
|
||||
|
||||
def value(self):
|
||||
if self.dialogType == DIALOG_MODELER:
|
||||
|
@ -28,6 +28,7 @@ __revision__ = '$Format:%H$'
|
||||
from qgis.testing import start_app, unittest
|
||||
from qgis.core import (QgsApplication,
|
||||
QgsCoordinateReferenceSystem,
|
||||
QgsProcessingParameterMatrix,
|
||||
QgsVectorLayer)
|
||||
from qgis.analysis import QgsNativeAlgorithms
|
||||
|
||||
@ -158,6 +159,25 @@ class WrappersTest(unittest.TestCase):
|
||||
|
||||
widget.deleteLater()
|
||||
|
||||
def testMatrix(self):
|
||||
self.checkConstructWrapper(QgsProcessingParameterMatrix('test'), FixedTableWidgetWrapper)
|
||||
|
||||
alg = QgsApplication.processingRegistry().algorithmById('native:centroids')
|
||||
dlg = AlgorithmDialog(alg)
|
||||
param = QgsProcessingParameterMatrix('test', 'test', 2, True, ['x', 'y'], [['a', 'b'], ['c', 'd']])
|
||||
wrapper = FixedTableWidgetWrapper(param, dlg)
|
||||
widget = wrapper.createWidget()
|
||||
|
||||
# check that default value is initially set
|
||||
self.assertEqual(wrapper.value(), [['a', 'b'], ['c', 'd']])
|
||||
|
||||
# test widget
|
||||
widget.show()
|
||||
wrapper.setValue([[1, 2], [3, 4]])
|
||||
self.assertEqual(wrapper.value(), [[1, 2], [3, 4]])
|
||||
|
||||
widget.deleteLater()
|
||||
|
||||
def testNumber(self):
|
||||
self.checkConstructWrapper(QgsProcessingParameterNumber('test'), NumberWidgetWrapper)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user