Skip to content

Commit e742d5e

Browse files
committedDec 24, 2012
fix python plugins after API cleanup
1 parent 6880a76 commit e742d5e

File tree

17 files changed

+559
-559
lines changed

17 files changed

+559
-559
lines changed
 

‎python/plugins/GdalTools/tools/GdalTools_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ def isRaster(self, layer):
176176
# only gdal raster layers
177177
if layer.type() != layer.RasterLayer:
178178
return False
179-
if layer.usesProvider() and layer.providerKey() != 'gdal':
179+
if layer.providerType() != 'gdal':
180180
return False
181181
return True
182182

‎python/plugins/db_manager/db_plugins/postgis/plugins/qgis_topoview/__init__.py

Lines changed: 156 additions & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,20 @@
3434
# @param db is the selected database
3535
# @param mainwindow is the DBManager mainwindow
3636
def load(db, mainwindow):
37-
# check whether the selected database has topology enabled
38-
# (search for topology.topology)
39-
sql = u"""SELECT count(*)
40-
FROM pg_class AS cls JOIN pg_namespace AS nsp ON nsp.oid = cls.relnamespace
41-
WHERE cls.relname = 'topology' AND nsp.nspname = 'topology'"""
42-
c = db.connector._get_cursor()
43-
db.connector._execute( c, sql )
44-
res = db.connector._fetchone( c )
45-
if res == None or int(res[0]) <= 0:
46-
return
47-
48-
# add the action to the DBManager menu
49-
action = QAction( QIcon(), "&TopoViewer", db )
50-
mainwindow.registerAction( action, "&Schema", run )
37+
# check whether the selected database has topology enabled
38+
# (search for topology.topology)
39+
sql = u"""SELECT count(*)
40+
FROM pg_class AS cls JOIN pg_namespace AS nsp ON nsp.oid = cls.relnamespace
41+
WHERE cls.relname = 'topology' AND nsp.nspname = 'topology'"""
42+
c = db.connector._get_cursor()
43+
db.connector._execute( c, sql )
44+
res = db.connector._fetchone( c )
45+
if res == None or int(res[0]) <= 0:
46+
return
47+
48+
# add the action to the DBManager menu
49+
action = QAction( QIcon(), "&TopoViewer", db )
50+
mainwindow.registerAction( action, "&Schema", run )
5151

5252

