Skip to content

Commit c65cc92

Browse files
committedOct 5, 2016
[processing] improved widgets for raster and vector layers in modeler
1 parent c8f35fb commit c65cc92

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed
 

‎python/plugins/processing/gui/wrappers.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
***************************************************************************
1919
"""
2020

21+
2122
__author__ = 'Arnaud Morvan'
2223
__date__ = 'May 2016'
2324
__copyright__ = '(C) 2016, Arnaud Morvan'
@@ -28,6 +29,7 @@
2829

2930

3031
import locale
32+
import os
3133

3234
from qgis.core import QgsCoordinateReferenceSystem
3335
from qgis.PyQt.QtWidgets import QCheckBox, QComboBox, QLineEdit, QPlainTextEdit
@@ -486,6 +488,8 @@ def createWidget(self):
486488
files = self.dialog.getAvailableValuesOfType(ParameterRaster, OutputRaster)
487489
for f in files:
488490
widget.addItem(self.dialog.resolveValueDescription(f), f)
491+
if self.param.optional:
492+
widget.setEditText("")
489493
return widget
490494

491495
def refresh(self):
@@ -512,7 +516,10 @@ def value(self):
512516
return self.widget.getText()
513517
else:
514518
def validator(v):
515-
return bool(v) or self.param.optional
519+
if not bool(v):
520+
return self.param.optional
521+
else:
522+
return os.path.exists(v)
516523
return self.comboValue(validator)
517524

518525

@@ -555,10 +562,11 @@ def createWidget(self):
555562
else:
556563
widget = QComboBox()
557564
layers = self.dialog.getAvailableValuesOfType(ParameterVector, OutputVector)
558-
if self.param.optional:
559-
widget.addItem(self.NOT_SELECTED, None)
565+
widget.setEditable(True)
560566
for layer in layers:
561567
widget.addItem(self.dialog.resolveValueDescription(layer), layer)
568+
if self.param.optional:
569+
widget.setEditText("")
562570
return widget
563571

564572
def _populate(self, widget):
@@ -594,7 +602,10 @@ def value(self):
594602
return self.widget.getText()
595603
else:
596604
def validator(v):
597-
return bool(v) or self.param.optional
605+
if not bool(v):
606+
return self.param.optional
607+
else:
608+
return os.path.exists(v)
598609
return self.comboValue(validator)
599610

600611
class StringWidgetWrapper(WidgetWrapper):

0 commit comments

Comments
 (0)
Please sign in to comment.