25
25
26
26
__revision__ = '$Format:%H$'
27
27
28
- import os
29
- from qgis . core import ( QgsApplication ,
30
- QgsProcessingUtils )
28
+ from qgis . core import ( QgsProcessingParameterFile ,
29
+ QgsProcessingParameterVectorLayer ,
30
+ QgsProcessingOutputVectorLayer )
31
31
from processing .algs .qgis .QgisAlgorithm import QgisAlgorithm
32
- from processing .core .parameters import ParameterVector
33
- from processing .core .outputs import OutputVector
34
- from processing .core .parameters import ParameterFile
35
- from processing .tools import dataobjects
36
32
37
33
38
34
class SetVectorStyle (QgisAlgorithm ):
@@ -48,11 +44,12 @@ def __init__(self):
48
44
super ().__init__ ()
49
45
50
46
def initAlgorithm (self , config = None ):
51
- self .addParameter (ParameterVector (self .INPUT ,
52
- self .tr ('Vector layer' )))
53
- self .addParameter (ParameterFile (self .STYLE ,
54
- self .tr ('Style file' ), False , False , 'qml' ))
55
- self .addOutput (OutputVector (self .OUTPUT , self .tr ('Styled' ), True ))
47
+ self .addParameter (QgsProcessingParameterVectorLayer (self .INPUT ,
48
+ self .tr ('Vector layer' )))
49
+ self .addParameter (QgsProcessingParameterFile (self .STYLE ,
50
+ self .tr ('Style file' ), extension = 'qml' ))
51
+ self .addOutput (QgsProcessingOutputVectorLayer (self .INPUT ,
52
+ self .tr ('Styled' )))
56
53
57
54
def name (self ):
58
55
return 'setstyleforvectorlayer'
@@ -61,13 +58,8 @@ def displayName(self):
61
58
return self .tr ('Set style for vector layer' )
62
59
63
60
def processAlgorithm (self , parameters , context , feedback ):
64
- filename = self .getParameterValue (self .INPUT )
65
-
66
- style = self .getParameterValue (self .STYLE )
67
- layer = QgsProcessingUtils .mapLayerFromString (filename , context , False )
68
- if layer is None :
69
- dataobjects .load (filename , os .path .basename (filename ), style = style )
70
- else :
71
- layer .loadNamedStyle (style )
72
- context .addLayerToLoadOnCompletion (layer .id ())
73
- layer .triggerRepaint ()
61
+ layer = self .parameterAsVectorLayer (parameters , self .INPUT , context )
62
+ style = self .parameterAsFile (parameters , self .STYLE , context )
63
+ layer .loadNamedStyle (style )
64
+ layer .triggerRepaint ()
65
+ return {self .INPUT : layer }
0 commit comments