5353
# The run function is called once the user clicks on the action TopoViewer
@@ -56,146 +56,146 @@ def load(db, mainwindow):
5656
# @param action is the clicked action on the DBManager menu/toolbar
5757
# @param mainwindow is the DBManager mainwindow
5858
def run(item, action, mainwindow):
59-
db = item.database()
60-
uri = db.uri()
61-
conninfo = uri.connectionInfo()
62-
iface = mainwindow.iface
63-
64-
quoteId = db.connector.quoteId
65-
quoteStr = db.connector.quoteString
66-
67-
# check if the selected item is a topology schema
68-
isTopoSchema = False
69-
70-
if not hasattr(item, 'schema'):
71-
QMessageBox.critical(mainwindow, "Invalid topology", u'Select a topology schema to continue.')
72-
return False
73-
74-
if item.schema() != None:
75-
sql = u"SELECT count(*) FROM topology.topology WHERE name = %s" % quoteStr(item.schema().name)
76-
c = db.connector._get_cursor()
77-
db.connector._execute( c, sql )
78-
res = db.connector._fetchone( c )
79-
isTopoSchema = res != None and int(res[0]) > 0
80-
81-
if not isTopoSchema:
82-
QMessageBox.critical(mainwindow, "Invalid topology", u'Schema "%s" is not registered in topology.topology.' % item.schema().name)
83-
return False
84-
85-
# load layers into the current project
86-
toponame = item.schema().name
87-
template_dir = os.path.join(current_path, 'templates')
88-
registry = QgsMapLayerRegistry.instance()
89-
legend = iface.legendInterface()
90-
91-
# do not refresh the canvas until all the layers are added
92-
prevRenderFlagState = iface.mapCanvas().renderFlag()
93-
iface.mapCanvas().setRenderFlag( False )
94-
try:
95-
# NOTE: -1 parent is an attempt to always add to the root, but
96-
# it is currently broken: http://hub.qgis.org/issues/6879
97-
group = legend.addGroup(u'%s topology' % toponame, False, -1)
98-
99-
provider = db.dbplugin().providerName()
100-
uri = db.uri();
101-
102-
# face
103-
layer = db.toSqlLayer(u'SELECT face_id, topology.ST_GetFaceGeometry(%s, face_id) as geom ' \
104-
'FROM %s.face WHERE face_id > 0' % (quoteStr(toponame), quoteId(toponame)),
105-
'geom', 'face_id', u'%s.face' % toponame)
106-
layer.loadNamedStyle(os.path.join(template_dir, 'face.qml'))
107-
registry.addMapLayer(layer)
108-
legend.setLayerVisible(layer, False)
109-
legend.setLayerExpanded(layer, False)
110-
legend.moveLayer(layer, group)
111-
112-
# node
113-
uri.setDataSource(toponame, 'node', 'geom', '', 'node_id')
114-
layer = QgsVectorLayer(uri.uri(), u'%s.nodes' % toponame, provider)
115-
layer.loadNamedStyle(os.path.join(template_dir, 'node.qml'))
116-
registry.addMapLayer(layer)
117-
legend.setLayerVisible(layer, False)
118-
legend.setLayerExpanded(layer, False)
119-
legend.moveLayer(layer, group)
120-
121-
# node labels
122-
uri.setDataSource(toponame, 'node', 'geom', '', 'node_id')
123-
layer = QgsVectorLayer(uri.uri(), u'%s.node label' % toponame, provider)
124-
layer.loadNamedStyle(os.path.join(template_dir, 'node_label.qml'))
125-
registry.addMapLayer(layer)
126-
legend.setLayerVisible(layer, False)
127-
legend.setLayerExpanded(layer, False)
128-
legend.moveLayer(layer, group)
129-
130-
# edge
131-
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
132-
layer = QgsVectorLayer(uri.uri(), u'%s.edge' % toponame, provider)
133-
layer.loadNamedStyle(os.path.join(template_dir, 'edge.qml'))
134-
registry.addMapLayer(layer)
135-
legend.setLayerVisible(layer, False)
136-
legend.setLayerExpanded(layer, False)
137-
legend.moveLayer(layer, group)
138-
139-
# edge labels
140-
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
141-
layer = QgsVectorLayer(uri.uri(), u'%s.edge label' % toponame, provider)
142-
layer.loadNamedStyle(os.path.join(template_dir, 'edge_label.qml'))
143-
registry.addMapLayer(layer)
144-
legend.setLayerVisible(layer, False)
145-
legend.setLayerExpanded(layer, False)
146-
legend.moveLayer(layer, group)
147-
148-
# face_left
149-
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
150-
layer = QgsVectorLayer(uri.uri(), u'%s.face_left' % toponame, provider)
151-
layer.loadNamedStyle(os.path.join(template_dir, 'face_left.qml'))
152-
registry.addMapLayer(layer)
153-
legend.setLayerVisible(layer, False)
154-
legend.setLayerExpanded(layer, False)
155-
legend.moveLayer(layer, group)
156-
157-
# face_right
158-
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
159-
layer = QgsVectorLayer(uri.uri(), u'%s.face_right' % toponame, provider)
160-
layer.loadNamedStyle(os.path.join(template_dir, 'face_right.qml'))
161-
registry.addMapLayer(layer)
162-
legend.setLayerVisible(layer, False)
163-
legend.setLayerExpanded(layer, False)
164-
legend.moveLayer(layer, group)
165-
166-
# next_left
167-
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
168-
layer = QgsVectorLayer(uri.uri(), u'%s.next_left' % toponame, provider)
169-
layer.loadNamedStyle(os.path.join(template_dir, 'next_left.qml'))
170-
registry.addMapLayer(layer)
171-
legend.setLayerVisible(layer, False)
172-
legend.setLayerExpanded(layer, False)
173-
legend.moveLayer(layer, group)
174-
175-
# next_right
176-
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
177-
layer = QgsVectorLayer(uri.uri(), u'%s.next_right' % toponame, provider)
178-
layer.loadNamedStyle(os.path.join(template_dir, 'next_right.qml'))
179-
registry.addMapLayer(layer)
180-
legend.setLayerVisible(layer, False)
181-
legend.setLayerExpanded(layer, False)
182-
legend.moveLayer(layer, group)
183-
184-
# face_seed
185-
layer = db.toSqlLayer(u'SELECT face_id, ST_PointOnSurface(topology.ST_GetFaceGeometry(%s, face_id)) as geom ' \
186-
'FROM %s.face WHERE face_id > 0' % (quoteStr(toponame), quoteId(toponame)),
187-
'geom', 'face_id', u'%s.face_seed' % toponame)
188-
layer.loadNamedStyle(os.path.join(template_dir, 'face_seed.qml'))
189-
registry.addMapLayer(layer)
190-
legend.setLayerVisible(layer, False)
191-
legend.setLayerExpanded(layer, False)
192-
legend.moveLayer(layer, group)
193-
194-
# TODO: add polygon0, polygon1 and polygon2 ?
195-
196-
finally:
197-
# restore canvas render flag
198-
iface.mapCanvas().setRenderFlag( prevRenderFlagState )
199-
200-
return True
59+
db = item.database()
60+
uri = db.uri()
61+
conninfo = uri.connectionInfo()
62+
iface = mainwindow.iface
63+
64+
quoteId = db.connector.quoteId
65+
quoteStr = db.connector.quoteString
66+
67+
# check if the selected item is a topology schema
68+
isTopoSchema = False
69+
70+
if not hasattr(item, 'schema'):
71+
QMessageBox.critical(mainwindow, "Invalid topology", u'Select a topology schema to continue.')
72+
return False
73+
74+
if item.schema() != None:
75+
sql = u"SELECT count(*) FROM topology.topology WHERE name = %s" % quoteStr(item.schema().name)
76+
c = db.connector._get_cursor()
77+
db.connector._execute( c, sql )
78+
res = db.connector._fetchone( c )
79+
isTopoSchema = res != None and int(res[0]) > 0
80+
81+
if not isTopoSchema:
82+
QMessageBox.critical(mainwindow, "Invalid topology", u'Schema "%s" is not registered in topology.topology.' % item.schema().name)
83+
return False
84+
85+
# load layers into the current project
86+
toponame = item.schema().name
87+
template_dir = os.path.join(current_path, 'templates')
88+
registry = QgsMapLayerRegistry.instance()
89+
legend = iface.legendInterface()
90+
91+
# do not refresh the canvas until all the layers are added
92+
prevRenderFlagState = iface.mapCanvas().renderFlag()
93+
iface.mapCanvas().setRenderFlag( False )
94+
try:
95+
# NOTE: -1 parent is an attempt to always add to the root, but
96+
# it is currently broken: http://hub.qgis.org/issues/6879
97+
group = legend.addGroup(u'%s topology' % toponame, False, -1)
98+
99+
provider = db.dbplugin().providerName()
100+
uri = db.uri();
101+
102+
# face
103+
layer = db.toSqlLayer(u'SELECT face_id, topology.ST_GetFaceGeometry(%s, face_id) as geom ' \
104+
'FROM %s.face WHERE face_id > 0' % (quoteStr(toponame), quoteId(toponame)),
105+
'geom', 'face_id', u'%s.face' % toponame)
106+
layer.loadNamedStyle(os.path.join(template_dir, 'face.qml'))
107+
registry.addMapLayers([layer])
108+
legend.setLayerVisible(layer, False)
109+
legend.setLayerExpanded(layer, False)
110+
legend.moveLayer(layer, group)
111+
112+
# node
113+
uri.setDataSource(toponame, 'node', 'geom', '', 'node_id')
114+
layer = QgsVectorLayer(uri.uri(), u'%s.nodes' % toponame, provider)
115+
layer.loadNamedStyle(os.path.join(template_dir, 'node.qml'))
116+
registry.addMapLayers([layer])
117+
legend.setLayerVisible(layer, False)
118+
legend.setLayerExpanded(layer, False)
119+
legend.moveLayer(layer, group)
120+
121+
# node labels
122+
uri.setDataSource(toponame, 'node', 'geom', '', 'node_id')
123+
layer = QgsVectorLayer(uri.uri(), u'%s.node label' % toponame, provider)
124+
layer.loadNamedStyle(os.path.join(template_dir, 'node_label.qml'))
125+
registry.addMapLayers([layer])
126+
legend.setLayerVisible(layer, False)
127+
legend.setLayerExpanded(layer, False)
128+
legend.moveLayer(layer, group)
129+
130+
# edge
131+
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
132+
layer = QgsVectorLayer(uri.uri(), u'%s.edge' % toponame, provider)
133+
layer.loadNamedStyle(os.path.join(template_dir, 'edge.qml'))
134+
registry.addMapLayers([layer])
135+
legend.setLayerVisible(layer, False)
136+
legend.setLayerExpanded(layer, False)
137+
legend.moveLayer(layer, group)
138+
139+
# edge labels
140+
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
141+
layer = QgsVectorLayer(uri.uri(), u'%s.edge label' % toponame, provider)
142+
layer.loadNamedStyle(os.path.join(template_dir, 'edge_label.qml'))
143+
registry.addMapLayers([layer])
144+
legend.setLayerVisible(layer, False)
145+
legend.setLayerExpanded(layer, False)
146+
legend.moveLayer(layer, group)
147+
148+
# face_left
149+
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
150+
layer = QgsVectorLayer(uri.uri(), u'%s.face_left' % toponame, provider)
151+
layer.loadNamedStyle(os.path.join(template_dir, 'face_left.qml'))
152+
registry.addMapLayers([layer])
153+
legend.setLayerVisible(layer, False)
154+
legend.setLayerExpanded(layer, False)
155+
legend.moveLayer(layer, group)
156+
157+
# face_right
158+
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
159+
layer = QgsVectorLayer(uri.uri(), u'%s.face_right' % toponame, provider)
160+
layer.loadNamedStyle(os.path.join(template_dir, 'face_right.qml'))
161+
registry.addMapLayers([layer])
162+
legend.setLayerVisible(layer, False)
163+
legend.setLayerExpanded(layer, False)
164+
legend.moveLayer(layer, group)
165+
166+
# next_left
167+
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
168+
layer = QgsVectorLayer(uri.uri(), u'%s.next_left' % toponame, provider)
169+
layer.loadNamedStyle(os.path.join(template_dir, 'next_left.qml'))
170+
registry.addMapLayers([layer])
171+
legend.setLayerVisible(layer, False)
172+
legend.setLayerExpanded(layer, False)
173+
legend.moveLayer(layer, group)
174+
175+
# next_right
176+
uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
177+
layer = QgsVectorLayer(uri.uri(), u'%s.next_right' % toponame, provider)
178+
layer.loadNamedStyle(os.path.join(template_dir, 'next_right.qml'))
179+
registry.addMapLayers([layer])
180+
legend.setLayerVisible(layer, False)
181+
legend.setLayerExpanded(layer, False)
182+
legend.moveLayer(layer, group)
183+
184+
# face_seed
185+
layer = db.toSqlLayer(u'SELECT face_id, ST_PointOnSurface(topology.ST_GetFaceGeometry(%s, face_id)) as geom ' \
186+
'FROM %s.face WHERE face_id > 0' % (quoteStr(toponame), quoteId(toponame)),
187+
'geom', 'face_id', u'%s.face_seed' % toponame)
188+
layer.loadNamedStyle(os.path.join(template_dir, 'face_seed.qml'))
189+
registry.addMapLayers([layer])
190+
legend.setLayerVisible(layer, False)
191+
legend.setLayerExpanded(layer, False)
192+
legend.moveLayer(layer, group)
193+
194+
# TODO: add polygon0, polygon1 and polygon2 ?
195+
196+
finally:
197+
# restore canvas render flag
198+
iface.mapCanvas().setRenderFlag( prevRenderFlagState )
199+
200+
return True
201201

