|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing a dialog to enter the data for a backout operation. |
|
8 """ |
|
9 |
|
10 from PyQt4.QtCore import pyqtSlot, QDateTime |
|
11 from PyQt4.QtGui import QDialog, QDialogButtonBox |
|
12 |
|
13 from .Ui_HgBackoutDialog import Ui_HgBackoutDialog |
|
14 |
|
15 class HgBackoutDialog(QDialog, Ui_HgBackoutDialog): |
|
16 """ |
|
17 Class implementing a dialog to enter the data for a backout operation. |
|
18 """ |
|
19 def __init__(self, tagsList, branchesList, parent = None): |
|
20 """ |
|
21 Constructor |
|
22 |
|
23 @param tagsList list of tags (list of strings) |
|
24 @param branchesList list of branches (list of strings) |
|
25 @param parent parent widget (QWidget) |
|
26 """ |
|
27 QDialog.__init__(self, parent) |
|
28 self.setupUi(self) |
|
29 |
|
30 self.tagCombo.addItems(list(sorted(tagsList))) |
|
31 self.branchCombo.addItems(list(sorted(["default"] + branchesList))) |
|
32 |
|
33 self.okButton = self.buttonBox.button(QDialogButtonBox.Ok) |
|
34 self.okButton.setEnabled(False) |
|
35 |
|
36 self.__initDateTime = QDateTime.currentDateTime() |
|
37 self.dateEdit.setDateTime(self.__initDateTime) |
|
38 |
|
39 @pyqtSlot(bool) |
|
40 def on_noneButton_toggled(self, checked): |
|
41 """ |
|
42 Private slot to handle the toggling of the None revision button. |
|
43 |
|
44 @param checked flag indicating the checked state (boolean) |
|
45 """ |
|
46 self.okButton.setEnabled(not checked) |
|
47 |
|
48 def getParameters(self): |
|
49 """ |
|
50 Public method to retrieve the backout data. |
|
51 |
|
52 @return tuple naming the revision, a flag indicating a |
|
53 merge, the commit date, the commit user and a commit message |
|
54 (string, boolean, string, string, string) |
|
55 """ |
|
56 if self.numberButton.isChecked(): |
|
57 rev = str(self.numberSpinBox.value()) |
|
58 elif self.idButton.isChecked(): |
|
59 rev = self.idEdit.text() |
|
60 elif self.tagButton.isChecked(): |
|
61 rev = self.tagCombo.currentText() |
|
62 elif self.branchButton.isChecked(): |
|
63 rev = self.branchCombo.currentText() |
|
64 else: |
|
65 rev = "" |
|
66 |
|
67 if self.dateEdit.dateTime() != self.__initDateTime: |
|
68 date = self.dateEdit.dateTime().toString("yyyy-MM-dd hh:mm") |
|
69 else: |
|
70 date = "" |
|
71 |
|
72 if self.messageEdit.toPlainText(): |
|
73 msg = self.messageEdit.toPlainText() |
|
74 else: |
|
75 msg = self.trUtf8("Backed out changeset <{0}>.").format(rev) |
|
76 |
|
77 return (rev, |
|
78 self.mergeCheckBox.isChecked, |
|
79 date, |
|
80 self.userEdit.text(), |
|
81 msg |
|
82 ) |