eric6/E5Gui/E5TreeWidget.py

changeset 8268
6b8128e0c9d1
parent 8234
fcb6b4b96274
equal deleted inserted replaced
8267:6baca884c73a 8268:6b8128e0c9d1
5 5
6 """ 6 """
7 Module implementing specialized tree views. 7 Module implementing specialized tree views.
8 """ 8 """
9 9
10 import enum
11
10 from PyQt5.QtCore import pyqtSignal, Qt 12 from PyQt5.QtCore import pyqtSignal, Qt
11 from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QAbstractItemView 13 from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QAbstractItemView
14
15
16 class E5TreeWidgetItemsState(enum.Enum):
17 """
18 Class defining the items expansion state.
19 """
20 COLLAPSED = 0
21 EXPANDED = 1
12 22
13 23
14 class E5TreeWidget(QTreeWidget): 24 class E5TreeWidget(QTreeWidget):
15 """ 25 """
16 Class implementing an extended tree widget. 26 Class implementing an extended tree widget.
18 @signal itemControlClicked(QTreeWidgetItem) emitted after a Ctrl-Click 28 @signal itemControlClicked(QTreeWidgetItem) emitted after a Ctrl-Click
19 on an item 29 on an item
20 @signal itemMiddleButtonClicked(QTreeWidgetItem) emitted after a click 30 @signal itemMiddleButtonClicked(QTreeWidgetItem) emitted after a click
21 of the middle button on an item 31 of the middle button on an item
22 """ 32 """
23 ItemsCollapsed = 0
24 ItemsExpanded = 1
25
26 itemControlClicked = pyqtSignal(QTreeWidgetItem) 33 itemControlClicked = pyqtSignal(QTreeWidgetItem)
27 itemMiddleButtonClicked = pyqtSignal(QTreeWidgetItem) 34 itemMiddleButtonClicked = pyqtSignal(QTreeWidgetItem)
28 35
29 def __init__(self, parent=None): 36 def __init__(self, parent=None):
30 """ 37 """
34 """ 41 """
35 super().__init__(parent) 42 super().__init__(parent)
36 43
37 self.__refreshAllItemsNeeded = True 44 self.__refreshAllItemsNeeded = True
38 self.__allTreeItems = [] 45 self.__allTreeItems = []
39 self.__showMode = E5TreeWidget.ItemsCollapsed 46 self.__showMode = E5TreeWidgetItemsState.COLLAPSED
40 47
41 self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel) 48 self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
42 49
43 self.itemChanged.connect(self.__scheduleRefresh) 50 self.itemChanged.connect(self.__scheduleRefresh)
44 51
45 def setDefaultItemShowMode(self, mode): 52 def setDefaultItemShowMode(self, mode):
46 """ 53 """
47 Public method to set the default item show mode. 54 Public method to set the default item show mode.
48 55
49 @param mode default mode (ItemsCollapsed, ItemsExpanded) 56 @param mode default mode
50 @exception ValueError raised to indicate a bad parameter value 57 @type E5TreeWidgetItemsState
51 """ 58 """
52 if mode not in [E5TreeWidget.ItemsCollapsed,
53 E5TreeWidget.ItemsExpanded]:
54 raise ValueError("Bad value for 'mode' parameter.")
55
56 self.__showMode = mode 59 self.__showMode = mode
57 60
58 def allItems(self): 61 def allItems(self):
59 """ 62 """
60 Public method to get a list of all items. 63 Public method to get a list of all items.
227 else: 230 else:
228 for itm in allItems: 231 for itm in allItems:
229 itm.setHidden(False) 232 itm.setHidden(False)
230 for index in range(self.topLevelItemCount()): 233 for index in range(self.topLevelItemCount()):
231 self.topLevelItem(index).setHidden(False) 234 self.topLevelItem(index).setHidden(False)
232 if self.__showMode == E5TreeWidget.ItemsCollapsed: 235 if self.__showMode == E5TreeWidgetItemsState.COLLAPSED:
233 self.collapseAll() 236 self.collapseAll()
234 237
235 def clear(self): 238 def clear(self):
236 """ 239 """
237 Public slot to clear the tree. 240 Public slot to clear the tree.

eric ide

mercurial