class SyncDialog(QtGui.QDialog): def __init__(self, repo, name): QtGui.QDialog.__init__(self, config.iface.mainWindow(), QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint) self.repo = repo self.conflicts = False self.pushed = False self.pulled = False self.ui = Ui_SyncDialog() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(lambda : self.push(True)) self.ui.pullButton.clicked.connect(lambda : self.pull(True)) self.ui.syncButton.clicked.connect(self.sync) self.ui.closeButton.clicked.connect(self.close) self.ui.manageRemotesButton.clicked.connect(self.manageRemotes) self.updateRemotesList() def updateRemotesList(self): self.ui.comboBox.clear() remotes = self.repo.remotes self.ui.comboBox.addItems(remotes.keys()) self.ui.pullButton.setEnabled(len(remotes.keys()) > 0) self.ui.pushButton.setEnabled(len(remotes.keys()) > 0) self.ui.syncButton.setEnabled(len(remotes.keys()) > 0) def manageRemotes(self): dlg = RemotesDialog(self, self.repo) dlg.exec_() if dlg.changed: self.updateRemotesList() def pull(self, close): remote = self.ui.comboBox.currentText() try: head = self.repo.head.ref self.repo.pull(remote, head) if close: QtGui.QMessageBox.information(self, 'Pull', "Local repository has been updated correctly.", QtGui.QMessageBox.Ok) self.close() self.conflicts = False self.pulled = True return True except GeoGigConflictException: QtGui.QMessageBox.warning(self, 'Conflicts', "There are some conflicted elements after updating the local repository\n." + "Please solve the conflict and then commit the changes", QtGui.QMessageBox.Ok) if close: self.close() self.conflicts = True self.pulled = False return False; except GeoGigException, e: if "FileNotFound" in unicode(e): raise GeoGigException("Remote repository '%s' does not exist." % remote) else: raise e
def __init__(self, repo, name): QtGui.QDialog.__init__( self, config.iface.mainWindow(), QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint) self.repo = repo self.conflicts = False self.pushed = False self.pulled = False self.ui = Ui_SyncDialog() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(lambda: self.push(True)) self.ui.pullButton.clicked.connect(lambda: self.pull(True)) self.ui.syncButton.clicked.connect(self.sync) self.ui.closeButton.clicked.connect(self.close) self.ui.manageRemotesButton.clicked.connect(self.manageRemotes) self.updateRemotesList()
def __init__(self, repo, name): QtGui.QDialog.__init__(self, config.iface.mainWindow(), QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint) self.repo = repo self.conflicts = False self.pushed = False self.pulled = False self.ui = Ui_SyncDialog() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(lambda : self.push(True)) self.ui.pullButton.clicked.connect(lambda : self.pull(True)) self.ui.syncButton.clicked.connect(self.sync) self.ui.closeButton.clicked.connect(self.close) self.ui.manageRemotesButton.clicked.connect(self.manageRemotes) self.updateRemotesList()
class SyncDialog(QtGui.QDialog): def __init__(self, repo, name): QtGui.QDialog.__init__( self, config.iface.mainWindow(), QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint) self.repo = repo self.conflicts = False self.pushed = False self.pulled = False self.ui = Ui_SyncDialog() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(lambda: self.push(True)) self.ui.pullButton.clicked.connect(lambda: self.pull(True)) self.ui.syncButton.clicked.connect(self.sync) self.ui.closeButton.clicked.connect(self.close) self.ui.manageRemotesButton.clicked.connect(self.manageRemotes) self.updateRemotesList() def updateRemotesList(self): self.ui.comboBox.clear() remotes = self.repo.remotes self.ui.comboBox.addItems(remotes.keys()) self.ui.pullButton.setEnabled(len(remotes.keys()) > 0) self.ui.pushButton.setEnabled(len(remotes.keys()) > 0) self.ui.syncButton.setEnabled(len(remotes.keys()) > 0) def manageRemotes(self): dlg = RemotesDialog(self, self.repo) dlg.exec_() if dlg.changed: self.updateRemotesList() def pull(self, close): remote = self.ui.comboBox.currentText() try: head = self.repo.head.ref self.repo.pull(remote, head) if close: QtGui.QMessageBox.information( self, 'Pull', "Local repository has been updated correctly.", QtGui.QMessageBox.Ok) self.close() self.conflicts = False self.pulled = True return True except GeoGigConflictException: QtGui.QMessageBox.warning( self, 'Conflicts', "There are some conflicted elements after updating the local repository\n." + "Please solve the conflict and then commit the changes", QtGui.QMessageBox.Ok) if close: self.close() self.conflicts = True self.pulled = False return False except GeoGigException, e: if "FileNotFound" in unicode(e): raise GeoGigException( "Remote repository '%s' does not exist." % remote) else: raise e