Sun, 04 Sep 2011 15:17:10 +0200
Added code to the Mercurial plug-in to support multiple revisions where appropriate.
# -*- coding: utf-8 -*- # Copyright (c) 2010 - 2011 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing a dialog to enter the data for a bundle operation. """ from PyQt4.QtCore import pyqtSlot from PyQt4.QtGui import QDialog, QDialogButtonBox from .Ui_HgBundleDialog import Ui_HgBundleDialog class HgBundleDialog(QDialog, Ui_HgBundleDialog): """ Class implementing a dialog to enter the data for a bundle operation. """ def __init__(self, tagsList, branchesList, bookmarksList=None, parent=None): """ Constructor @param tagsList list of tags (list of strings) @param branchesList list of branches (list of strings) @param bookmarksList list of bookmarks (list of strings) @param parent parent widget (QWidget) """ super().__init__(parent) self.setupUi(self) self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) self.compressionCombo.addItems(["", "bzip2", "gzip", "none"]) self.tagCombo.addItems(sorted(tagsList)) self.branchCombo.addItems(["default"] + sorted(branchesList)) if bookmarksList is not None: self.bookmarkCombo.addItems(sorted(bookmarksList)) else: self.bookmarkButton.setHidden(True) self.bookmarkCombo.setHidden(True) def __updateOK(self): """ Private slot to update the OK button. """ enabled = True if self.multipleButton.isChecked(): enabled = self.multipleEdit.toPlainText() != "" elif self.tagButton.isChecked(): enabled = self.tagCombo.currentText() != "" elif self.branchButton.isChecked(): enabled = self.branchCombo.currentText() != "" elif self.bookmarkButton.isChecked(): enabled = self.bookmarkCombo.currentText() != "" self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enabled) @pyqtSlot(bool) def on_multipleButton_toggled(self, checked): """ Private slot to handle changes of the Multiple select button. @param checked state of the button (boolean) """ self.__updateOK() @pyqtSlot(bool) def on_tagButton_toggled(self, checked): """ Private slot to handle changes of the Tag select button. @param checked state of the button (boolean) """ self.__updateOK() @pyqtSlot(bool) def on_branchButton_toggled(self, checked): """ Private slot to handle changes of the Branch select button. @param checked state of the button (boolean) """ self.__updateOK() @pyqtSlot(bool) def on_bookmarkButton_toggled(self, checked): """ Private slot to handle changes of the Bookmark select button. @param checked state of the button (boolean) """ self.__updateOK() @pyqtSlot() def on_multipleEdit_textChanged(self): """ Private slot to handle changes of the Multiple edit. """ self.__updateOK() @pyqtSlot(str) def on_tagCombo_editTextChanged(self, txt): """ Private slot to handle changes of the Tag combo. @param txt text of the combo (string) """ self.__updateOK() @pyqtSlot(str) def on_branchCombo_editTextChanged(self, txt): """ Private slot to handle changes of the Branch combo. @param txt text of the combo (string) """ self.__updateOK() @pyqtSlot(str) def on_bookmarkCombo_editTextChanged(self, txt): """ Private slot to handle changes of the Bookmark combo. @param txt text of the combo (string) """ self.__updateOK() def getParameters(self): """ Public method to retrieve the bundle data. @return tuple naming the revisions, base revisions, the compression type and a flag indicating to bundle all changesets (string, string, boolean) """ if self.multipleButton.isChecked(): revs = self.multipleEdit.toPlainText().strip().splitlines() elif self.tagButton.isChecked(): revs = [self.tagCombo.currentText()] elif self.branchButton.isChecked(): revs = [self.branchCombo.currentText()] elif self.bookmarkButton.isChecked(): revs = [self.bookmarkCombo.currentText()] else: revs = [] baseRevs = self.baseRevisionsEdit.toPlainText().strip().splitlines() return (revs, baseRevs, self.compressionCombo.currentText(), self.allCheckBox.isChecked())