Skip to content

Commit 3c7f5c9

Browse files
committedJun 20, 2014
[processing] Modified styling algs to work with layer that are not open in qgis
1 parent e8d4732 commit 3c7f5c9

File tree

2 files changed

+26
-17
lines changed

2 files changed

+26
-17
lines changed
 

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

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
__revision__ = '$Format:%H$'
2727

28+
import os
2829
from PyQt4.QtCore import *
2930
from PyQt4.QtXml import *
3031
from qgis.core import *
@@ -46,7 +47,7 @@ def defineCharacteristics(self):
4647
self.allowOnlyOpenedLayers = True
4748
self.name = 'Set style for raster layer'
4849
self.group = 'Raster general tools'
49-
self.addParameter(ParameterRaster(self.INPUT, 'Vector layer'))
50+
self.addParameter(ParameterRaster(self.INPUT, 'Raster layer'))
5051
self.addParameter(ParameterFile(self.STYLE,
5152
'Style file', False, False, 'qml'))
5253
self.addOutput(OutputRaster(self.OUTPUT, 'Styled layer', True))
@@ -56,12 +57,16 @@ def processAlgorithm(self, progress):
5657
layer = dataobjects.getObjectFromUri(filename)
5758

5859
style = self.getParameterValue(self.STYLE)
59-
with open(style) as f:
60-
xml = "".join(f.readlines())
61-
d = QDomDocument();
62-
d.setContent(xml);
63-
n = d.firstChild();
64-
layer.readSymbology(n, '')
65-
self.setOutputValue(self.OUTPUT, filename)
66-
iface.mapCanvas().refresh()
67-
iface.legendInterface().refreshLayerSymbology(layer)
60+
if layer is None:
61+
dataobjects.load(filename, os.path.basename(filename), style=style)
62+
self.getOutputFromName(self.OUTPUT).open = False
63+
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()
72+
iface.legendInterface().refreshLayerSymbology(layer)

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

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
__revision__ = '$Format:%H$'
2727

28+
import os
2829
from PyQt4.QtCore import *
2930
from qgis.core import *
3031
from processing.core.GeoAlgorithm import GeoAlgorithm
@@ -42,7 +43,7 @@ class SetVectorStyle(GeoAlgorithm):
4243

4344

4445
def defineCharacteristics(self):
45-
self.allowOnlyOpenedLayers = True
46+
#self.allowOnlyOpenedLayers = True
4647
self.name = 'Set style for vector layer'
4748
self.group = 'Vector general tools'
4849
self.addParameter(ParameterVector(self.INPUT, 'Vector layer',
@@ -51,13 +52,16 @@ def defineCharacteristics(self):
5152
'Style file', False, False, 'qml'))
5253
self.addOutput(OutputVector(self.OUTPUT, 'Styled layer', True))
5354

54-
def processAlgorithm(self, progress):
55+
def processAlgorithm(self, progress):
5556
filename = self.getParameterValue(self.INPUT)
5657
layer = dataobjects.getObjectFromUri(filename)
5758

5859
style = self.getParameterValue(self.STYLE)
59-
layer.loadNamedStyle(style)
60-
61-
self.setOutputValue(self.OUTPUT, filename)
62-
iface.mapCanvas().refresh()
63-
iface.legendInterface().refreshLayerSymbology(layer)
60+
layer = dataobjects.getObjectFromUri(filename, False)
61+
if layer is None:
62+
dataobjects.load(filename, os.path.basename(filename), style=style)
63+
self.getOutputFromName(self.OUTPUT).open = False
64+
else:
65+
layer.loadNamedStyle(style)
66+
iface.mapCanvas().refresh()
67+
iface.legendInterface().refreshLayerSymbology(layer)

0 commit comments

Comments
 (0)
Please sign in to comment.