‎python/plugins/db_manager/db_tree.py

Lines changed: 87 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -29,121 +29,121 @@
2929
from .db_plugins.plugin import DBPlugin, Schema, Table
3030

3131
class DBTree(QTreeView):
32-
def __init__(self, mainWindow):
33-
QTreeView.__init__(self, mainWindow)
34-
self.mainWindow = mainWindow
32+
def __init__(self, mainWindow):
33+
QTreeView.__init__(self, mainWindow)
34+
self.mainWindow = mainWindow
3535

36-
self.setModel( DBModel(self) )
37-
self.setHeaderHidden(True)
38-
self.setEditTriggers(QTreeView.EditKeyPressed|QTreeView.SelectedClicked)
36+
self.setModel( DBModel(self) )
37+
self.setHeaderHidden(True)
38+
self.setEditTriggers(QTreeView.EditKeyPressed|QTreeView.SelectedClicked)
3939

40-
self.setDragEnabled(True)
41-
self.setAcceptDrops(True)
42-
self.setDropIndicatorShown(True)
40+
self.setDragEnabled(True)
41+
self.setAcceptDrops(True)
42+
self.setDropIndicatorShown(True)
4343

44-
self.connect(self.selectionModel(), SIGNAL("currentChanged(const QModelIndex&, const QModelIndex&)"), self.currentItemChanged)
45-
self.connect(self, SIGNAL("expanded(const QModelIndex&)"), self.itemChanged)
46-
self.connect(self, SIGNAL("collapsed(const QModelIndex&)"), self.itemChanged)
47-
self.connect(self.model(), SIGNAL("dataChanged(const QModelIndex&, const QModelIndex&)"), self.modelDataChanged)
48-
self.connect(self.model(), SIGNAL("notPopulated"), self.collapse)
44+
self.connect(self.selectionModel(), SIGNAL("currentChanged(const QModelIndex&, const QModelIndex&)"), self.currentItemChanged)
45+
self.connect(self, SIGNAL("expanded(const QModelIndex&)"), self.itemChanged)
46+
self.connect(self, SIGNAL("collapsed(const QModelIndex&)"), self.itemChanged)
47+
self.connect(self.model(), SIGNAL("dataChanged(const QModelIndex&, const QModelIndex&)"), self.modelDataChanged)
48+
self.connect(self.model(), SIGNAL("notPopulated"), self.collapse)
4949

50-
def refreshItem(self, item=None):
51-
if item == None:
52-
item = self.currentItem()
53-
if item == None: return
54-
self.model().refreshItem(item)
50+
def refreshItem(self, item=None):
51+
if item == None:
52+
item = self.currentItem()
53+
if item == None: return
54+
self.model().refreshItem(item)
5555

56-
def showSystemTables(self, show):
57-
pass
56+
def showSystemTables(self, show):
57+
pass
5858

59-
def currentItem(self):
60-
indexes = self.selectedIndexes()
61-
if len(indexes) <= 0:
62-
return
63-
return self.model().getItem(indexes[0])
59+
def currentItem(self):
60+
indexes = self.selectedIndexes()
61+
if len(indexes) <= 0:
62+
return
63+
return self.model().getItem(indexes[0])
6464

6565

66-
def currentDatabase(self):
67-
item = self.currentItem()
68-
if item == None: return
66+
def currentDatabase(self):
67+
item = self.currentItem()
68+
if item == None: return
6969

70-
if isinstance(item, (DBPlugin, Schema, Table)):
71-
return item.database()
72-
return None
70+
if isinstance(item, (DBPlugin, Schema, Table)):
71+
return item.database()
72+
return None
7373

74-
def currentSchema(self):
75-
item = self.currentItem()
76-
if item == None: return
74+
def currentSchema(self):
75+
item = self.currentItem()
76+
if item == None: return
7777

78-
if isinstance(item, (Schema, Table)):
79-
return item.schema()
80-
return None
78+
if isinstance(item, (Schema, Table)):
79+
return item.schema()
80+
return None
8181

82-
def currentTable(self):
83-
item = self.currentItem()
84-
if item == None: return
82+
def currentTable(self):
83+
item = self.currentItem()
84+
if item == None: return
8585

86-
if isinstance(item, Table):
87-
return item
88-
return None
86+
if isinstance(item, Table):
87+
return item
88+
return None
8989

9090

91-
def itemChanged(self, index):
92-
self.setCurrentIndex(index)
93-
self.emit( SIGNAL('selectedItemChanged'), self.currentItem() )
91+
def itemChanged(self, index):
92+
self.setCurrentIndex(index)
93+
self.emit( SIGNAL('selectedItemChanged'), self.currentItem() )
9494

95-
def modelDataChanged(self, indexFrom, indexTo):
96-
self.itemChanged(indexTo)
95+
def modelDataChanged(self, indexFrom, indexTo):
96+
self.itemChanged(indexTo)
9797

98-
def currentItemChanged(self, current, previous):
99-
self.itemChanged(current)
98+
def currentItemChanged(self, current, previous):
99+
self.itemChanged(current)
100100

101-
def contextMenuEvent(self, ev):
102-
index = self.indexAt( ev.pos() )
103-
if not index.isValid():
104-
return
101+
def contextMenuEvent(self, ev):
102+
index = self.indexAt( ev.pos() )
103+
if not index.isValid():
104+
return
105105

106-
if index != self.currentIndex():
107-
self.itemChanged(index)
106+
if index != self.currentIndex():
107+
self.itemChanged(index)
108108

109-
item = self.currentItem()
109+
item = self.currentItem()
110110

111-
menu = QMenu(self)
111+
menu = QMenu(self)
112112

113-
if isinstance(item, (Table, Schema)):
114-
menu.addAction("Rename", self.rename)
115-
menu.addAction("Delete", self.delete)
113+
if isinstance(item, (Table, Schema)):
114+
menu.addAction("Rename", self.rename)
115+
menu.addAction("Delete", self.delete)
116116

