def add(): if self.status == self.NOT_IN_SYNC: msgBox = QMessageBox() msgBox.setText( "This layer was exported already at a different version.\nWhich version would you like to add to your QGIS project?" ) msgBox.addButton(QPushButton('Use exported version'), QMessageBox.YesRole) msgBox.addButton(QPushButton('Use version from this branch'), QMessageBox.NoRole) msgBox.addButton(QPushButton('Cancel'), QMessageBox.RejectRole) QApplication.restoreOverrideCursor() ret = msgBox.exec_() if ret == 0: checkoutLayer(self.repo, self.layer, None, self.currentCommitId) elif ret == 1: try: layer = checkoutLayer(self.repo, self.layer, None, branchCommitId) repoWatcher.layerUpdated.emit(layer) except HasLocalChangesError: QMessageBox.warning( config.iface.mainWindow(), 'Cannot change version', "There are local changes that would be overwritten.\n" "Revert them before changing version.", QMessageBox.Ok) else: checkoutLayer(self.repo, self.layer, None, branchCommitId)
def add(self): if self.status == self.NOT_IN_SYNC: msgBox = QMessageBox() msgBox.setWindowTitle("Layer was already exported") msgBox.setText( "This layer was exported already at a different commit.\n" "Which one would you like to add to your QGIS project?") msgBox.addButton(QPushButton('Use previously exported commit'), QMessageBox.YesRole) msgBox.addButton(QPushButton('Use latest commit from this branch'), QMessageBox.NoRole) msgBox.addButton(QPushButton('Cancel'), QMessageBox.RejectRole) QApplication.restoreOverrideCursor() ret = msgBox.exec_() if ret == 0: checkoutLayer(self.repo, self.layer, None, self.currentCommitId) elif ret == 1: try: layer = checkoutLayer(self.repo, self.layer, None, self.branchCommitId) repoWatcher.layerUpdated.emit(layer) except HasLocalChangesError: QMessageBox.warning( config.iface.mainWindow(), 'Cannot export this commit', "The layer has local changes that would be overwritten.\n" "Either sync layer with branch or revert local changes " "before changing commit", QMessageBox.Ok) else: checkoutLayer(self.repo, self.layer, None, self.branchCommitId)
def _exportAndEditLayer(): layer = checkoutLayer(_lastRepo, "buildings", None) idx = layer.dataProvider().fieldNameIndex("DESCRIPTIO") features = list(layer.getFeatures()) with edit(layer): layer.changeAttributeValue(features[0].id(), idx, "COMMERCIAL") layer.deleteFeatures([features[1].id()])
def _exportAndEditLayer(): layer = checkoutLayer(_lastRepo, "buildings", None) idx = layer.dataProvider().fieldNameIndex("DESCRIPTIO") features = list(layer.getFeatures()) with edit(layer): layer.changeAttributeValue(features[0].id(), idx, "COMMERCIAL") layer.deleteFeatures([features[1].id()])
def _exportAndChangeToFirstVersion(): layer = checkoutLayer(tests._lastRepo, "points", None) log = tests._lastRepo.log() assert len(log) == 3 commitid = log[-1].commitid applyLayerChanges(tests._lastRepo, layer, tests._lastRepo.HEAD, commitid) updateInfoActions(layer) layer.reload() layer.triggerRepaint()
def _exportAndChangeToFirstVersion(): layer = checkoutLayer(tests._lastRepo, "points", None) log = tests._lastRepo.log() assert len(log) == 3 commitid = log[-1].commitid applyLayerChanges(tests._lastRepo, layer, tests._lastRepo.HEAD, commitid) updateInfoActions(layer) layer.reload() layer.triggerRepaint()
def _exportAndEditLayer(): layer = checkoutLayer(tests._lastRepo, "points", None) idx = layer.dataProvider().fieldNameIndex("n") features = list(layer.getFeatures()) with edit(layer): layer.changeAttributeValue(features[0].id(), idx, 1000) layer.deleteFeatures([features[1].id()]) feat = QgsFeature(layer.pendingFields()) feat.setAttributes(["5", 5]) feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(123, 456))) layer.addFeatures([feat]) return layer
def _exportAndEditLayer(): layer = checkoutLayer(tests._lastRepo, "points", None) idx = layer.dataProvider().fieldNameIndex("n") features = list(layer.getFeatures()) with edit(layer): layer.changeAttributeValue(features[0].id(), idx, 1000) layer.deleteFeatures([features[1].id()]) feat = QgsFeature(layer.pendingFields()) feat.setAttributes(["5", 5]) feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(123, 456))) layer.addFeatures([feat]) return layer
def _exportChangetoFirstVersionAndEditLayer(): log = tests._lastRepo.log() assert len(log) == 3 commitid = log[-1].commitid layer = checkoutLayer(tests._lastRepo, "points", None, commitid) idx = layer.dataProvider().fieldNameIndex("n") features = list(layer.getFeatures()) with edit(layer): layer.changeAttributeValue(features[0].id(), idx, 1000) feat = QgsFeature(layer.pendingFields()) feat.setAttributes(["5", 5]) feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(123, 456))) layer.addFeatures([feat])
def _exportAndCreateConflictWithRemoveAndModify(): layer = checkoutLayer(tests._lastRepo, "points", None) idx = layer.dataProvider().fieldNameIndex("n") features = list(layer.getFeatures()) with edit(layer): layer.deleteFeatures([features[0].id()]) filename = tempFilename("gpkg") tests._lastRepo.checkoutlayer(filename, "points") layer2 = loadLayerNoCrsDialog(filename, "points2", "ogr") features2 = list(layer2.getFeatures()) with edit(layer2): layer2.changeAttributeValue(features[0].id(), idx, 1000) _, _, conflicts, _ = tests._lastRepo.importgeopkg(layer2, "master", "message", "me", "*****@*****.**", True)
def _exportAndCreateConflictWithRemoveAndModify(): layer = checkoutLayer(tests._lastRepo, "points", None) idx = layer.dataProvider().fieldNameIndex("n") features = list(layer.getFeatures()) with edit(layer): layer.deleteFeatures([features[0].id()]) filename = tempFilename("gpkg") tests._lastRepo.checkoutlayer(filename, "points") layer2 = loadLayerNoCrsDialog(filename, "points2", "ogr") features2 = list(layer2.getFeatures()) with edit(layer2): layer2.changeAttributeValue(features[0].id(), idx, 1000) _, _, conflicts, _ = tests._lastRepo.importgeopkg(layer2, "master", "message", "me", "*****@*****.**", True)
def _exportChangetoFirstVersionAndEditLayer(): log = tests._lastRepo.log() assert len(log) == 3 commitid = log[-1].commitid layer = checkoutLayer(tests._lastRepo, "points", None, commitid) idx = layer.dataProvider().fieldNameIndex("n") features = list(layer.getFeatures()) with edit(layer): layer.changeAttributeValue(features[0].id(), idx, 1000) feat = QgsFeature(layer.pendingFields()) feat.setAttributes(["5", 5]) feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(123, 456))) layer.addFeatures([feat])
def _exportAndAddFeatureToLayer(): layer = checkoutLayer(tests._lastRepo, "points", None) log = tests._lastRepo.log() assert len(log) == 3 commitid = log[-1].commitid applyLayerChanges(tests._lastRepo, layer, tests._lastRepo.HEAD, commitid) updateInfoActions(layer) with edit(layer): feat = QgsFeature(layer.pendingFields()) feat.setAttributes(["5", 5]) feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(123, 456))) layer.addFeatures([feat]) layer.reload() layer.triggerRepaint()
def _exportAndAddFeatureToLayer(): layer = checkoutLayer(tests._lastRepo, "points", None) log = tests._lastRepo.log() assert len(log) == 3 commitid = log[-1].commitid applyLayerChanges(tests._lastRepo, layer, tests._lastRepo.HEAD, commitid) updateInfoActions(layer) with edit(layer): feat = QgsFeature(layer.pendingFields()) feat.setAttributes(["5", 5]) feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(123, 456))) layer.addFeatures([feat]) layer.reload() layer.triggerRepaint()
def _exportAndCreateConflictWithNulls(): layer = checkoutLayer(tests._lastRepo, "points", None) idx = layer.dataProvider().fieldNameIndex("n") features = list(layer.getFeatures()) with edit(layer): layer.changeGeometry(features[0].id(), QgsGeometry.fromPoint(QgsPoint(123, 456))) layer.changeAttributeValue(features[0].id(), idx, None) filename = tempFilename("gpkg") tests._lastRepo.checkoutlayer(filename, "points") layer2 = loadLayerNoCrsDialog(filename, "points2", "ogr") features2 = list(layer2.getFeatures()) with edit(layer2): layer2.changeGeometry(features[0].id(), QgsGeometry.fromPoint(QgsPoint(124, 457))) layer2.changeAttributeValue(features2[0].id(), idx, None) _, _, conflicts, _ = tests._lastRepo.importgeopkg(layer2, "master", "message", "me", "*****@*****.**", True)
def add(self): if self.status == self.NOT_IN_SYNC: msgBox = QMessageBox() msgBox.setWindowTitle("Layer was already exported") msgBox.setText("This layer was exported already at a different commit.\n" "Which one would you like to add to your QGIS project?") msgBox.addButton(QPushButton('Use previously exported commit'), QMessageBox.YesRole) msgBox.addButton(QPushButton('Use latest commit from this branch'), QMessageBox.NoRole) msgBox.addButton(QPushButton('Cancel'), QMessageBox.RejectRole) QApplication.restoreOverrideCursor() ret = msgBox.exec_() if ret == 0: checkoutLayer(self.repo, self.layer, None, self.currentCommitId) elif ret == 1: try: layer = checkoutLayer(self.repo, self.layer, None, self.branchCommitId) repoWatcher.layerUpdated.emit(layer) except HasLocalChangesError: QMessageBox.warning(config.iface.mainWindow(), 'Cannot export this commit', "The layer has local changes that would be overwritten.\n" "Either sync layer with branch or revert local changes " "before changing commit",QMessageBox.Ok) else: checkoutLayer(self.repo, self.layer, None, self.branchCommitId)
def _exportAndCreateConflictWithNulls(): layer = checkoutLayer(tests._lastRepo, "points", None) idx = layer.dataProvider().fieldNameIndex("n") features = list(layer.getFeatures()) with edit(layer): layer.changeGeometry(features[0].id(), QgsGeometry.fromPoint(QgsPoint(123, 456))) layer.changeAttributeValue(features[0].id(), idx, None) filename = tempFilename("gpkg") tests._lastRepo.checkoutlayer(filename, "points") layer2 = loadLayerNoCrsDialog(filename, "points2", "ogr") features2 = list(layer2.getFeatures()) with edit(layer2): layer2.changeGeometry(features[0].id(), QgsGeometry.fromPoint(QgsPoint(124, 457))) layer2.changeAttributeValue(features2[0].id(), idx, None) _, _, conflicts, _ = tests._lastRepo.importgeopkg(layer2, "master", "message", "me", "*****@*****.**", True)
def exportVersion(self, repo, layer, commitId): trackedlayer = getTrackingInfoForGeogigLayer(repo.url, layer) if trackedlayer: if os.path.exists(trackedlayer.geopkg): try: con = sqlite3.connect(trackedlayer.geopkg) cursor = con.cursor() cursor.execute( "SELECT commit_id FROM geogig_audited_tables WHERE table_name='%s';" % layer) currentCommitId = cursor.fetchone()[0] cursor.close() con.close() if commitId != currentCommitId: msgBox = QMessageBox() msgBox.setWindowTitle("Layer was already exported") msgBox.setText( "This layer was exported already at a different commit.\n" "Which one would you like to add to your QGIS project?" ) msgBox.addButton( QPushButton('Use previously exported commit'), QMessageBox.YesRole) msgBox.addButton( QPushButton('Use latest commit from this branch'), QMessageBox.NoRole) msgBox.addButton(QPushButton('Cancel'), QMessageBox.RejectRole) QApplication.restoreOverrideCursor() ret = msgBox.exec_() if ret == 0: checkoutLayer(repo, layer, None, currentCommitId) elif ret == 1: try: layer = checkoutLayer(repo, layer, None, commitId) repoWatcher.layerUpdated.emit(layer) except HasLocalChangesError: QMessageBox.warning( config.iface.mainWindow(), 'Cannot export this commit', "The layer has local changes that would be overwritten.\n" "Either sync layer with branch or revert local changes " "before changing commit", QMessageBox.Ok) except: checkoutLayer(repo, layer, None, currentCommitId) else: checkoutLayer(repo, layer, None, commitId)
def exportVersion(self, repo, layer, commitId): trackedlayer = getTrackingInfoForGeogigLayer(repo.url, layer) if trackedlayer: if os.path.exists(trackedlayer.geopkg): try: con = sqlite3.connect(trackedlayer.geopkg) cursor = con.cursor() cursor.execute("SELECT commit_id FROM geogig_audited_tables WHERE table_name='%s';" % layer) currentCommitId = cursor.fetchone()[0] cursor.close() con.close() if commitId != currentCommitId: msgBox = QMessageBox() msgBox.setWindowTitle("Layer was already exported") msgBox.setText("This layer was exported already at a different commit.\n" "Which one would you like to add to your QGIS project?") msgBox.addButton(QPushButton('Use previously exported commit'), QMessageBox.YesRole) msgBox.addButton(QPushButton('Use latest commit from this branch'), QMessageBox.NoRole) msgBox.addButton(QPushButton('Cancel'), QMessageBox.RejectRole) QApplication.restoreOverrideCursor() ret = msgBox.exec_() if ret == 0: checkoutLayer(repo, layer, None, currentCommitId) elif ret == 1: try: layer = checkoutLayer(repo, layer, None, commitId) repoWatcher.layerUpdated.emit(layer) except HasLocalChangesError: QMessageBox.warning(config.iface.mainWindow(), 'Cannot export this commit', "The layer has local changes that would be overwritten.\n" "Either sync layer with branch or revert local changes " "before changing commit",QMessageBox.Ok) except: checkoutLayer(repo, layer, None, currentCommitId) else: checkoutLayer(repo, layer, None, commitId)
def _exportLayer(): checkoutLayer(tests._lastRepo, "points", None)
def _checkoutLayer(self, layername, bbox): checkoutLayer(self.currentRepo, layername, bbox)
def _exportLayer(): checkoutLayer(tests._lastRepo, "points", None)