def doUpdateLayer(self, dest, repo): if self.layer.dataProvider().fieldNameIndex("geogigid") == -1: iface.messageBar().pushMessage("Cannot update GeoGig repository. Layer has no 'geogigid' field", level = QgsMessageBar.WARNING, duration = 4) else: exported = exportVectorLayer(self.layer) repo.importshp(exported, False, dest, "geogigid", True) setInSync(self.layer, True)
def commitLayer(layer): trackedLayer = getTrackingInfo(layer) try: repo = createRepository(trackedLayer.repoFolder, False) except Py4JConnectionException: QtGui.QApplication.restoreOverrideCursor() dlg = GatewayNotAvailableWhileEditingDialog(config.iface.mainWindow()) dlg.exec_() return QtGui.QApplication.restoreOverrideCursor() if layer.dataProvider().fieldNameIndex("geogigid") == -1: config.iface.messageBar().pushMessage( "Cannot update GeoGig repository. Layer has no 'geogigid' field", level=QgsMessageBar.WARNING, duration=4) return exported, charset = exportVectorLayer(layer) repo.importshp(exported, False, trackedLayer.layername, "geogigid", True, charset) unstaged = repo.difftreestats(geogig.HEAD, geogig.WORK_HEAD) total = 0 for counts in unstaged.values(): total += sum(counts) if total == 0: config.iface.messageBar().pushMessage( "No changes detected. Repository was already up to date", level=QgsMessageBar.INFO, duration=4) return dlg = CommitDialog(repo, config.iface.mainWindow()) dlg.exec_() try: repo.addandcommit(dlg.getMessage()) except UnconfiguredUserException, e: user = config.getConfigValue(config.GENERAL, config.USERNAME) email = config.getConfigValue(config.GENERAL, config.EMAIL) if not (user and email): configdlg = UserConfigDialog(config.iface.mainWindow()) configdlg.exec_() if configdlg.user is not None: user = configdlg.user email = configdlg.email config.setConfigValue(config.GENERAL, config.USERNAME, user) config.setConfigValue(config.GENERAL, config.EMAIL, email) else: return repo.config(geogig.USER_NAME, user, True) repo.config(geogig.USER_EMAIL, email, True) repo.commit(dlg.getMessage())
def commitLayer(layer): trackedLayer = getTrackingInfo(layer) try: repo = createRepository(trackedLayer.repoFolder, False) except Py4JConnectionException: QtGui.QApplication.restoreOverrideCursor() dlg = GatewayNotAvailableWhileEditingDialog(config.iface.mainWindow()) dlg.exec_() return QtGui.QApplication.restoreOverrideCursor() if layer.dataProvider().fieldNameIndex("geogigid") == -1: config.iface.messageBar().pushMessage("Cannot update GeoGig repository. Layer has no 'geogigid' field", level = QgsMessageBar.WARNING, duration = 4) return exported, charset = exportVectorLayer(layer) repo.importshp(exported, False, trackedLayer.layername, "geogigid", True, charset) unstaged = repo.difftreestats(geogig.HEAD, geogig.WORK_HEAD) total = 0 for counts in unstaged.values(): total += sum(counts) if total == 0: config.iface.messageBar().pushMessage("No changes detected. Repository was already up to date", level = QgsMessageBar.INFO, duration = 4) return dlg = CommitDialog(repo, config.iface.mainWindow()) dlg.exec_() try: repo.addandcommit(dlg.getMessage()) except UnconfiguredUserException, e: user = config.getConfigValue(config.GENERAL, config.USERNAME) email = config.getConfigValue(config.GENERAL, config.EMAIL) if not (user and email): configdlg = UserConfigDialog(config.iface.mainWindow()) configdlg.exec_() if configdlg.user is not None: user = configdlg.user email = configdlg.email config.setConfigValue(config.GENERAL, config.USERNAME, user) config.setConfigValue(config.GENERAL, config.EMAIL, email) else: return repo.config(geogig.USER_NAME, user, True) repo.config(geogig.USER_EMAIL, email, True) repo.commit(dlg.getMessage())