def featuresAdded(self, features): if not isTracked(self.layer): return for feature in features: self.hasChanges = True self.featuresToUpdate.add(feature.id()) self.newFeatures.append(feature.id())
def featureDeleted(self, fid): if not isTracked(self.layer): return if not self.canUseSmartUpdate: return if fid >= 0: self.hasChanges = True fIterator = self.layer.dataProvider().getFeatures(QgsFeatureRequest(fid)); try: geogigfid = self._getFid(fIterator.next()) self.featuresToRemove.append(geogigfid) except Exception, e: _logger.error(str(e)) self.canUseSmartUpdate = False return
def editingStopped(self): if not isTracked(self.layer): _logger.debug("Editing stopped for layer '%s'. Layer is not tracked" % self.layer.name()) return if not self.hasChanges: _logger.debug("Editing stopped for layer '%s' without changes" % self.layer.name()) return if self.rollback: self.rollback = False return _logger.debug("Editing stopped for layer '%s'." % self.layer.name()) trackedlayer = getTrackingInfo(self.layer) insync = trackedlayer.insync setInSync(self.layer, False) self.ensureUniqueIDs() self.hasChanges = False try: repo = createRepository(trackedlayer.repoFolder(), False) except Py4JConnectionException: _logger.debug("Could not connect to repository for updating layer '%s'" % self.layer.name()) QtGui.QApplication.restoreOverrideCursor() dlg = GatewayNotAvailableWhileEditingDialog(iface.mainWindow()) dlg.exec_() setInSync(self.layer, False) return QtGui.QApplication.restoreOverrideCursor() if insync and self.canUseSmartUpdate: try: _logger.debug("Trying smart update on layer %s and repo %s" % (self.layer.source(), trackedlayer.reponame)) self.doSmartUpdate(trackedlayer.layername, repo) except Exception, e: _logger.error(traceback.format_exc()) _logger.debug("Smart update failed. Using import update instead") self.doUpdateLayer(trackedlayer.layername, repo)
def featuresAdded(self, features): if not isTracked(self.layer): return for feature in features: self.newFeatures.append(feature.id())
def featureTypeChanged(self): if isTracked(self.layer): self.hasChanges = True self.canUseSmartUpdate = False
def featureChanged(self, fid): if isTracked(self.layer): self.hasChanges = True self.featuresToUpdate.add(fid)