117-
if isinstance(item, Table):
118-
menu.addSeparator()
119-
menu.addAction("Add to QGis canvas", self.addLayer)
117+
if isinstance(item, Table):
118+
menu.addSeparator()
119+
menu.addAction("Add to QGis canvas", self.addLayer)
120120

121-
elif isinstance(item, DBPlugin) and item.database() is not None:
122-
menu.addAction("Re-connect", self.reconnect)
121+
elif isinstance(item, DBPlugin) and item.database() is not None:
122+
menu.addAction("Re-connect", self.reconnect)
123123

124-
if not menu.isEmpty():
125-
menu.exec_(ev.globalPos())
124+
if not menu.isEmpty():
125+
menu.exec_(ev.globalPos())
126126

127-
menu.deleteLater()
127+
menu.deleteLater()
128128

129-
def rename(self):
130-
index = self.currentIndex()
131-
item = self.model().getItem(index)
132-
if isinstance(item, (Table, Schema)):
133-
self.edit( index )
129+
def rename(self):
130+
index = self.currentIndex()
131+
item = self.model().getItem(index)
132+
if isinstance(item, (Table, Schema)):
133+
self.edit( index )
134134

135-
def delete(self):
136-
item = self.currentItem()
137-
if isinstance(item, (Table, Schema)):
138-
self.mainWindow.invokeCallback(item.database().deleteActionSlot)
135+
def delete(self):
136+
item = self.currentItem()
137+
if isinstance(item, (Table, Schema)):
138+
self.mainWindow.invokeCallback(item.database().deleteActionSlot)
139139

140-
def addLayer(self):
141-
table = self.currentTable()
142-
if table is not None:
143-
QgsMapLayerRegistry.instance().addMapLayer(table.toMapLayer())
140+
def addLayer(self):
141+
table = self.currentTable()
142+
if table is not None:
143+
QgsMapLayerRegistry.instance().addMapLayers([table.toMapLayer()])
144144

145-
def reconnect(self):
146-
db = self.currentDatabase()
147-
if db is not None:
148-
self.mainWindow.invokeCallback(db.reconnectActionSlot)
145+
def reconnect(self):
146+
db = self.currentDatabase()
147+
if db is not None:
148+
self.mainWindow.invokeCallback(db.reconnectActionSlot)
149149

‎python/plugins/db_manager/dlg_sql_window.py

Lines changed: 189 additions & 189 deletions
Original file line numberDiff line numberDiff line change
@@ -35,193 +35,193 @@
3535

3636
class DlgSqlWindow(QDialog, Ui_Dialog):
3737

