def trackLayer(layer): global trackers if layer.type() == layer.VectorLayer and not layer.isReadOnly(): tracker = LayerTracker(layer) trackers.append(tracker) layer.featureDeleted.connect(tracker.featureDeleted) layer.committedFeaturesAdded.connect(tracker._featuresAdded) QtCore.QObject.connect(layer, QtCore.SIGNAL("geometryChanged(QgsFeatureId, QgsGeometry&)"), tracker._geomChanged) layer.attributeValueChanged.connect(tracker._attributeValueChanged) layer.attributeAdded.connect(tracker.featureTypeChanged) layer.attributeDeleted.connect(tracker.featureTypeChanged) layer.editingStopped.connect(tracker.editingStopped) layer.editingStarted.connect(tracker.editingStarted) layer.beforeRollBack.connect(tracker.beforeRollBack) setIdEditWidget(layer) if isTracked(layer): browseActions[layer] = QtGui.QAction(u"Browse layer history...", config.iface.legendInterface()) config.iface.legendInterface().addLegendLayerAction(browseActions[layer], u"GeoGig", u"id1", QgsMapLayer.VectorLayer, False) config.iface.legendInterface().addLegendLayerActionForLayer(browseActions[layer], layer) browseActions[layer].triggered.connect(lambda: layerHistory(layer)) removeActions[layer] = QtGui.QAction(u"Remove layer from repository", config.iface.legendInterface()) config.iface.legendInterface().addLegendLayerAction(removeActions[layer], u"GeoGig", u"id1", QgsMapLayer.VectorLayer, False) config.iface.legendInterface().addLegendLayerActionForLayer(removeActions[layer], layer) removeActions[layer].triggered.connect(lambda: removeLayer(layer)) else: addActions[layer] = QtGui.QAction(u"Add layer to Repository...", config.iface.legendInterface()) config.iface.legendInterface().addLegendLayerAction(addActions[layer], u"GeoGig", u"id2", QgsMapLayer.VectorLayer, False) config.iface.legendInterface().addLegendLayerActionForLayer(addActions[layer], layer) addActions[layer].triggered.connect(lambda: addLayer(layer))
def trackLayer(layer): global trackers if layer.type() == layer.VectorLayer and not layer.isReadOnly(): tracker = LayerTracker(layer) trackers[layer] = tracker layer.committedFeaturesAdded.connect(tracker._featuresAdded) layer.editingStopped.connect(tracker.editingStopped) layer.editingStarted.connect(tracker.editingStarted) setIdEditWidget(layer) if isTracked(layer): setAsTracked(layer) else: setAsUntracked(layer)