def findFeatures(self, point): # If we don't have a any layers to forms mappings yet just exit. if not qmap.QMap.layerformmap: return layer = qmap.QMap.layerformmap.iterkeys().next() searchRadius = QgsTolerance.toleranceInMapUnits(10, layer, self.canvas.mapRenderer(), QgsTolerance.Pixels) rect = QgsRectangle() rect.setXMinimum(point.x() - searchRadius) rect.setXMaximum(point.x() + searchRadius) rect.setYMinimum(point.y() - searchRadius) rect.setYMaximum(point.y() + searchRadius) featuresToForms = {} for layer, form in qmap.QMap.layerformmap.iteritems(): layer.select(layer.pendingAllAttributesList(), rect, True, True) for feature in layer: featuresToForms[feature] = (form, layer) if len(featuresToForms) == 1: form, layer = featuresToForms.itervalues().next() feature = featuresToForms.iterkeys().next() self.openForm(form, feature, layer) elif len(featuresToForms) > 0: listUi = ListFeaturesForm() listUi.loadFeatureList(featuresToForms) listUi.openFeatureForm.connect(self.openForm) listUi.exec_()
def showFeatureSelection(self, features): listUi = ListFeaturesForm(self.mainwindow) listUi.loadFeatureList(features) listUi.openFeatureForm.connect(self.openForm) listUi.exec_()