38-
def __init__(self, iface, db, parent=None):
39-
QDialog.__init__(self, parent)
40-
self.iface = iface
41-
self.db = db
42-
self.setupUi(self)
43-
self.setWindowTitle( u"%s - %s [%s]" % (self.windowTitle(), db.connection().connectionName(), db.connection().typeNameString()) )
44-
45-
self.defaultLayerName = 'QueryLayer'
46-
47-
settings = QSettings()
48-
self.restoreGeometry(settings.value("/DB_Manager/sqlWindow/geometry").toByteArray())
49-
50-
self.editSql.setAcceptRichText(False)
51-
SqlCompleter(self.editSql, self.db)
52-
SqlHighlighter(self.editSql, self.db)
53-
54-
# allow to copy results
55-
copyAction = QAction("copy", self)
56-
self.viewResult.addAction( copyAction )
57-
copyAction.setShortcuts(QKeySequence.Copy)
58-
QObject.connect(copyAction, SIGNAL("triggered()"), self.copySelectedResults)
59-
60-
self.connect(self.btnExecute, SIGNAL("clicked()"), self.executeSql)
61-
self.connect(self.btnClear, SIGNAL("clicked()"), self.clearSql)
62-
self.connect(self.buttonBox.button(QDialogButtonBox.Close), SIGNAL("clicked()"), self.close)
63-
64-
# hide the load query as layer if feature is not supported
65-
self._loadAsLayerAvailable = self.db.connector.hasCustomQuerySupport()
66-
self.loadAsLayerGroup.setVisible( self._loadAsLayerAvailable )
67-
if self._loadAsLayerAvailable:
68-
self.layerTypeWidget.hide() # show if load as raster is supported
69-
self.connect(self.loadLayerBtn, SIGNAL("clicked()"), self.loadSqlLayer)
70-
self.connect(self.getColumnsBtn, SIGNAL("clicked()"), self.fillColumnCombos)
71-
self.connect(self.loadAsLayerGroup, SIGNAL("toggled(bool)"), self.loadAsLayerToggled)
72-
self.loadAsLayerToggled(False)
73-
74-
75-
def closeEvent(self, e):
76-
""" save window state """
77-
settings = QSettings()
78-
settings.setValue("/DB_Manager/sqlWindow/geometry", QVariant(self.saveGeometry()))
79-
80-
QDialog.closeEvent(self, e)
81-
82-
def loadAsLayerToggled(self, checked):
83-
self.loadAsLayerGroup.setChecked( checked )
84-
self.loadAsLayerWidget.setVisible( checked )
85-
86-
def getSql(self):
87-
# If the selection obtained from an editor spans a line break,
88-
# the text will contain a Unicode U+2029 paragraph separator
89-
# character instead of a newline \n character
90-
# (see https://qt-project.org/doc/qt-4.8/qtextcursor.html#selectedText)
91-
sql = self.editSql.textCursor().selectedText().replace(unichr(0x2029), "\n")
92-
if sql.isEmpty():
93-
sql = self.editSql.toPlainText()
94-
# try to sanitize query
95-
sql = sql.replace( QRegExp( ";\\s*$" ), "" )
96-
return sql
97-
98-
def clearSql(self):
99-
self.editSql.clear()
100-
101-
def executeSql(self):
102-
sql = self.getSql()
103-
if sql.isEmpty(): return
104-
105-
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
106-
107-
# delete the old model
108-
old_model = self.viewResult.model()
109-
self.viewResult.setModel(None)
110-
if old_model: old_model.deleteLater()
111-
112-
self.uniqueCombo.clear()
113-
self.geomCombo.clear()
114-
115-
try:
116-
# set the new model
117-
model = self.db.sqlResultModel( sql, self )
118-
self.viewResult.setModel( model )
119-
self.lblResult.setText("%d rows, %.1f seconds" % (model.affectedRows(), model.secs()))
120-
121-
except BaseError, e:
122-
QApplication.restoreOverrideCursor()
123-
DlgDbError.showError(e, self)
124-
return
125-
126-
cols = self.viewResult.model().columnNames()
127-
cols.sort()
128-
self.uniqueCombo.addItems( cols )
129-
self.geomCombo.addItems( cols )
130-
131-
self.update()
132-
QApplication.restoreOverrideCursor()
133-
134-
def loadSqlLayer(self):
135-
uniqueFieldName = self.uniqueCombo.currentText()
136-
geomFieldName = self.geomCombo.currentText()
137-
138-
if geomFieldName.isEmpty() or uniqueFieldName.isEmpty():
139-
QMessageBox.warning(self, self.tr( "Sorry" ), self.tr( "You must fill the required fields: \ngeometry column - column with unique integer values" ) )
140-
return
141-
142-
query = self.getSql()
143-
if query.isEmpty():
144-
return
145-
146-
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
147-
148-
from qgis.core import QgsMapLayer, QgsMapLayerRegistry
149-
layerType = QgsMapLayer.VectorLayer if self.vectorRadio.isChecked() else QgsMapLayer.RasterLayer
150-
151-
# get a new layer name
152-
names = []
153-
for layer in QgsMapLayerRegistry.instance().mapLayers().values():
154-
names.append( layer.name() )
155-
156-
layerName = self.layerNameEdit.text()
157-
if layerName.isEmpty():
158-
layerName = self.defaultLayerName
159-
newLayerName = layerName
160-
index = 1
161-
while newLayerName in names:
162-
index += 1
163-
newLayerName = u"%s_%d" % (layerName, index)
164-
165-
# create the layer
166-
layer = self.db.toSqlLayer(query, geomFieldName, uniqueFieldName, newLayerName, layerType, self.avoidSelectById.isChecked())
167-
if layer.isValid():
168-
QgsMapLayerRegistry.instance().addMapLayer(layer, True)
169-
170-
QApplication.restoreOverrideCursor()
171-
172-
def fillColumnCombos(self):
173-
query = self.getSql()
174-
if query.isEmpty(): return
175-
176-
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
177-
self.uniqueCombo.clear()
178-
self.geomCombo.clear()
179-
180-
# get a new alias
181-
aliasIndex = 0
182-
while True:
183-
alias = "_%s__%d" % ("subQuery", aliasIndex)
184-
escaped = '\\b("?)' + QRegExp.escape(alias) + '\\1\\b'
185-
if not query.contains( QRegExp(escaped, Qt.CaseInsensitive) ):
186-
break
187-
aliasIndex += 1
188-
189-
# get all the columns
190-
cols = []
191-
connector = self.db.connector
192-
sql = u"SELECT * FROM (%s\n) AS %s LIMIT 0" % ( unicode(query), connector.quoteId(alias) )
193-
194-
c = None
195-
try:
196-
c = connector._execute(None, sql)
197-
cols = connector._get_cursor_columns(c)
198-
199-
except BaseError as e:
200-
QApplication.restoreOverrideCursor()
201-
DlgDbError.showError(e, self)
202-
return
203-
204-
finally:
205-
if c:
206-
c.close()
207-
del c
208-
209-
cols.sort()
210-
self.uniqueCombo.addItems( cols )
211-
self.geomCombo.addItems( cols )
212-
213-
QApplication.restoreOverrideCursor()
214-
215-
def copySelectedResults(self):
216-
if len(self.viewResult.selectedIndexes()) <= 0:
217-
return
218-
model = self.viewResult.model()
219-
220-
# convert to string using tab as separator
221-
text = model.headerToString( "\t" )
222-
for idx in self.viewResult.selectionModel().selectedRows():
223-
text += "\n" + model.rowToString( idx.row(), "\t" )
224-
225-
QApplication.clipboard().setText( text, QClipboard.Selection )
226-
QApplication.clipboard().setText( text, QClipboard.Clipboard )
38+
def __init__(self, iface, db, parent=None):
39+
QDialog.__init__(self, parent)
40+
self.iface = iface
41+
self.db = db
42+
self.setupUi(self)
43+
self.setWindowTitle( u"%s - %s [%s]" % (self.windowTitle(), db.connection().connectionName(), db.connection().typeNameString()) )
44+
45+
self.defaultLayerName = 'QueryLayer'
46+
47+
settings = QSettings()
48+
self.restoreGeometry(settings.value("/DB_Manager/sqlWindow/geometry").toByteArray())
49+
50+
self.editSql.setAcceptRichText(False)
51+
SqlCompleter(self.editSql, self.db)
52+
SqlHighlighter(self.editSql, self.db)
53+
54+
# allow to copy results
55+
copyAction = QAction("copy", self)
56+
self.viewResult.addAction( copyAction )
57+
copyAction.setShortcuts(QKeySequence.Copy)
58+
QObject.connect(copyAction, SIGNAL("triggered()"), self.copySelectedResults)
59+
60+
self.connect(self.btnExecute, SIGNAL("clicked()"), self.executeSql)
61+
self.connect(self.btnClear, SIGNAL("clicked()"), self.clearSql)
62+
self.connect(self.buttonBox.button(QDialogButtonBox.Close), SIGNAL("clicked()"), self.close)
63+
64+
# hide the load query as layer if feature is not supported
65+
self._loadAsLayerAvailable = self.db.connector.hasCustomQuerySupport()
66+
self.loadAsLayerGroup.setVisible( self._loadAsLayerAvailable )
67+
if self._loadAsLayerAvailable:
68+
self.layerTypeWidget.hide() # show if load as raster is supported
69+
self.connect(self.loadLayerBtn, SIGNAL("clicked()"), self.loadSqlLayer)
70+
self.connect(self.getColumnsBtn, SIGNAL("clicked()"), self.fillColumnCombos)
71+
self.connect(self.loadAsLayerGroup, SIGNAL("toggled(bool)"), self.loadAsLayerToggled)
72+
self.loadAsLayerToggled(False)
73+
74+
75+
def closeEvent(self, e):
76+
""" save window state """
77+
settings = QSettings()
78+
settings.setValue("/DB_Manager/sqlWindow/geometry", QVariant(self.saveGeometry()))
79+
80+
QDialog.closeEvent(self, e)
81+
82+
def loadAsLayerToggled(self, checked):
83+
self.loadAsLayerGroup.setChecked( checked )
84+
self.loadAsLayerWidget.setVisible( checked )
85+
86+
def getSql(self):
87+
# If the selection obtained from an editor spans a line break,
88+
# the text will contain a Unicode U+2029 paragraph separator
89+
# character instead of a newline \n character
90+
# (see https://qt-project.org/doc/qt-4.8/qtextcursor.html#selectedText)
91+
sql = self.editSql.textCursor().selectedText().replace(unichr(0x2029), "\n")
92+
if sql.isEmpty():
93+
sql = self.editSql.toPlainText()
94+
# try to sanitize query
95+
sql = sql.replace( QRegExp( ";\\s*$" ), "" )
96+
return sql
97+
98+
def clearSql(self):
99+
self.editSql.clear()
100+
101+
def executeSql(self):
102+
sql = self.getSql()
103+
if sql.isEmpty(): return
104+
105+
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
106+
107+
# delete the old model
108+
old_model = self.viewResult.model()
109+
self.viewResult.setModel(None)
110+
if old_model: old_model.deleteLater()
111+
112+
self.uniqueCombo.clear()
113+
self.geomCombo.clear()
114+
115+
try:
116+
# set the new model
117+
model = self.db.sqlResultModel( sql, self )
118+
self.viewResult.setModel( model )
119+
self.lblResult.setText("%d rows, %.1f seconds" % (model.affectedRows(), model.secs()))
120+
121+
except BaseError, e:
122+
QApplication.restoreOverrideCursor()
123+
DlgDbError.showError(e, self)
124+
return
125+
126+
cols = self.viewResult.model().columnNames()
127+
cols.sort()
128+
self.uniqueCombo.addItems( cols )
129+
self.geomCombo.addItems( cols )
130+
131+
self.update()
132+
QApplication.restoreOverrideCursor()
133+
134+
def loadSqlLayer(self):
135+
uniqueFieldName = self.uniqueCombo.currentText()
136+
geomFieldName = self.geomCombo.currentText()
137+
138+
if geomFieldName.isEmpty() or uniqueFieldName.isEmpty():
139+
QMessageBox.warning(self, self.tr( "Sorry" ), self.tr( "You must fill the required fields: \ngeometry column - column with unique integer values" ) )
140+
return
141+
142+
query = self.getSql()
143+
if query.isEmpty():
144+
return
145+
146+
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
147+
148+
from qgis.core import QgsMapLayer, QgsMapLayerRegistry
149+
layerType = QgsMapLayer.VectorLayer if self.vectorRadio.isChecked() else QgsMapLayer.RasterLayer
150+
151+
# get a new layer name
152+
names = []
153+
for layer in QgsMapLayerRegistry.instance().mapLayers().values():
154+
names.append( layer.name() )
155+
156+
layerName = self.layerNameEdit.text()
157+
if layerName.isEmpty():
158+
layerName = self.defaultLayerName
159+
newLayerName = layerName
160+
index = 1
161+
while newLayerName in names:
162+
index += 1
163+
newLayerName = u"%s_%d" % (layerName, index)
164+
165+
# create the layer
166+
layer = self.db.toSqlLayer(query, geomFieldName, uniqueFieldName, newLayerName, layerType, self.avoidSelectById.isChecked())
167+
if layer.isValid():
168+
QgsMapLayerRegistry.instance().addMapLayers([layer], True)
169+
170+
QApplication.restoreOverrideCursor()
171+
172+
def fillColumnCombos(self):
173+
query = self.getSql()
174+
if query.isEmpty(): return
175+
176+
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
177+
self.uniqueCombo.clear()
178+
self.geomCombo.clear()
179+
180+
# get a new alias
181+
aliasIndex = 0
182+
while True:
183+
alias = "_%s__%d" % ("subQuery", aliasIndex)
184+
escaped = '\\b("?)' + QRegExp.escape(alias) + '\\1\\b'
185+
if not query.contains( QRegExp(escaped, Qt.CaseInsensitive) ):
186+
break
187+
aliasIndex += 1
188+
189+
# get all the columns
190+
cols = []
191+
connector = self.db.connector
192+
sql = u"SELECT * FROM (%s\n) AS %s LIMIT 0" % ( unicode(query), connector.quoteId(alias) )
193+
194+
c = None
195+
try:
196+
c = connector._execute(None, sql)
197+
cols = connector._get_cursor_columns(c)
198+
199+
except BaseError as e:
200+
QApplication.restoreOverrideCursor()
201+
DlgDbError.showError(e, self)
202+
return
203+
204+
finally:
205+
if c:
206+
c.close()
207+
del c
208+
209+
cols.sort()
210+
self.uniqueCombo.addItems( cols )
211+
self.geomCombo.addItems( cols )
212+
213+
QApplication.restoreOverrideCursor()
214+
215+
def copySelectedResults(self):
216+
if len(self.viewResult.selectedIndexes()) <= 0:
217+
return
218+
model = self.viewResult.model()
219+
220+
# convert to string using tab as separator
221+
text = model.headerToString( "\t" )
222+
for idx in self.viewResult.selectionModel().selectedRows():
223+
text += "\n" + model.rowToString( idx.row(), "\t" )
224+
225+
QApplication.clipboard().setText( text, QClipboard.Selection )
226+
QApplication.clipboard().setText( text, QClipboard.Clipboard )
227227

