@@ -70,9 +70,6 @@ class ModelerParameterDefinitionDialog(QDialog):
70
70
PARAMETER_CRS = 'CRS'
71
71
PARAMETER_MULTIPLE = 'Multiple input'
72
72
73
- # To add
74
- PARAMETER_FIXED_TABLE = 'Fixed table'
75
-
76
73
paramTypes = [
77
74
PARAMETER_BOOLEAN ,
78
75
PARAMETER_EXTENT ,
@@ -98,32 +95,15 @@ def __init__(self, alg, paramType=None, param=None):
98
95
99
96
def setupUi (self ):
100
97
self .setWindowTitle (self .tr ('Parameter definition' ))
98
+ self .setMinimumWidth (300 )
101
99
102
100
self .verticalLayout = QVBoxLayout (self )
103
- self .verticalLayout .setSpacing (40 )
104
101
self .verticalLayout .setMargin (20 )
105
102
106
- self .horizontalLayoutName = QHBoxLayout (self )
107
- self .horizontalLayoutName .setSpacing (2 )
108
- self .horizontalLayoutName .setMargin (0 )
109
103
self .label = QLabel (self .tr ('Parameter name' ))
110
- self .horizontalLayoutName .addWidget (self .label )
104
+ self .verticalLayout .addWidget (self .label )
111
105
self .nameTextBox = QLineEdit ()
112
- self .horizontalLayoutName .addWidget (self .nameTextBox )
113
- self .verticalLayout .addLayout (self .horizontalLayoutName )
114
-
115
- self .horizontalLayoutRequired = QHBoxLayout (self )
116
- self .horizontalLayoutRequired .setSpacing (2 )
117
- self .horizontalLayoutRequired .setMargin (0 )
118
- self .horizontalLayoutParent = QHBoxLayout (self )
119
- self .horizontalLayoutParent .setSpacing (2 )
120
- self .horizontalLayoutParent .setMargin (0 )
121
- self .horizontalLayoutDefault = QHBoxLayout (self )
122
- self .horizontalLayoutDefault .setSpacing (2 )
123
- self .horizontalLayoutDefault .setMargin (0 )
124
- self .horizontalLayoutDatatype = QHBoxLayout (self )
125
- self .horizontalLayoutDatatype .setSpacing (2 )
126
- self .horizontalLayoutDatatype .setMargin (0 )
106
+ self .verticalLayout .addWidget (self .nameTextBox )
127
107
128
108
if isinstance (self .param , Parameter ):
129
109
self .nameTextBox .setText (self .param .description )
@@ -134,12 +114,11 @@ def setupUi(self):
134
114
self .state .setText (self .tr ('Checked' ))
135
115
self .state .setChecked (False )
136
116
if self .param is not None :
137
- self .state .setChecked (True if self .param .value else False )
138
- self .horizontalLayoutParent .addWidget (self .state )
139
- self .verticalLayout .addLayout (self .horizontalLayoutParent )
117
+ self .state .setChecked (bool (self .param .value ))
118
+ self .verticalLayout .addWidget (self .state )
140
119
elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_TABLE_FIELD or \
141
120
isinstance (self .param , ParameterTableField ):
142
- self .horizontalLayoutParent .addWidget (QLabel (self .tr ('Parent layer' )))
121
+ self .verticalLayout .addWidget (QLabel (self .tr ('Parent layer' )))
143
122
self .parentCombo = QComboBox ()
144
123
idx = 0
145
124
for param in list (self .alg .inputs .values ()):
@@ -149,40 +128,36 @@ def setupUi(self):
149
128
if self .param .parent == param .param .name :
150
129
self .parentCombo .setCurrentIndex (idx )
151
130
idx += 1
152
- self .horizontalLayoutParent .addWidget (self .parentCombo )
153
- self .verticalLayout .addLayout (self .horizontalLayoutParent )
131
+ self .verticalLayout .addWidget (self .parentCombo )
154
132
155
133
# add the datatype selector
156
- self .horizontalLayoutDatatype .addWidget (QLabel (self .tr ('Allowed '
157
- 'data type' )))
134
+ self .verticalLayout .addWidget (QLabel (self .tr ('Allowed data type' )))
158
135
self .datatypeCombo = QComboBox ()
159
136
self .datatypeCombo .addItem (self .tr ('Any' ), - 1 )
160
137
self .datatypeCombo .addItem (self .tr ('Number' ), 0 )
161
138
self .datatypeCombo .addItem (self .tr ('String' ), 1 )
162
- self .horizontalLayoutDatatype .addWidget (self .datatypeCombo )
139
+ self .verticalLayout .addWidget (self .datatypeCombo )
163
140
164
141
if self .param is not None and self .param .datatype is not None :
165
142
# QComboBoxes indexes start at 0,
166
143
# self.param.datatype start with -1 that is why I need to do +1
167
- datatype_index = self .param .datatype + 1
168
- self .datatypeCombo .setCurrentIndex (datatype_index )
169
- self .verticalLayout .addLayout (self .horizontalLayoutDatatype )
144
+ datatypeIndex = self .param .datatype + 1
145
+ self .datatypeCombo .setCurrentIndex (datatypeIndex )
170
146
171
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_VECTOR or \
172
- isinstance (self .param , ParameterVector ):
173
- self .horizontalLayoutParent .addWidget (QLabel (self .tr ('Shape type' )))
147
+ elif ( self .paramType == ModelerParameterDefinitionDialog .PARAMETER_VECTOR or
148
+ isinstance (self .param , ParameterVector )) :
149
+ self .verticalLayout .addWidget (QLabel (self .tr ('Shape type' )))
174
150
self .shapetypeCombo = QComboBox ()
175
151
self .shapetypeCombo .addItem (self .tr ('Any' ))
176
152
self .shapetypeCombo .addItem (self .tr ('Point' ))
177
153
self .shapetypeCombo .addItem (self .tr ('Line' ))
178
154
self .shapetypeCombo .addItem (self .tr ('Polygon' ))
179
155
if self .param is not None :
180
156
self .shapetypeCombo .setCurrentIndex (self .param .datatype [0 ] + 1 )
181
- self .horizontalLayoutParent .addWidget (self .shapetypeCombo )
182
- self .verticalLayout .addLayout (self .horizontalLayoutParent )
183
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_MULTIPLE or \
184
- isinstance (self .param , ParameterMultipleInput ):
185
- self .horizontalLayoutParent .addWidget (QLabel (self .tr ('Data type' )))
157
+ self .verticalLayout .addWidget (self .shapetypeCombo )
158
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_MULTIPLE or
159
+ isinstance (self .param , ParameterMultipleInput )):
160
+ self .verticalLayout .addWidget (QLabel (self .tr ('Data type' )))
186
161
self .datatypeCombo = QComboBox ()
187
162
self .datatypeCombo .addItem (self .tr ('Vector (any)' ))
188
163
self .datatypeCombo .addItem (self .tr ('Vector (point)' ))
@@ -192,19 +167,18 @@ def setupUi(self):
192
167
self .datatypeCombo .addItem (self .tr ('File' ))
193
168
if self .param is not None :
194
169
self .datatypeCombo .setCurrentIndex (self .param .datatype + 1 )
195
- self .horizontalLayoutParent .addWidget (self .datatypeCombo )
196
- self .verticalLayout .addLayout (self .horizontalLayoutParent )
197
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_NUMBER or \
198
- isinstance (self .param , ParameterNumber ):
199
- self .horizontalLayoutParent .addWidget (QLabel (self .tr ('Min/Max values' )))
170
+ self .verticalLayout .addWidget (self .datatypeCombo )
171
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_NUMBER or
172
+ isinstance (self .param , ParameterNumber )):
173
+ self .verticalLayout .addWidget (QLabel (self .tr ('Min value' )))
200
174
self .minTextBox = QLineEdit ()
175
+ self .verticalLayout .addWidget (self .minTextBox )
176
+ self .verticalLayout .addWidget (QLabel (self .tr ('Max value' )))
201
177
self .maxTextBox = QLineEdit ()
178
+ self .verticalLayout .addWidget (self .maxTextBox )
202
179
if self .param is not None :
203
180
self .minTextBox .setText (str (self .param .min ))
204
181
self .maxTextBox .setText (str (self .param .max ))
205
- self .horizontalLayoutParent .addWidget (self .minTextBox )
206
- self .horizontalLayoutParent .addWidget (self .maxTextBox )
207
- self .verticalLayout .addLayout (self .horizontalLayoutParent )
208
182
self .horizontalLayoutDefault .addWidget (QLabel (self .tr ('Default value' )))
209
183
self .defaultTextBox = QLineEdit ()
210
184
self .defaultTextBox .setText (self .tr ('0' ))
@@ -213,54 +187,47 @@ def setupUi(self):
213
187
if self .param .isInteger :
214
188
default = int (math .floor (default ))
215
189
if default :
216
- self .defaultTextBox .setText (str (default ))
217
- self .horizontalLayoutDefault .addWidget (self .defaultTextBox )
218
- self .verticalLayout .addLayout (self .horizontalLayoutDefault )
219
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_STRING or \
220
- isinstance (self .param , ParameterString ):
221
- self .horizontalLayoutParent .addWidget (QLabel (self .tr ('Default value' )))
190
+ self .defaultTextBox .setText (unicode (default ))
191
+ self .verticalLayout .addWidget (self .defaultTextBox )
192
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_STRING or
193
+ isinstance (self .param , ParameterString )):
194
+ self .verticalLayout .addWidget (QLabel (self .tr ('Default value' )))
222
195
self .defaultTextBox = QLineEdit ()
223
196
if self .param is not None :
224
197
self .defaultTextBox .setText (self .param .default )
225
- self .horizontalLayoutParent .addWidget (self .defaultTextBox )
226
- self .verticalLayout .addLayout (self .horizontalLayoutParent )
227
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_FILE or \
228
- isinstance (self .param , ParameterFile ):
229
- self .horizontalLayoutParent .addWidget (QLabel (self .tr ('Type' )))
198
+ self .verticalLayout .addWidget (self .defaultTextBox )
199
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_FILE or
200
+ isinstance (self .param , ParameterFile )):
201
+ self .verticalLayout .addWidget (QLabel (self .tr ('Type' )))
230
202
self .fileFolderCombo = QComboBox ()
231
203
self .fileFolderCombo .addItem (self .tr ('File' ))
232
204
self .fileFolderCombo .addItem (self .tr ('Folder' ))
233
205
if self .param is not None :
234
206
self .fileFolderCombo .setCurrentIndex (
235
207
1 if self .param .isFolder else 0 )
236
- self .horizontalLayoutParent .addWidget (self .fileFolderCombo )
237
- self .verticalLayout .addLayout (self .horizontalLayoutParent )
238
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_POINT or \
239
- isinstance (self .param , ParameterPoint ):
240
- self .horizontalLayoutParent .addWidget (QLabel (self .tr ('Default value' )))
208
+ self .verticalLayout .addWidget (self .fileFolderCombo )
209
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_POINT or
210
+ isinstance (self .param , ParameterPoint )):
211
+ self .verticalLayout .addWidget (QLabel (self .tr ('Default value' )))
241
212
self .defaultTextBox = QLineEdit ()
242
213
if self .param is not None :
243
214
self .defaultTextBox .setText (self .param .default )
244
- self .horizontalLayoutParent .addWidget (self .defaultTextBox )
245
- self .verticalLayout .addLayout (self .horizontalLayoutParent )
246
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_CRS or \
247
- isinstance (self .param , ParameterCrs ):
248
- self .horizontalLayoutParent .addWidget (QLabel (self .tr ('Default value' )))
215
+ self .verticalLayout .addWidget (self .defaultTextBox )
216
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_CRS or
217
+ isinstance (self .param , ParameterCrs )):
218
+ self .verticalLayout .addWidget (QLabel (self .tr ('Default value' )))
249
219
self .defaultTextBox = CrsSelectionPanel ('EPSG:4326' )
250
220
if self .param is not None :
251
221
self .defaultTextBox .setAuthId (self .param .default )
252
- self .horizontalLayoutParent .addWidget (self .defaultTextBox )
253
- self .verticalLayout .addLayout (self .horizontalLayoutParent )
222
+ self .verticalLayout .addWidget (self .defaultTextBox )
254
223
255
- self .horizontalLayoutRequired .addWidget (QLabel (self .tr ('Required' )))
256
- self .yesNoCombo = QComboBox ()
257
- self .yesNoCombo .addItem (self .tr ('Yes' ))
258
- self .yesNoCombo .addItem (self .tr ('No' ))
259
- self .horizontalLayoutRequired .addWidget (self .yesNoCombo )
224
+ self .verticalLayout .addSpacing (20 )
225
+ self .requiredCheck = QCheckBox ()
226
+ self .requiredCheck .setText (self .tr ('Mandatory' ))
227
+ self .requiredCheck .setChecked (True )
260
228
if self .param is not None :
261
- self .yesNoCombo .setCurrentIndex (
262
- 1 if self .param .optional else 0 )
263
- self .verticalLayout .addLayout (self .horizontalLayoutRequired )
229
+ self .requiredCheck .setChecked (self .param .optional )
230
+ self .verticalLayout .addWidget (self .requiredCheck )
264
231
265
232
self .buttonBox = QDialogButtonBox (self )
266
233
self .buttonBox .setOrientation (Qt .Horizontal )
@@ -270,6 +237,7 @@ def setupUi(self):
270
237
self .buttonBox .accepted .connect (self .okPressed )
271
238
self .buttonBox .rejected .connect (self .cancelPressed )
272
239
240
+ self .verticalLayout .addStretch ()
273
241
self .verticalLayout .addWidget (self .buttonBox )
274
242
275
243
self .setLayout (self .verticalLayout )
@@ -290,51 +258,53 @@ def okPressed(self):
290
258
name = safeName .lower () + str (i )
291
259
else :
292
260
name = self .param .name
293
- if self .paramType \
294
- == ModelerParameterDefinitionDialog .PARAMETER_BOOLEAN \
295
- or isinstance (self .param , ParameterBoolean ):
296
- self .param = ParameterBoolean (name , description ,
297
- self .state .isChecked ())
298
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_TABLE_FIELD \
299
- or isinstance (self .param , ParameterTableField ):
261
+ if (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_BOOLEAN
262
+ or isinstance (self .param , ParameterBoolean )):
263
+ self .param = ParameterBoolean (name , description , self .state .isChecked ())
264
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_TABLE_FIELD
265
+ or isinstance (self .param , ParameterTableField )):
300
266
if self .parentCombo .currentIndex () < 0 :
301
267
QMessageBox .warning (self , self .tr ('Unable to define parameter' ),
302
268
self .tr ('Wrong or missing parameter values' ))
303
269
return
304
270
parent = self .parentCombo .itemData (self .parentCombo .currentIndex ())
305
271
datatype = self .datatypeCombo .itemData (self .datatypeCombo .currentIndex ())
306
272
self .param = ParameterTableField (name , description , parent , datatype )
307
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_RASTER or \
308
- isinstance (self .param , ParameterRaster ):
273
+ elif ( self .paramType == ModelerParameterDefinitionDialog .PARAMETER_RASTER or
274
+ isinstance (self .param , ParameterRaster )) :
309
275
self .param = ParameterRaster (
310
- name , description ,
311
- self .yesNoCombo .currentIndex () == 1 )
312
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_TABLE or \
313
- isinstance (self .param , ParameterTable ):
276
+ name , description )
277
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_TABLE or
278
+ isinstance (self .param , ParameterTable )):
314
279
self .param = ParameterTable (
315
- name , description ,
316
- self .yesNoCombo .currentIndex () == 1 )
317
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_VECTOR or \
318
- isinstance (self .param , ParameterVector ):
280
+ name , description )
281
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_VECTOR or
282
+ isinstance (self .param , ParameterVector )):
319
283
self .param = ParameterVector (
320
284
name , description ,
321
- [self .shapetypeCombo .currentIndex () - 1 ],
322
- self .yesNoCombo .currentIndex () == 1 )
323
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_MULTIPLE or \
324
- isinstance (self .param , ParameterMultipleInput ):
285
+ [self .shapetypeCombo .currentIndex () - 1 ])
286
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_MULTIPLE or
287
+ isinstance (self .param , ParameterMultipleInput )):
325
288
self .param = ParameterMultipleInput (
326
289
name , description ,
327
- self .datatypeCombo .currentIndex () - 1 ,
328
- self .yesNoCombo .currentIndex () == 1 )
329
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_NUMBER or \
330
- isinstance (self .param , ParameterNumber ):
290
+ self .datatypeCombo .currentIndex () - 1 )
291
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_NUMBER or
292
+ isinstance (self .param , ParameterNumber )):
331
293
try :
294
+ < << << << 8 d5f46e6e491417b3449d4beca6ad490e6d2c5fe
332
295
vmin = str (self .minTextBox .text ()).strip ()
296
+ == == == =
297
+ vmin = self .minTextBox .text ().strip ()
298
+ >> >> >> > [processing ] UI improvement for defining model parameters
333
299
if vmin == '' :
334
300
vmin = None
335
301
else :
336
302
vmin = float (vmin )
303
+ << << < << 8 d5f46e6e491417b3449d4beca6ad490e6d2c5fe
337
304
vmax = str (self .maxTextBox .text ()).strip ()
305
+ == == == =
306
+ vmax = self .maxTextBox .text ().strip ()
307
+ >> >> > >> [processing ] UI improvement for defining model parameters
338
308
if vmax == '' :
339
309
vmax = None
340
310
else :
@@ -345,25 +315,39 @@ def okPressed(self):
345
315
QMessageBox .warning (self , self .tr ('Unable to define parameter' ),
346
316
self .tr ('Wrong or missing parameter values' ))
347
317
return
348
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_STRING or \
349
- isinstance (self .param , ParameterString ):
318
+ elif ( self .paramType == ModelerParameterDefinitionDialog .PARAMETER_STRING or
319
+ isinstance (self .param , ParameterString )) :
350
320
self .param = ParameterString (name , description ,
321
+ << << << < 8 d5f46e6e491417b3449d4beca6ad490e6d2c5fe
351
322
str (self .defaultTextBox .text ()))
352
323
elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_EXTENT or \
353
324
isinstance (self .param , ParameterExtent ):
325
+ == == == =
326
+ unicode (self .defaultTextBox .text ()))
327
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_EXTENT or
328
+ isinstance (self .param , ParameterExtent )):
329
+ >> > >> > > [processing ] UI improvement for defining model parameters
354
330
self .param = ParameterExtent (name , description )
355
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_FILE or \
356
- isinstance (self .param , ParameterFile ):
331
+ elif ( self .paramType == ModelerParameterDefinitionDialog .PARAMETER_FILE or
332
+ isinstance (self .param , ParameterFile )) :
357
333
isFolder = self .fileFolderCombo .currentIndex () == 1
358
334
self .param = ParameterFile (name , description , isFolder = isFolder )
359
- elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_POINT or \
360
- isinstance (self .param , ParameterPoint ):
335
+ elif ( self .paramType == ModelerParameterDefinitionDialog .PARAMETER_POINT or
336
+ isinstance (self .param , ParameterPoint )) :
361
337
self .param = ParameterPoint (name , description ,
338
+ << << << < 8 d5f46e6e491417b3449d4beca6ad490e6d2c5fe
362
339
str (self .defaultTextBox .text ()))
363
340
elif self .paramType == ModelerParameterDefinitionDialog .PARAMETER_CRS or \
364
341
isinstance (self .param , ParameterCrs ):
365
342
self .param = ParameterCrs (name , description , self .defaultTextBox .getValue (), self .yesNoCombo .currentIndex () == 1 )
366
343
self .param .optional = self .yesNoCombo .currentIndex () == 1
344
+ == == == =
345
+ unicode (self .defaultTextBox .text ()))
346
+ elif (self .paramType == ModelerParameterDefinitionDialog .PARAMETER_CRS or
347
+ isinstance (self .param , ParameterCrs )):
348
+ self .param = ParameterCrs (name , description , self .defaultTextbox .getValue ())
349
+ self .param .optional = self .requiredCheck .isChecked ()
350
+ >> >> > >> [processing ] UI improvement for defining model parameters
367
351
self .close ()
368
352
369
353
def cancelPressed (self ):
0 commit comments