@@ -20,7 +20,7 @@ def getRasterLayers():
20
20
21
21
for layer in layers :
22
22
if layer .type () == layer .RasterLayer :
23
- if os . path . exists ( layer .source ()) :#only file-based layers
23
+ if layer . usesProvider () and layer .providerKey () == 'gdal' :#only gdal file-based layers
24
24
raster .append (layer )
25
25
return raster
26
26
@@ -31,27 +31,25 @@ def getVectorLayers(shapetype=-1):
31
31
for layer in layers :
32
32
if layer .type () == layer .VectorLayer :
33
33
if shapetype == QGisLayers .ALL_TYPES or layer .geometryType () == shapetype :
34
- if os .path .exists (layer .source ()):
35
- vector .append (layer )
34
+ # if os.path.exists(layer.source()):
35
+ vector .append (layer )
36
36
return vector
37
37
38
38
@staticmethod
39
39
def getAllLayers ():
40
- layers = QGisLayers .iface .legendInterface ().layers ()
41
- layerslist = list ()
42
- for layer in layers :
43
- if os .path .exists (layer .source ()):
44
- layerslist .append (layer )
45
- return layerslist
40
+ layers = []
41
+ layers += QGisLayers .getRasterLayers ();
42
+ layers += QGisLayers .getVectorLayers ();
43
+ return layers
46
44
47
45
@staticmethod
48
46
def getTables ():
49
47
layers = QGisLayers .iface .legendInterface ().layers ()
50
48
tables = list ()
51
49
for layer in layers :
52
50
if layer .type () == layer .VectorLayer :
53
- uri = str (layer .dataProvider (). dataSourceUri ())
54
- if ( uri .endswith ("shp" ) ):
51
+ uri = str (layer .source ())
52
+ if uri .endswith ("csv" ) or uri . endswith ( "dbf" ):
55
53
tables .append (layer )
56
54
return tables
57
55
@@ -71,42 +69,41 @@ def load(layer, name = None, crs = None, style = None):
71
69
return
72
70
prjSetting = None
73
71
settings = QSettings ()
74
- try :
72
+ if crs != None :
73
+ prjSetting = settings .value ("/Projections/defaultBehaviour" )
74
+ settings .setValue ("/Projections/defaultBehaviour" , QVariant ("" ))
75
+ if name == None :
76
+ name = path .split (layer )[1 ]
77
+ qgslayer = QgsVectorLayer (layer , name , 'ogr' )
78
+ if qgslayer .isValid ():
75
79
if crs != None :
76
- prjSetting = settings .value ("/Projections/defaultBehaviour" )
77
- settings .setValue ("/Projections/defaultBehaviour" , QVariant ("" ))
78
- if name == None :
79
- name = path .split (layer )[1 ]
80
- qgslayer = QgsVectorLayer (layer , name , 'ogr' )
80
+ qgslayer .setCrs (crs ,False )
81
+ if style == None :
82
+ if qgslayer .geometryType == 0 :
83
+ style = SextanteConfig .getSetting (SextanteConfig .VECTOR_POINT_STYLE )
84
+ elif qgslayer .geometryType == 1 :
85
+ style = SextanteConfig .getSetting (SextanteConfig .VECTOR_LINE_STYLE )
86
+ else :
87
+ style = SextanteConfig .getSetting (SextanteConfig .VECTOR_POLYGON_STYLE )
88
+ qgslayer .loadNamedStyle (style )
89
+ QgsMapLayerRegistry .instance ().addMapLayer (qgslayer )
90
+ else :
91
+ qgslayer = QgsRasterLayer (layer , name )
81
92
if qgslayer .isValid ():
82
93
if crs != None :
83
94
qgslayer .setCrs (crs ,False )
84
95
if style == None :
85
- if qgslayer .geometryType == 0 :
86
- style = SextanteConfig .getSetting (SextanteConfig .VECTOR_POINT_STYLE )
87
- elif qgslayer .geometryType == 1 :
88
- style = SextanteConfig .getSetting (SextanteConfig .VECTOR_LINE_STYLE )
89
- else :
90
- style = SextanteConfig .getSetting (SextanteConfig .VECTOR_POLYGON_STYLE )
96
+ style = SextanteConfig .getSetting (SextanteConfig .RASTER_STYLE )
91
97
qgslayer .loadNamedStyle (style )
92
98
QgsMapLayerRegistry .instance ().addMapLayer (qgslayer )
99
+ QGisLayers .iface .legendInterface ().refreshLayerSymbology (qgslayer )
93
100
else :
94
- qgslayer = QgsRasterLayer (layer , name )
95
- if qgslayer .isValid ():
96
- if crs != None :
97
- qgslayer .setCrs (crs ,False )
98
- if style == None :
99
- style = SextanteConfig .getSetting (SextanteConfig .RASTER_STYLE )
100
- qgslayer .loadNamedStyle (style )
101
- QgsMapLayerRegistry .instance ().addMapLayer (qgslayer )
102
- QGisLayers .iface .legendInterface ().refreshLayerSymbology (qgslayer )
103
- else :
104
- QtGui .QMessageBox .critical (None , "Error" , "Could not load layer: " + str (layer ))
105
- except Exception , e :
106
- QtGui .QMessageBox .critical (None , "Error" , "Could not load layer: " + str (layer ))
107
- finally :
108
- if prjSetting :
109
- settings .setValue ("/Projections/defaultBehaviour" , prjSetting )
101
+ if prjSetting :
102
+ settings .setValue ("/Projections/defaultBehaviour" , prjSetting )
103
+ raise RuntimeError ("Could not load layer: " + str (layer )
104
+ + "\n Check the SEXTANTE log to look for errors in algorithm execution" )
105
+ if prjSetting :
106
+ settings .setValue ("/Projections/defaultBehaviour" , prjSetting )
110
107
111
108
112
109
@staticmethod
0 commit comments