Esempio n. 1
0
 def delete(self):
     ret = QMessageBox.warning(config.iface.mainWindow(), "Remove repository",
                         "Are you sure you want to remove this repository and all the data in it?",
                         QMessageBox.Yes | QMessageBox.No,
                         QMessageBox.Yes);
     if ret == QMessageBox.No:
         return
     tracked = getTrackedPathsForRepo(self.repo)
     self.repo.delete()
     removeRepo(self.repo)
     removeTrackedForRepo(self.repo)
     layers = vectorLayers()
     for layer in layers:
         if formatSource(layer) in tracked:
             setAsNonRepoLayer(layer)
     self.tree.takeTopLevelItem(self.tree.indexOfTopLevelItem(self))
     repoWatcher.repoChanged.emit(self.repo)
Esempio n. 2
0
    def deleteCurrentElement(self):
        if len(self.repoTree.selectedItems()) == 0:
            return

        item = self.repoTree.selectedItems()[0]
        if isinstance(item, RepoItem):
            ret = QMessageBox.warning(
                config.iface.mainWindow(), "Remove repository",
                "Are you sure you want to remove this repository and all the data in it?",
                QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
            if ret == QMessageBox.No:
                return
            tracked = getTrackedPathsForRepo(item.repo)
            item.repo.delete()
            removeRepo(item.repo)
            removeTrackedForRepo(item.repo)
            layers = getVectorLayers()
            for layer in layers:
                if formatSource(layer) in tracked:
                    setAsNonRepoLayer(layer)
            parent = item.parent()
            parent.removeChild(item)
            self.updateCurrentRepo(None)
        elif isinstance(item, GroupItem):
            self._removeRepoEndpoint(item)
        elif isinstance(item, BranchItem):
            ret = QMessageBox.question(
                self, 'Delete branch',
                'Are you sure you want to delete this branch?',
                QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
            if ret == QMessageBox.No:
                return
            item.repo.deletebranch(item.branch)
            repoWatcher.repoChanged.emit(item.repo)

        elif isinstance(item, LayerItem):
            ret = QMessageBox.question(
                self, 'Delete layer',
                'Are you sure you want to delete this layer from the selected branch?',
                QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
            if ret == QMessageBox.No:
                return
            execute(lambda: self._removeLayer(item))
 def deleteRepo(self, item):
     ret = QtGui.QMessageBox.warning(config.iface.mainWindow(), "Delete repository",
                     "Are you sure you want to delete this repository?",
                     QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
                     QtGui.QMessageBox.Yes);
     if ret == QtGui.QMessageBox.No:
         return
     reponame = item.repo.name
     execute(lambda: deleteRepo(reponame))
     self.lastSelectedRepoItem.parent().removeChild(self.lastSelectedRepoItem)
     if item.parent() == self.sharedVersioReposItem:
         self.lastSelectedRepoItem.setIcon(0, disabledRepoIcon)
     self.updateCurrentRepo(None, None)
     removeTrackedForRepo(item.repo.path)
     killGateway()
     try:
         shutil.rmtree(item.repo.repo().url)
     except:
         ret = QtGui.QMessageBox.warning(config.iface.mainWindow(), "Delete repository",
                 "Local copy of repository could not be removed.\n"
                 "It will have to be removed manually at the following path:\n"
                 + item.repo.repo().url, QtGui.QMessageBox.Ok);
 def deleteRepo(self, item):
     ret = QtGui.QMessageBox.warning(config.iface.mainWindow(), "Delete repository",
                     "Are you sure you want to delete this repository?",
                     QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
                     QtGui.QMessageBox.Yes);
     if ret == QtGui.QMessageBox.No:
         return
     self.lastSelectedRepoItem.parent().removeChild(self.lastSelectedRepoItem)
     self.updateCurrentRepo(None, None)
     tracked = getTrackedPathsForRepo(item.repo.repo())
     layers = getVectorLayers()
     for layer in layers:
         if layer.source() in tracked:
             setAsUntracked(layer)
     removeTrackedForRepo(item.repo.path)
     killGateway()
     try:
         shutil.rmtree(item.repo.repo().url)
     except:
         ret = QtGui.QMessageBox.warning(config.iface.mainWindow(), "Delete repository",
                 "Local copy of repository could not be removed.\n"
                 "It will have to be removed manually at the following path:\n"
                 + item.repo.repo().url, QtGui.QMessageBox.Ok);