--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgBackoutDialog.py Wed Apr 13 18:16:23 2022 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgBackoutDialog.py Wed Apr 13 19:49:25 2022 +0200 @@ -24,10 +24,14 @@ """ 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) + @param tagsList list of tags + @type list of str + @param branchesList list of branches + @type list of str + @param bookmarksList list of bookmarks + @type list of str + @param parent parent widget + @type QWidget """ super().__init__(parent) self.setupUi(self) @@ -49,9 +53,25 @@ self.bookmarkButton.setHidden(True) self.bookmarkCombo.setHidden(True) + # connect various radio buttons and input fields + self.idButton.toggled.connect(self.__updateOK) + self.tagButton.toggled.connect(self.__updateOK) + self.branchButton.toggled.connect(self.__updateOK) + self.bookmarkButton.toggled.connect(self.__updateOK) + self.expressionButton.toggled.connect(self.__updateOK) + self.noneButton.toggled.connect(self.__updateOK) + + self.idEdit.textChanged.connect(self.__updateOK) + self.expressionEdit.textChanged.connect(self.__updateOK) + + self.tagCombo.editTextChanged.connect(self.__updateOK) + self.branchCombo.editTextChanged.connect(self.__updateOK) + self.bookmarkCombo.editTextChanged.connect(self.__updateOK) + self.__initDateTime = QDateTime.currentDateTime() self.dateEdit.setDateTime(self.__initDateTime) + @pyqtSlot() def __updateOK(self): """ Private slot to update the OK button. @@ -60,105 +80,26 @@ if self.noneButton.isChecked(): enabled = False elif self.idButton.isChecked(): - enabled = self.idEdit.text() != "" + enabled = bool(self.idEdit.text()) elif self.tagButton.isChecked(): - enabled = self.tagCombo.currentText() != "" + enabled = bool(self.tagCombo.currentText()) elif self.branchButton.isChecked(): - enabled = self.branchCombo.currentText() != "" + enabled = bool(self.branchCombo.currentText()) elif self.bookmarkButton.isChecked(): - enabled = self.bookmarkCombo.currentText() != "" + enabled = bool(self.bookmarkCombo.currentText()) + elif self.expressionButton.isChecked(): + enabled = enabled and bool(self.expressionEdit.text()) self.buttonBox.button( QDialogButtonBox.StandardButton.Ok).setEnabled(enabled) - @pyqtSlot(bool) - def on_idButton_toggled(self, checked): - """ - Private slot to handle changes of the ID 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(bool) - def on_noneButton_toggled(self, checked): - """ - Private slot to handle the toggling of the None revision button. - - @param checked flag indicating the checked state (boolean) - """ - self.__updateOK() - - @pyqtSlot(str) - def on_idEdit_textChanged(self, txt): - """ - Private slot to handle changes of the ID edit. - - @param txt text of the edit (string) - """ - 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 backout data. @return tuple naming the revision, a flag indicating a merge, the commit date, the commit user and a commit message - (string, boolean, string, string, string) + @rtype tuple of (str, bool, str, str, str) """ if self.numberButton.isChecked(): rev = "rev({0})".format(self.numberSpinBox.value()) @@ -170,6 +111,8 @@ rev = self.branchCombo.currentText() elif self.bookmarkButton.isChecked(): rev = self.bookmarkCombo.currentText() + elif self.expressionButton.isChecked(): + rev = self.expressionEdit.text() else: rev = ""