18
18
***************************************************************************
19
19
"""
20
20
21
+
21
22
__author__ = 'Arnaud Morvan'
22
23
__date__ = 'May 2016'
23
24
__copyright__ = '(C) 2016, Arnaud Morvan'
28
29
29
30
30
31
import locale
32
+ import os
31
33
32
34
from qgis .core import QgsCoordinateReferenceSystem
33
35
from qgis .PyQt .QtWidgets import QCheckBox , QComboBox , QLineEdit , QPlainTextEdit
@@ -486,6 +488,8 @@ def createWidget(self):
486
488
files = self .dialog .getAvailableValuesOfType (ParameterRaster , OutputRaster )
487
489
for f in files :
488
490
widget .addItem (self .dialog .resolveValueDescription (f ), f )
491
+ if self .param .optional :
492
+ widget .setEditText ("" )
489
493
return widget
490
494
491
495
def refresh (self ):
@@ -512,7 +516,10 @@ def value(self):
512
516
return self .widget .getText ()
513
517
else :
514
518
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 )
516
523
return self .comboValue (validator )
517
524
518
525
@@ -555,10 +562,11 @@ def createWidget(self):
555
562
else :
556
563
widget = QComboBox ()
557
564
layers = self .dialog .getAvailableValuesOfType (ParameterVector , OutputVector )
558
- if self .param .optional :
559
- widget .addItem (self .NOT_SELECTED , None )
565
+ widget .setEditable (True )
560
566
for layer in layers :
561
567
widget .addItem (self .dialog .resolveValueDescription (layer ), layer )
568
+ if self .param .optional :
569
+ widget .setEditText ("" )
562
570
return widget
563
571
564
572
def _populate (self , widget ):
@@ -594,7 +602,10 @@ def value(self):
594
602
return self .widget .getText ()
595
603
else :
596
604
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 )
598
609
return self .comboValue (validator )
599
610
600
611
class StringWidgetWrapper (WidgetWrapper ):
0 commit comments