[processing] fixed behaviour of select algorithms in modeler

This commit is contained in:
Victor Olaya 2014-06-20 17:58:05 +02:00
parent 2e858c439c
commit b390b3e778
3 changed files with 12 additions and 4 deletions

View File

@ -46,7 +46,6 @@ class SelectByLocation(GeoAlgorithm):
def defineCharacteristics(self):
self.allowOnlyOpenedLayers = True
self.name = 'Select by location'
self.group = 'Vector selection tools'
self.addParameter(ParameterVector(self.INPUT, 'Layer to select from',

View File

@ -1059,7 +1059,6 @@ class mmqgisx_select_algorithm(GeoAlgorithm):
RESULT = 'RESULT'
def defineCharacteristics(self):
self.allowOnlyOpenedLayers = True
self.name = 'Select by attribute'
self.group = 'Vector selection tools'
@ -1087,8 +1086,7 @@ class mmqgisx_select_algorithm(GeoAlgorithm):
def processAlgorithm(self, progress):
filename = self.getParameterValue(self.LAYERNAME)
layer = dataobjects.getObjectFromUri(filename)
layer = dataobjects.getObjectFromUri(filename)
attribute = self.getParameterValue(self.ATTRIBUTE)
comparison = self.comparisons[self.getParameterValue(self.COMPARISON)]
comparisonvalue = self.getParameterValue(self.COMPARISONVALUE)

View File

@ -36,6 +36,12 @@ from processing.tools.system import *
ALL_TYPES = [-1]
_loadedLayers = {}
def resetLoadedLayers():
global _loadedLayers
_loadedLayers = {}
def getSupportedOutputVectorLayerExtensions():
formats = QgsVectorFileWriter.supportedFiltersAndFormats()
exts = ['shp'] # shp is the default, should be the first
@ -206,6 +212,9 @@ def getObjectFromUri(uri, forceLoad=True):
if uri is None:
return None
print _loadedLayers
if uri in _loadedLayers:
return _loadedLayers[uri]
layers = getRasterLayers()
for layer in layers:
if layer.source() == uri:
@ -228,11 +237,13 @@ def getObjectFromUri(uri, forceLoad=True):
if layer.isValid():
if prjSetting:
settings.setValue('/Projections/defaultBehaviour', prjSetting)
_loadedLayers[layer.source()] = layer
return layer
layer = QgsRasterLayer(uri, uri)
if layer.isValid():
if prjSetting:
settings.setValue('/Projections/defaultBehaviour', prjSetting)
_loadedLayers[layer.source()] = layer
return layer
if prjSetting:
settings.setValue('/Projections/defaultBehaviour', prjSetting)