TopoViewer: only use queries for layers when really needed

This commit is contained in:
Sandro Santilli 2012-11-01 13:30:15 +01:00
parent c3ca2f20aa
commit a5553b7e54

View File

@ -94,45 +94,48 @@ def run(item, action, mainwindow):
try: try:
group = legend.addGroup(u'%s topology' % toponame) group = legend.addGroup(u'%s topology' % toponame)
provider = db.dbplugin().providerName()
uri = db.uri();
# node # node
layer = db.toSqlLayer(u'SELECT * FROM %s.node' % quoteId(toponame), uri.setDataSource(toponame, 'node', 'geom', '', 'node_id')
'geom', 'node_id', u'%s.nodes' % toponame) layer = QgsVectorLayer(uri.uri(), u'%s.nodes' % toponame, provider)
layer.loadNamedStyle(os.path.join(template_dir, 'node.qml')) layer.loadNamedStyle(os.path.join(template_dir, 'node.qml'))
registry.addMapLayer(layer) registry.addMapLayer(layer)
legend.moveLayer(layer, group) legend.moveLayer(layer, group)
# edge # edge
layer = db.toSqlLayer(u'SELECT * FROM %s.edge_data' % quoteId(toponame), uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
'geom', 'edge_id', u'%s.edges' % toponame) layer = QgsVectorLayer(uri.uri(), u'%s.edges' % toponame, provider)
layer.loadNamedStyle(os.path.join(template_dir, 'edge_style.qml')) layer.loadNamedStyle(os.path.join(template_dir, 'edge_style.qml'))
registry.addMapLayer(layer) registry.addMapLayer(layer)
legend.moveLayer(layer, group) legend.moveLayer(layer, group)
# face_left # face_left
layer = db.toSqlLayer(u'SELECT * FROM %s.edge_data' % quoteId(toponame), uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
'geom', 'edge_id', u'%s.face_left' % toponame) layer = QgsVectorLayer(uri.uri(), u'%s.face_left' % toponame, provider)
layer.loadNamedStyle(os.path.join(template_dir, 'face_left.qml')) layer.loadNamedStyle(os.path.join(template_dir, 'face_left.qml'))
registry.addMapLayer(layer) registry.addMapLayer(layer)
legend.moveLayer(layer, group) legend.moveLayer(layer, group)
# face_right # face_right
layer = db.toSqlLayer(u'SELECT * FROM %s.edge_data' % quoteId(toponame), uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
'geom', 'edge_id', u'%s.face_right' % toponame) layer = QgsVectorLayer(uri.uri(), u'%s.face_right' % toponame, provider)
layer.loadNamedStyle(os.path.join(template_dir, 'face_right.qml')) layer.loadNamedStyle(os.path.join(template_dir, 'face_right.qml'))
registry.addMapLayer(layer) registry.addMapLayer(layer)
legend.moveLayer(layer, group) legend.moveLayer(layer, group)
# next_left # next_left
layer = db.toSqlLayer(u'SELECT * FROM %s.edge_data' % quoteId(toponame), uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
'geom', 'edge_id', u'%s.next_left' % toponame) layer = QgsVectorLayer(uri.uri(), u'%s.next_left' % toponame, provider)
layer.loadNamedStyle(os.path.join(template_dir, 'next_left.qml')) layer.loadNamedStyle(os.path.join(template_dir, 'next_left.qml'))
registry.addMapLayer(layer) registry.addMapLayer(layer)
legend.setLayerVisible(layer, False) legend.setLayerVisible(layer, False)
legend.moveLayer(layer, group) legend.moveLayer(layer, group)
# next_right # next_right
layer = db.toSqlLayer(u'SELECT * FROM %s.edge_data' % toponame, uri.setDataSource(toponame, 'edge_data', 'geom', '', 'edge_id')
'geom', 'edge_id', u'%s.next_right' % toponame) layer = QgsVectorLayer(uri.uri(), u'%s.next_right' % toponame, provider)
layer.loadNamedStyle(os.path.join(template_dir, 'next_right.qml')) layer.loadNamedStyle(os.path.join(template_dir, 'next_right.qml'))
registry.addMapLayer(layer) registry.addMapLayer(layer)
legend.setLayerVisible(layer, False) legend.setLayerVisible(layer, False)