17 ) |
19 ) |
18 |
20 |
19 from .Ui_HgQueuesQueueManagementDialog import Ui_HgQueuesQueueManagementDialog |
21 from .Ui_HgQueuesQueueManagementDialog import Ui_HgQueuesQueueManagementDialog |
20 |
22 |
21 |
23 |
|
24 class HgQueuesQueueManagementDialogMode(enum.Enum): |
|
25 """ |
|
26 Class defining the supported dialog modes. |
|
27 """ |
|
28 |
|
29 NO_INPUT = 0 |
|
30 NAME_INPUT = 1 |
|
31 QUEUE_INPUT = 2 |
|
32 |
|
33 |
22 class HgQueuesQueueManagementDialog(QDialog, Ui_HgQueuesQueueManagementDialog): |
34 class HgQueuesQueueManagementDialog(QDialog, Ui_HgQueuesQueueManagementDialog): |
23 """ |
35 """ |
24 Class implementing a dialog used by the queue management functions. |
36 Class implementing a dialog used by the queue management functions. |
25 """ |
37 """ |
26 |
38 |
27 # TODO: change this to an enum |
|
28 NO_INPUT = 0 |
|
29 NAME_INPUT = 1 |
|
30 QUEUE_INPUT = 2 |
|
31 |
|
32 def __init__(self, mode, title, suppressActive, vcs, parent=None): |
39 def __init__(self, mode, title, suppressActive, vcs, parent=None): |
33 """ |
40 """ |
34 Constructor |
41 Constructor |
35 |
42 |
36 @param mode mode of the dialog (HgQueuesQueueManagementDialog.NO_INPUT |
43 @param mode mode of the dialog |
37 HgQueuesQueueManagementDialog.NAME_INPUT, |
44 @type HgQueuesQueueManagementDialogMode |
38 HgQueuesQueueManagementDialog.QUEUE_INPUT) |
|
39 @type int |
|
40 @param title title for the dialog |
45 @param title title for the dialog |
41 @type str |
46 @type str |
42 @param suppressActive flag indicating to not show the name of the |
47 @param suppressActive flag indicating to not show the name of the |
43 active queue |
48 active queue |
44 @type bool |
49 @type bool |
50 """ |
55 """ |
51 super().__init__(parent) |
56 super().__init__(parent) |
52 self.setupUi(self) |
57 self.setupUi(self) |
53 self.setWindowFlags(Qt.WindowType.Window) |
58 self.setWindowFlags(Qt.WindowType.Window) |
54 |
59 |
55 if mode not in ( |
60 if not isinstance(mode, HgQueuesQueueManagementDialogMode): |
56 HgQueuesQueueManagementDialog.NO_INPUT, |
|
57 HgQueuesQueueManagementDialog.NAME_INPUT, |
|
58 HgQueuesQueueManagementDialog.QUEUE_INPUT, |
|
59 ): |
|
60 raise ValueError("illegal value for mode") |
61 raise ValueError("illegal value for mode") |
61 |
62 |
62 self.__mode = mode |
63 self.__mode = mode |
63 self.__suppressActive = suppressActive |
64 self.__suppressActive = suppressActive |
64 self.__hgClient = vcs.getClient() |
65 self.__hgClient = vcs.getClient() |
65 self.vcs = vcs |
66 self.vcs = vcs |
66 |
67 |
67 self.inputFrame.setHidden(mode != HgQueuesQueueManagementDialog.NAME_INPUT) |
68 self.inputFrame.setHidden(mode != HgQueuesQueueManagementDialogMode.NAME_INPUT) |
68 self.selectLabel.setHidden(mode != HgQueuesQueueManagementDialog.QUEUE_INPUT) |
69 self.selectLabel.setHidden( |
69 if mode != HgQueuesQueueManagementDialog.QUEUE_INPUT: |
70 mode != HgQueuesQueueManagementDialogMode.QUEUE_INPUT |
|
71 ) |
|
72 if mode != HgQueuesQueueManagementDialogMode.QUEUE_INPUT: |
70 self.queuesList.setSelectionMode( |
73 self.queuesList.setSelectionMode( |
71 QAbstractItemView.SelectionMode.NoSelection |
74 QAbstractItemView.SelectionMode.NoSelection |
72 ) |
75 ) |
73 |
76 |
74 if mode == HgQueuesQueueManagementDialog.NO_INPUT: |
77 if mode == HgQueuesQueueManagementDialogMode.NO_INPUT: |
75 self.buttonBox.removeButton( |
78 self.buttonBox.removeButton( |
76 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok) |
79 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok) |
77 ) |
80 ) |
78 self.buttonBox.removeButton( |
81 self.buttonBox.removeButton( |
79 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel) |
82 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel) |
134 Private slot to handle changes of the entered queue name. |
137 Private slot to handle changes of the entered queue name. |
135 |
138 |
136 @param txt text of the edit |
139 @param txt text of the edit |
137 @type str |
140 @type str |
138 """ |
141 """ |
139 if self.__mode == HgQueuesQueueManagementDialog.NAME_INPUT: |
142 if self.__mode == HgQueuesQueueManagementDialogMode.NAME_INPUT: |
140 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled( |
143 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled( |
141 txt != "" |
144 txt != "" |
142 ) |
145 ) |
143 |
146 |
144 @pyqtSlot() |
147 @pyqtSlot() |
145 def on_queuesList_itemSelectionChanged(self): |
148 def on_queuesList_itemSelectionChanged(self): |
146 """ |
149 """ |
147 Private slot to handle changes of selected queue names. |
150 Private slot to handle changes of selected queue names. |
148 """ |
151 """ |
149 if self.__mode == HgQueuesQueueManagementDialog.QUEUE_INPUT: |
152 if self.__mode == HgQueuesQueueManagementDialogMode.QUEUE_INPUT: |
150 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled( |
153 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled( |
151 len(self.queuesList.selectedItems()) > 0 |
154 len(self.queuesList.selectedItems()) > 0 |
152 ) |
155 ) |
153 |
156 |
154 @pyqtSlot(QAbstractButton) |
157 @pyqtSlot(QAbstractButton) |
183 |
186 |
184 @return queue name |
187 @return queue name |
185 @rtype str |
188 @rtype str |
186 """ |
189 """ |
187 name = "" |
190 name = "" |
188 if self.__mode == HgQueuesQueueManagementDialog.NAME_INPUT: |
191 if self.__mode == HgQueuesQueueManagementDialogMode.NAME_INPUT: |
189 name = self.nameEdit.text().replace(" ", "_") |
192 name = self.nameEdit.text().replace(" ", "_") |
190 elif self.__mode == HgQueuesQueueManagementDialog.QUEUE_INPUT: |
193 elif self.__mode == HgQueuesQueueManagementDialogMode.QUEUE_INPUT: |
191 selItems = self.queuesList.selectedItems() |
194 selItems = self.queuesList.selectedItems() |
192 if selItems: |
195 if selItems: |
193 name = selItems[0].text() |
196 name = selItems[0].text() |
194 return name |
197 return name |