src/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesQueueManagementDialog.py

branch
eric7
changeset 10490
527d47826e97
parent 10475
ee41fab001f2
child 11090
f5f5f5803935
equal deleted inserted replaced
10489:1800956305ca 10490:527d47826e97
4 # 4 #
5 5
6 """ 6 """
7 Module implementing a dialog used by the queue management functions. 7 Module implementing a dialog used by the queue management functions.
8 """ 8 """
9
10 import enum
9 11
10 from PyQt6.QtCore import QCoreApplication, Qt, pyqtSlot 12 from PyQt6.QtCore import QCoreApplication, Qt, pyqtSlot
11 from PyQt6.QtWidgets import ( 13 from PyQt6.QtWidgets import (
12 QAbstractButton, 14 QAbstractButton,
13 QAbstractItemView, 15 QAbstractItemView,
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

eric ide

mercurial