@@ -490,13 +490,13 @@ def createWidget(self):
490490 return widget
491491
492492 def refresh (self ):
493- self .widget .cmbText .clear ()
494- layers = dataobjects .getRasterLayers (self )
495- layers .sort (key = lambda lay : lay .name ())
493+ items = []
494+ layers = dataobjects .getRasterLayers ()
496495 if self .param .optional :
497- self . widget . cmbText . addItem ( self .NOT_SELECTED , None )
496+ items . append (( self .NOT_SELECTED , None ) )
498497 for layer in layers :
499- self .widget .cmbText .addItem (getExtendedLayerName (layer ), layer )
498+ items .append ((getExtendedLayerName (layer ), layer ))
499+ self .widget .update (items )
500500
501501 def setValue (self , value ):
502502 if self .dialogType == DIALOG_STANDARD :
@@ -551,9 +551,15 @@ class VectorWidgetWrapper(WidgetWrapper):
551551
552552 def createWidget (self ):
553553 if self .dialogType == DIALOG_STANDARD :
554- widget = QComboBox ()
555- self ._populate (widget )
556- widget .currentIndexChanged .connect (lambda : self .widgetValueHasChanged .emit (self ))
554+ layers = dataobjects .getVectorLayers (self .param .datatype )
555+ items = []
556+ if self .param .optional :
557+ items .append ((self .NOT_SELECTED , None ))
558+ for layer in layers :
559+ items .append ((getExtendedLayerName (layer ), layer ))
560+ widget = InputLayerSelectorPanel (items , self .param )
561+ widget .name = self .param .name
562+ widget .valueChanged .connect (lambda : self .widgetValueHasChanged .emit (self ))
557563 return widget
558564 elif self .dialogType == DIALOG_BATCH :
559565 widget = BatchInputSelectionPanel (self .param , self .row , self .col , self .dialog )
@@ -570,14 +576,16 @@ def createWidget(self):
570576 return widget
571577
572578 def _populate (self , widget ):
573- widget . clear ()
579+ items = []
574580 layers = dataobjects .getVectorLayers (self .param .datatype )
575581 layers .sort (key = lambda lay : lay .name ())
576582 if self .param .optional :
577- widget . addItem ( self .NOT_SELECTED , None )
583+ items . append (( self .NOT_SELECTED , None ) )
578584 for layer in layers :
579- widget .addItem (getExtendedLayerName (layer ), layer )
580- widget .name = self .param .name
585+ items .append ((getExtendedLayerName (layer ), layer ))
586+ self .widget .update (items )
587+
588+
581589
582590 def refresh (self ):
583591 self ._populate (self .widget )
0 commit comments