‎python/plugins/db_manager/layer_preview.py

Lines changed: 88 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -29,92 +29,92 @@
2929
from .db_plugins.plugin import DbError, Table
3030

3131
class LayerPreview(QgsMapCanvas):
32-
def __init__(self, parent=None):
33-
QgsMapCanvas.__init__(self, parent)
34-
self.setCanvasColor(QColor(255,255,255))
35-
36-
self.item = None
37-
self.dirty = False
38-
39-
# reuse settings from QGIS
40-
settings = QSettings()
41-
self.enableAntiAliasing( settings.value( "/qgis/enable_anti_aliasing", QVariant(False) ).toBool() )
42-
self.useImageToRender( settings.value( "/qgis/use_qimage_to_render", QVariant(False) ).toBool() )
43-
action = settings.value( "/qgis/wheel_action", QVariant(0) ).toInt()[0]
44-
zoomFactor = settings.value( "/qgis/zoom_factor", QVariant(2) ).toDouble()[0]
45-
self.setWheelAction( QgsMapCanvas.WheelAction(action), zoomFactor )
46-
47-
self._clear()
48-
49-
50-
def refresh(self):
51-
self.setDirty(True)
52-
self.loadPreview( self.item )
53-
54-
def loadPreview(self, item, force=False):
55-
if item == self.item and not self.dirty:
56-
return
57-
self._clear()
58-
if item is None:
59-
return
60-
61-
if isinstance(item, Table) and item.type in [Table.VectorType, Table.RasterType]:
62-
# update the preview, but first let the manager chance to show the canvas
63-
runPrev = lambda: self._loadTablePreview( item )
64-
QTimer.singleShot(50, runPrev)
65-
else:
66-
return
67-
68-
self.item = item
69-
self.connect(self.item, SIGNAL('aboutToChange'), self.setDirty)
70-
71-
def setDirty(self, val=True):
72-
self.dirty = val
73-
74-
def _clear(self):
75-
""" remove any layers from preview canvas """
76-
if self.item is not None:
77-
self.disconnect(self.item, SIGNAL('aboutToChange'), self.setDirty)
78-
self.item = None
79-
self.dirty = False
80-
81-
self.currentLayerId = None
82-
self.setLayerSet( [] )
83-
84-
def _loadTablePreview(self, table, limit=False):
85-
""" if has geometry column load to map canvas """
86-
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
87-
self.setRenderFlag(False)
88-
newLayerId = None
89-
90-
if table.geomType:
91-
# limit the query result if required
92-
if limit and table.rowCount > 1000:
93-
uniqueField = table.getValidQGisUniqueFields(True)
94-
if uniqueField == None:
95-
QMessageBox.warning(self, "Sorry", "Unable to find a valid unique field")
96-
return
97-
98-
uri = table.database().uri()
99-
uri.setDataSource("", u"(SELECT * FROM %s LIMIT 1000)" % table.quotedName(), table.geomColumn, "", uniqueField.name)
100-
provider = table.database().dbplugin().providerName()
101-
vl = QgsVectorLayer(uri.uri(), table.name, provider)
102-
else:
103-
vl = table.toMapLayer()
104-
105-
if not vl.isValid():
106-
self.setLayerSet( [] )
107-
else:
108-
newLayerId = vl.id() if hasattr(vl, 'id') else vl.getLayerID()
109-
self.setLayerSet( [ QgsMapCanvasLayer(vl) ] )
110-
QgsMapLayerRegistry.instance().addMapLayer(vl, False)
111-
self.zoomToFullExtent()
112-
113-
# remove old layer (if any) and set new
114-
if self.currentLayerId:
115-
QgsMapLayerRegistry.instance().removeMapLayer(self.currentLayerId, False)
116-
self.currentLayerId = newLayerId
117-
118-
self.setRenderFlag(True)
119-
QApplication.restoreOverrideCursor()
32+
def __init__(self, parent=None):
33+
QgsMapCanvas.__init__(self, parent)
34+
self.setCanvasColor(QColor(255,255,255))
35+
36+
self.item = None
37+
self.dirty = False
38+
39+
# reuse settings from QGIS
40+
settings = QSettings()
41+
self.enableAntiAliasing( settings.value( "/qgis/enable_anti_aliasing", QVariant(False) ).toBool() )
42+
self.useImageToRender( settings.value( "/qgis/use_qimage_to_render", QVariant(False) ).toBool() )
43+
action = settings.value( "/qgis/wheel_action", QVariant(0) ).toInt()[0]
44+
zoomFactor = settings.value( "/qgis/zoom_factor", QVariant(2) ).toDouble()[0]
45+
self.setWheelAction( QgsMapCanvas.WheelAction(action), zoomFactor )
46+
47+
self._clear()
48+
49+
50+
def refresh(self):
51+
self.setDirty(True)
52+
self.loadPreview( self.item )
53+
54+
def loadPreview(self, item, force=False):
55+
if item == self.item and not self.dirty:
56+
return
57+
self._clear()
58+
if item is None:
59+
return
60+
61+
if isinstance(item, Table) and item.type in [Table.VectorType, Table.RasterType]:
62+
# update the preview, but first let the manager chance to show the canvas
63+
runPrev = lambda: self._loadTablePreview( item )
64+
QTimer.singleShot(50, runPrev)
65+
else:
66+
return
67+
68+
self.item = item
69+
self.connect(self.item, SIGNAL('aboutToChange'), self.setDirty)
70+
71+
def setDirty(self, val=True):
72+
self.dirty = val
73+
74+
def _clear(self):
75+
""" remove any layers from preview canvas """
76+
if self.item is not None:
77+
self.disconnect(self.item, SIGNAL('aboutToChange'), self.setDirty)
78+
self.item = None
79+
self.dirty = False
80+
81+
self.currentLayerId = None
82+
self.setLayerSet( [] )
83+
84+
def _loadTablePreview(self, table, limit=False):
85+
""" if has geometry column load to map canvas """
86+
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
87+
self.setRenderFlag(False)
88+
newLayerId = None
89+
90+
if table.geomType:
91+
# limit the query result if required
92+
if limit and table.rowCount > 1000:
93+
uniqueField = table.getValidQGisUniqueFields(True)
94+
if uniqueField == None:
95+
QMessageBox.warning(self, "Sorry", "Unable to find a valid unique field")
96+
return
97+
98+
uri = table.database().uri()
99+
uri.setDataSource("", u"(SELECT * FROM %s LIMIT 1000)" % table.quotedName(), table.geomColumn, "", uniqueField.name)
100+
provider = table.database().dbplugin().providerName()
101+
vl = QgsVectorLayer(uri.uri(), table.name, provider)
102+
else:
103+
vl = table.toMapLayer()
104+
105+
if not vl.isValid():
106+
self.setLayerSet( [] )
107+
else:
108+
newLayerId = vl.id() if hasattr(vl, 'id') else vl.getLayerID()
109+
self.setLayerSet( [ QgsMapCanvasLayer(vl) ] )
110+
QgsMapLayerRegistry.instance().addMapLayers([vl], False)
111+
self.zoomToFullExtent()
112+
113+
# remove old layer (if any) and set new
114+
if self.currentLayerId:
115+
QgsMapLayerRegistry.instance().removeMapLayer(self.currentLayerId, False)
116+
self.currentLayerId = newLayerId
117+
118+
self.setRenderFlag(True)
119+
QApplication.restoreOverrideCursor()
120120

