def exportVersionDiffs(commita, commitb = None):
    layers = {}
    if commitb is None:
        commitb = commita
        commita = commita.parent
    layernames = commita.repo.difftreestats(commita, commitb).keys()
    name = "%s_%s" % (commita.id[:8], commitb.id[:8])
    for layername in layernames:
        layers[layername] = []
        filepath = os.path.join(tempFolder(), "diff_%s_%s_before.shp" % (layername, name))
        try:
            if not os.path.exists(filepath):
                commita.repo.exportdiffs(commita, commitb, layername, filepath, True, True)
            beforeLayer = loadLayerNoCrsDialog(filepath, layername + "_[%s][before]" % name, "ogr")
            beforeLayer.setReadOnly(True)
            vectorType = beforeLayer.geometryType()
            styleBefore, _ = styles[vectorType]
            beforeLayer.loadNamedStyle(styleBefore)
            layers[layername].append(beforeLayer)
        except GeoGigException:
            layers[layername].append(None)
        try:
            filepath = os.path.join(tempFolder(), "diff_%s_%s_after.shp" % (layername, name))
            if not os.path.exists(filepath):
                commitb.repo.exportdiffs(commita, commitb, layername, filepath, False, True)
            afterLayer = loadLayerNoCrsDialog(filepath, layername + "_[%s][after]" % name, "ogr")
            afterLayer.setReadOnly(True)
            vectorType = afterLayer.geometryType()
            _, styleAfter = styles[vectorType]
            afterLayer.loadNamedStyle(styleAfter)
            layers[layername].append(afterLayer)
        except GeoGigException:
            layers[layername].append(None)
    return layers
def exportAndLoadVersion(commit):
    trees = commit.root.trees
    layers = []
    for tree in trees:
        filepath = os.path.join(tempFolder(), "%s_%s.shp" % (tree.path, commit.commitid))
        if not os.path.exists(filepath):
            commit.repo.exportshp(commit.commitid, tree.path, filepath)
        layer = loadLayerNoCrsDialog(filepath, tree.path + "_[%s]" % commit.commitid[:8], "ogr")
        layer.setReadOnly(True)
        layers.append(layer)
    QgsMapLayerRegistry.instance().addMapLayers(layers)
Exemplo n.º 3
0
def exportVersionDiffs(commita, commitb=None):
    layers = {}
    if commitb is None:
        commitb = commita
        commita = commita.parent
    layernames = commita.repo.difftreestats(commita, commitb).keys()
    name = "%s_%s" % (commita.id[:8], commitb.id[:8])
    for layername in layernames:
        layers[layername] = []
        filepath = os.path.join(tempFolder(),
                                "diff_%s_%s_before.shp" % (layername, name))
        try:
            if not os.path.exists(filepath):
                commita.repo.exportdiffs(commita, commitb, layername, filepath,
                                         True, True, "utf-8")
            beforeLayer = loadLayerNoCrsDialog(
                filepath, layername + "_[%s][before]" % name, "ogr")
            beforeLayer.setReadOnly(True)
            vectorType = beforeLayer.geometryType()
            styleBefore, _ = styles[vectorType]
            beforeLayer.loadNamedStyle(styleBefore)
            layers[layername].append(beforeLayer)
        except GeoGigException:
            layers[layername].append(None)
        try:
            filepath = os.path.join(tempFolder(),
                                    "diff_%s_%s_after.shp" % (layername, name))
            if not os.path.exists(filepath):
                commitb.repo.exportdiffs(commita, commitb, layername, filepath,
                                         False, True, "utf-8")
            afterLayer = loadLayerNoCrsDialog(
                filepath, layername + "_[%s][after]" % name, "ogr")
            afterLayer.setReadOnly(True)
            vectorType = afterLayer.geometryType()
            _, styleAfter = styles[vectorType]
            afterLayer.loadNamedStyle(styleAfter)
            layers[layername].append(afterLayer)
        except GeoGigException:
            layers[layername].append(None)
    return layers
Exemplo n.º 4
0
def exportAndLoadVersion(commit):
    trees = commit.root.trees
    layers = []
    for tree in trees:
        filepath = os.path.join(tempFolder(),
                                "%s_%s.shp" % (tree.path, commit.commitid))
        if not os.path.exists(filepath):
            commit.repo.exportshp(commit.commitid, tree.path, filepath,
                                  "utf-8")
        layer = loadLayerNoCrsDialog(filepath,
                                     tree.path + "_[%s]" % commit.commitid[:8],
                                     "ogr")
        layer.setReadOnly(True)
        layers.append(layer)
    QgsMapLayerRegistry.instance().addMapLayers(layers)