Skip to content

Commit f4e49dd

Browse files
authored
Merge pull request #6081 from radosuav/fix_style_algs
[Processing] Fix "Set style for raster/vector layer" algorithms.
2 parents 6d3199f + 77a28dd commit f4e49dd

File tree

2 files changed

+11
-18
lines changed

2 files changed

+11
-18
lines changed

python/plugins/processing/algs/qgis/SetRasterStyle.py

+7-14
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@
2727

2828
import os
2929

30-
from qgis.PyQt.QtXml import QDomDocument
31-
3230
from processing.core.GeoAlgorithm import GeoAlgorithm
3331
from processing.core.parameters import ParameterFile
3432
from processing.core.parameters import ParameterRaster
@@ -54,19 +52,14 @@ def defineCharacteristics(self):
5452

5553
def processAlgorithm(self, progress):
5654
filename = self.getParameterValue(self.INPUT)
57-
layer = dataobjects.getObjectFromUri(filename)
58-
5955
style = self.getParameterValue(self.STYLE)
56+
57+
dataobjects.resetLoadedLayers()
58+
layer = dataobjects.getObjectFromUri(filename, False)
6059
if layer is None:
61-
dataobjects.load(filename, os.path.basename(filename), style=style)
62-
self.getOutputFromName(self.OUTPUT).open = False
60+
dataobjects.load(filename, os.path.basename(filename), style=style, isRaster=True)
6361
else:
64-
with open(style) as f:
65-
xml = "".join(f.readlines())
66-
d = QDomDocument()
67-
d.setContent(xml)
68-
n = d.firstChild()
69-
layer.readSymbology(n, '')
70-
self.setOutputValue(self.OUTPUT, filename)
71-
iface.mapCanvas().refresh()
62+
layer.loadNamedStyle(style)
63+
layer.triggerRepaint()
7264
iface.legendInterface().refreshLayerSymbology(layer)
65+
self.setOutputValue(self.OUTPUT, filename)

python/plugins/processing/algs/qgis/SetVectorStyle.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@ def defineCharacteristics(self):
5252

5353
def processAlgorithm(self, progress):
5454
filename = self.getParameterValue(self.INPUT)
55-
5655
style = self.getParameterValue(self.STYLE)
56+
57+
dataobjects.resetLoadedLayers()
5758
layer = dataobjects.getObjectFromUri(filename, False)
5859
if layer is None:
5960
dataobjects.load(filename, os.path.basename(filename), style=style)
60-
self.getOutputFromName(self.OUTPUT).open = False
6161
else:
6262
layer.loadNamedStyle(style)
63-
iface.mapCanvas().refresh()
64-
iface.legendInterface().refreshLayerSymbology(layer)
6563
layer.triggerRepaint()
64+
iface.legendInterface().refreshLayerSymbology(layer)
65+
self.setOutputValue(self.OUTPUT, filename)

0 commit comments

Comments
 (0)