‎python/plugins/fTools/tools/doMeanCoords.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def accept(self):
9898
addToTOC = QMessageBox.question(self, self.tr("Coordinate statistics"), self.tr("Created output point shapefile:\n%1\n\nWould you like to add the new layer to the TOC?").arg( outPath ), QMessageBox.Yes, QMessageBox.No, QMessageBox.NoButton)
9999
if addToTOC == QMessageBox.Yes:
100100
vlayer = QgsVectorLayer(outPath, unicode(outName), "ogr")
101-
QgsMapLayerRegistry.instance().addMapLayer(vlayer)
101+
QgsMapLayerRegistry.instance().addMapLayers([vlayer])
102102
self.populateLayers()
103103
self.progressBar.setValue(0)
104104
self.buttonOk.setEnabled( True )

‎python/plugins/fTools/tools/doPointsInPolygon.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def processFinished(self):
120120
fileInfo = QFileInfo( self.outShape.text() )
121121
layerName = fileInfo.completeBaseName()
122122
layer = QgsVectorLayer(self.outShape.text(), layerName, "ogr")
123-
QgsMapLayerRegistry.instance().addMapLayer(layer)
123+
QgsMapLayerRegistry.instance().addMapLayers([layer])
124124
self.populateLayers()
125125

126126
self.restoreGui()

‎python/plugins/fTools/tools/doRandPoints.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def accept(self):
128128
self.tr("Created output point shapefile:\n%1\n\nWould you like to add the new layer to the TOC?").arg(outPath), QMessageBox.Yes, QMessageBox.No, QMessageBox.NoButton)
129129
if addToTOC == QMessageBox.Yes:
130130
self.vlayer = QgsVectorLayer(outPath, unicode(outName), "ogr")
131-
QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
131+
QgsMapLayerRegistry.instance().addMapLayer([self.vlayer])
132132
self.populateLayers()
133133
self.progressBar.setValue(0)
134134
self.buttonOk.setEnabled( True )

‎python/plugins/fTools/tools/doRegPoints.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def accept(self):
9292
addToTOC = QMessageBox.question(self, self.tr("Generate Regular Points"), self.tr("Created output point shapefile:\n%1\n\nWould you like to add the new layer to the TOC?").arg( outPath ), QMessageBox.Yes, QMessageBox.No, QMessageBox.NoButton)
9393
if addToTOC == QMessageBox.Yes:
9494
self.vlayer = QgsVectorLayer(outPath, unicode(outName), "ogr")
95-
QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
95+
QgsMapLayerRegistry.instance().addMapLayer([self.vlayer])
9696
self.populateLayers()
9797
self.progressBar.setValue(0)
9898
self.buttonOk.setEnabled( True )

‎python/plugins/fTools/tools/doSpatialJoin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def accept(self):
109109
.arg(unicode(outPath)), QMessageBox.Yes, QMessageBox.No, QMessageBox.NoButton)
110110
if addToTOC == QMessageBox.Yes:
111111
self.vlayer = QgsVectorLayer(outPath, unicode(outName), "ogr")
112-
QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
112+
QgsMapLayerRegistry.instance().addMapLayer([self.vlayer])
113113
self.progressBar.setValue(0)
114114
self.buttonOk.setEnabled( True )
115115

‎python/plugins/fTools/tools/doSumLines.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def accept(self):
8181
addToTOC = QMessageBox.question(self, self.tr("Sum line lengths"), self.tr("Created output shapefile:\n%1\n\nWould you like to add the new layer to the TOC?").arg(unicode(outPath)), QMessageBox.Yes, QMessageBox.No, QMessageBox.NoButton)
8282
if addToTOC == QMessageBox.Yes:
8383
self.vlayer = QgsVectorLayer(outPath, unicode(outName), "ogr")
84-
QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
84+
QgsMapLayerRegistry.instance().addMapLayers([self.vlayer])
8585
self.populateLayers()
8686
self.progressBar.setValue(0)
8787
self.buttonOk.setEnabled( True )

‎python/plugins/fTools/tools/ftools_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ def addShapeToCanvas( shapefile_path ):
285285
vlayer_new = QgsVectorLayer( shapefile_path, layer_name, "ogr" )
286286
print layer_name
287287
if vlayer_new.isValid():
288-
QgsMapLayerRegistry.instance().addMapLayer( vlayer_new )
288+
QgsMapLayerRegistry.instance().addMapLayers( [vlayer_new] )
289289
return True
290290
else:
291291
return False

