Skip to content

Commit 89244ba

Browse files
authored
simplify param value (#10)
* simplify param value * follow-up * fix param * bump pum2
1 parent 2d70347 commit 89244ba

File tree

2 files changed

+7
-39
lines changed

2 files changed

+7
-39
lines changed

oqtopus/gui/parameters_groupbox.py

Lines changed: 6 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -37,37 +37,15 @@ def __init__(self, parameter_definition: ParameterDefinition, parent):
3737
ParameterType.TEXT,
3838
):
3939
self.widget = QLineEdit(self)
40-
self.widget.setPlaceholderText(parameter_definition.default.as_string())
40+
if parameter_definition.default is not None:
41+
self.widget.setPlaceholderText(str(parameter_definition.default))
4142
self.layout.addWidget(self.widget)
4243
if parameter_definition.type == ParameterType.INTEGER:
43-
self.value = lambda: int(self.widget.text())
44+
self.value = lambda: int(self.widget.text() or self.widget.placeholderText())
4445
elif parameter_definition.type == ParameterType.DECIMAL:
45-
self.value = lambda: float(self.widget.text())
46+
self.value = lambda: float(self.widget.text() or self.widget.placeholderText())
4647
else:
47-
self.value = lambda: self.widget.text()
48-
49-
def valueSet(self):
50-
"""
51-
Returns True if the value of the widget is set, False otherwise.
52-
This is used to determine if the parameter has been modified by the user.
53-
"""
54-
if self.widget is None:
55-
return False
56-
57-
if isinstance(self.widget, QCheckBox):
58-
return self.__valueChanged
59-
60-
if isinstance(self.widget, QLineEdit):
61-
return bool(self.widget.text().strip())
62-
63-
return False
64-
65-
def __valueChanged(self):
66-
"""
67-
This method is called when the value of the widget is changed for QCheckBox.
68-
It sets the __valueChanged flag to True, indicating that the value has been modified.
69-
"""
70-
self.__valueChanged = True
48+
self.value = lambda: self.widget.text() or self.widget.placeholderText()
7149

7250

7351
class ParametersGroupBox(QGroupBox):
@@ -88,17 +66,7 @@ def setParameters(self, parameters: list[ParameterDefinition]):
8866
def parameters_values(self):
8967
values = {}
9068
for parameter in self.parameters:
91-
if self.parameter_widgets[parameter.name].valueSet():
92-
values[parameter.name] = self.parameter_widgets[parameter.name].value()
93-
else:
94-
if parameter.type == ParameterType.BOOLEAN:
95-
values[parameter.name] = bool(parameter.default.as_string())
96-
elif parameter.type == ParameterType.INTEGER:
97-
values[parameter.name] = int(parameter.default.as_string())
98-
elif parameter.type == ParameterType.DECIMAL:
99-
values[parameter.name] = float(parameter.default.as_string())
100-
# else:
101-
# values[parameter.name] = parameter.default
69+
values[parameter.name] = self.parameter_widgets[parameter.name].value()
10270
return values
10371

10472
def clean(self):

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
pgserviceparser>=2.4.0,<3.0.0
2-
pum>=1.1.4,<2.0.0
2+
pum>=1.1.7,<2.0.0
33
PyYAML
44
pydantic >=2.0
55
psycopg>=3.1.0,<4.0.0

0 commit comments

Comments
 (0)