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))
Example #2
0
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)
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)