‎python/plugins/osm/OsmLoadDlg.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def onOK(self):
192192

193193
if self.chkCustomRenderer.isChecked():
194194
self.setCustomRenderer(polygonLayer)
195-
QgsMapLayerRegistry.instance().addMapLayer(polygonLayer)
195+
QgsMapLayerRegistry.instance().addMapLayers([polygonLayer])
196196

197197
# add line layer
198198
lineLayer = QgsVectorLayer(self.fname+"?type=line"+observer + tag + style, basename+" lines", "osm")
@@ -206,7 +206,7 @@ def onOK(self):
206206

207207
if self.chkCustomRenderer.isChecked():
208208
self.setCustomRenderer(lineLayer)
209-
QgsMapLayerRegistry.instance().addMapLayer(lineLayer)
209+
QgsMapLayerRegistry.instance().addMapLayers([lineLayer])
210210

211211
# add point layer
212212
pointLayer = QgsVectorLayer(self.fname+"?type=point"+observer + tag + style, basename+" points", "osm")
@@ -220,7 +220,7 @@ def onOK(self):
220220

221221
if self.chkCustomRenderer.isChecked():
222222
self.setCustomRenderer(pointLayer)
223-
QgsMapLayerRegistry.instance().addMapLayer(pointLayer)
223+
QgsMapLayerRegistry.instance().addMapLayers([pointLayer])
224224

225225
# remember layers
226226
self.polygonLayer=polygonLayer

‎python/plugins/sextante/algs/ftools/ftools_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ def addShapeToCanvas( shapefile_path ):
266266
vlayer_new = QgsVectorLayer( shapefile_path, layer_name, "ogr" )
267267
print layer_name
268268
if vlayer_new.isValid():
269-
QgsMapLayerRegistry.instance().addMapLayer( vlayer_new )
269+
QgsMapLayerRegistry.instance().addMapLayers( [vlayer_new] )
270270
return True
271271
else:
272272
return False

‎python/plugins/sextante/core/QGisLayers.py

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,20 @@ def getRasterLayers():
4444

4545
for layer in layers:
4646
if layer.type() == layer.RasterLayer:
47-
if layer.usesProvider() and layer.providerKey() == 'gdal':#only gdal file-based layers
47+
if layer.providerType() == 'gdal':#only gdal file-based layers
4848
raster.append(layer)
4949
return raster
5050

5151
@staticmethod
5252
def getVectorLayers(shapetype=-1):
5353
layers = QGisLayers.iface.legendInterface().layers()
5454
vector = list()
55-
for layer in layers:
56-
if layer.type() == layer.VectorLayer:
57-
if shapetype == QGisLayers.ALL_TYPES or layer.geometryType() == shapetype:
58-
uri = unicode(layer.source())
55+
for layer in layers:
56+
if layer.type() == layer.VectorLayer:
57+
if shapetype == QGisLayers.ALL_TYPES or layer.geometryType() == shapetype:
58+
uri = unicode(layer.source())
5959
if not uri.endswith("csv") and not uri.endswith("dbf"):
60-
60+
6161
vector.append(layer)
6262
return vector
6363

@@ -112,7 +112,7 @@ def load(layer, name = None, crs = None, style = None):
112112
else:
113113
style = SextanteConfig.getSetting(SextanteConfig.VECTOR_POLYGON_STYLE)
114114
qgslayer.loadNamedStyle(style)
115-
QgsMapLayerRegistry.instance().addMapLayer(qgslayer)
115+
QgsMapLayerRegistry.instance().addMapLayers([qgslayer])
116116
else:
117117
qgslayer = QgsRasterLayer(layer, name)
118118
if qgslayer.isValid():
@@ -121,7 +121,7 @@ def load(layer, name = None, crs = None, style = None):
121121
if style == None:
122122
style = SextanteConfig.getSetting(SextanteConfig.RASTER_STYLE)
123123
qgslayer.loadNamedStyle(style)
124-
QgsMapLayerRegistry.instance().addMapLayer(qgslayer)
124+
QgsMapLayerRegistry.instance().addMapLayers([qgslayer])
125125
QGisLayers.iface.legendInterface().refreshLayerSymbology(qgslayer)
126126
else:
127127
if prjSetting:
@@ -172,51 +172,51 @@ def getObjectFromUri(uri, forceLoad = True):
172172

173173
@staticmethod
174174
def features(layer):
175-
'''this returns an iterator over features in a vector layer, considering the
176-
selection that might exist in the layer, and the SEXTANTE configuration that
175+
'''this returns an iterator over features in a vector layer, considering the
176+
selection that might exist in the layer, and the SEXTANTE configuration that
177177
indicates whether to use only selected feature or all of them.
178178
This should be used by algorithms instead of calling the QGis API directly,
179179
to ensure a consistent behaviour across algorithms'''
180180
return Features(layer)
181-
182-
181+
182+
183183
class Features():
184-
185-
def __init__(self, layer):
184+
185+
def __init__(self, layer):
186186
self.layer = layer
187-
self.selection = False;
187+
self.selection = False;
188188
if SextanteConfig.getSetting(SextanteConfig.USE_SELECTED):
189189
self.selected = layer.selectedFeatures()
190190
if len(self.selected) > 0:
191-
self.selection = True
192-
self.idx = 0;
193-
191+
self.selection = True
192+
self.idx = 0;
193+
194194
def __iter__(self):
195195
return self
196-
196+
197197
def next(self):
198198
if self.selection:
199-
if self.idx < len(self.selected):
199+
if self.idx < len(self.selected):
200200
feature = self.selected[self.idx]
201201
self.idx += 1
202202
return feature
203203
else:
204-
raise StopIteration()
204+
raise StopIteration()
205205
else:
206206
f = QgsFeature()
207207
if self.layer.dataProvider().nextFeature(f):
208208
return f
209209
else:
210210
raise StopIteration()
211-
211+
212212
def __len__(self):
213213
if self.selection:
214214
return int(self.layer.selectedFeatureCount())
215215
else:
216216
return int(self.layer.dataProvider().featureCount())
217-
218-
219-
217+
218+
219+
220220

221221

222222

‎python/plugins/sextante/gdal/OgrAlgorithm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def ogrConnectionString(self, uri):
4444
return uri;
4545
provider = layer.dataProvider().name()
4646
qDebug("inputLayer provider '%s'" % provider)
47-
#qDebug("inputLayer layer '%s'" % layer.providerKey())
47+
#qDebug("inputLayer layer '%s'" % layer.providerType())
4848
qDebug("inputLayer.source '%s'" % layer.source())
4949
if provider == 'spatialite':
5050
#dbname='/geodata/osm_ch.sqlite' table="places" (Geometry) sql=

‎python/plugins/sextante/gui/SextantePostprocessing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def handleAlgorithmResults(alg, showResults = True):
4747
try:
4848
if out.value.startswith("memory:"):
4949
layer = out.memoryLayer
50-
QgsMapLayerRegistry.instance().addMapLayer(layer)
50+
QgsMapLayerRegistry.instance().addMapLayers([layer])
5151
else:
5252
if SextanteConfig.getSetting(SextanteConfig.USE_FILENAME_AS_LAYER_NAME):
5353
name = os.path.basename(out.value)

0 commit comments

Comments
 (0)
Please sign in to comment.