src/eric7/WebBrowser/ZoomManager/ZoomValuesModel.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9473
3f23dbf37dbe
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
14 14
15 class ZoomValuesModel(QAbstractTableModel): 15 class ZoomValuesModel(QAbstractTableModel):
16 """ 16 """
17 Class implementing a model for zoom values management. 17 Class implementing a model for zoom values management.
18 """ 18 """
19
19 def __init__(self, manager, parent=None): 20 def __init__(self, manager, parent=None):
20 """ 21 """
21 Constructor 22 Constructor
22 23
23 @param manager reference to the zoom values manager (ZoomManager) 24 @param manager reference to the zoom values manager (ZoomManager)
24 @param parent reference to the parent object (QObject) 25 @param parent reference to the parent object (QObject)
25 """ 26 """
26 super().__init__(parent) 27 super().__init__(parent)
27 28
28 self.__manager = manager 29 self.__manager = manager
29 manager.changed.connect(self.__zoomValuesChanged) 30 manager.changed.connect(self.__zoomValuesChanged)
30 31
31 self.__headers = [ 32 self.__headers = [
32 self.tr("Website"), 33 self.tr("Website"),
33 self.tr("Zoom Value [%]"), 34 self.tr("Zoom Value [%]"),
34 ] 35 ]
35 36
36 def __zoomValuesChanged(self): 37 def __zoomValuesChanged(self):
37 """ 38 """
38 Private slot handling a change of the registered zoom values. 39 Private slot handling a change of the registered zoom values.
39 """ 40 """
40 self.beginResetModel() 41 self.beginResetModel()
41 self.endResetModel() 42 self.endResetModel()
42 43
43 def removeRows(self, row, count, parent=None): 44 def removeRows(self, row, count, parent=None):
44 """ 45 """
45 Public method to remove entries from the model. 46 Public method to remove entries from the model.
46 47
47 @param row start row (integer) 48 @param row start row (integer)
48 @param count number of rows to remove (integer) 49 @param count number of rows to remove (integer)
49 @param parent parent index (QModelIndex) 50 @param parent parent index (QModelIndex)
50 @return flag indicating success (boolean) 51 @return flag indicating success (boolean)
51 """ 52 """
52 if parent is None: 53 if parent is None:
53 parent = QModelIndex() 54 parent = QModelIndex()
54 55
55 if parent.isValid(): 56 if parent.isValid():
56 return False 57 return False
57 58
58 if count <= 0: 59 if count <= 0:
59 return False 60 return False
60 61
61 lastRow = row + count - 1 62 lastRow = row + count - 1
62 63
63 self.beginRemoveRows(parent, row, lastRow) 64 self.beginRemoveRows(parent, row, lastRow)
64 65
65 siteList = self.__manager.allSiteNames() 66 siteList = self.__manager.allSiteNames()
66 for index in range(row, lastRow + 1): 67 for index in range(row, lastRow + 1):
67 self.__manager.removeZoomValue(siteList[index]) 68 self.__manager.removeZoomValue(siteList[index])
68 69
69 return True 70 return True
70 71
71 def rowCount(self, parent=None): 72 def rowCount(self, parent=None):
72 """ 73 """
73 Public method to get the number of rows of the model. 74 Public method to get the number of rows of the model.
74 75
75 @param parent parent index (QModelIndex) 76 @param parent parent index (QModelIndex)
76 @return number of rows (integer) 77 @return number of rows (integer)
77 """ 78 """
78 if parent is None: 79 if parent is None:
79 parent = QModelIndex() 80 parent = QModelIndex()
80 81
81 if parent.isValid(): 82 if parent.isValid():
82 return 0 83 return 0
83 else: 84 else:
84 return self.__manager.sitesCount() 85 return self.__manager.sitesCount()
85 86
86 def columnCount(self, parent=None): 87 def columnCount(self, parent=None):
87 """ 88 """
88 Public method to get the number of columns of the model. 89 Public method to get the number of columns of the model.
89 90
90 @param parent parent index (QModelIndex) (Unused) 91 @param parent parent index (QModelIndex) (Unused)
91 @return number of columns (integer) 92 @return number of columns (integer)
92 """ 93 """
93 return len(self.__headers) 94 return len(self.__headers)
94 95
95 def data(self, index, role): 96 def data(self, index, role):
96 """ 97 """
97 Public method to get data from the model. 98 Public method to get data from the model.
98 99
99 @param index index to get data for (QModelIndex) 100 @param index index to get data for (QModelIndex)
100 @param role role of the data to retrieve (integer) 101 @param role role of the data to retrieve (integer)
101 @return requested data 102 @return requested data
102 """ 103 """
103 if index.row() >= self.__manager.sitesCount() or index.row() < 0: 104 if index.row() >= self.__manager.sitesCount() or index.row() < 0:
104 return None 105 return None
105 106
106 site = self.__manager.allSiteNames()[index.row()] 107 site = self.__manager.allSiteNames()[index.row()]
107 siteInfo = self.__manager.siteInfo(site) 108 siteInfo = self.__manager.siteInfo(site)
108 109
109 if siteInfo is None: 110 if siteInfo is None:
110 return None 111 return None
111 112
112 if role == Qt.ItemDataRole.DisplayRole: 113 if role == Qt.ItemDataRole.DisplayRole:
113 if index.column() == 0: 114 if index.column() == 0:
114 return site 115 return site
115 elif index.column() == 1: 116 elif index.column() == 1:
116 return siteInfo 117 return siteInfo
117 118
118 return None 119 return None
119 120
120 def headerData(self, section, orientation, 121 def headerData(self, section, orientation, role=Qt.ItemDataRole.DisplayRole):
121 role=Qt.ItemDataRole.DisplayRole):
122 """ 122 """
123 Public method to get the header data. 123 Public method to get the header data.
124 124
125 @param section section number (integer) 125 @param section section number (integer)
126 @param orientation header orientation (Qt.Orientation) 126 @param orientation header orientation (Qt.Orientation)
127 @param role data role (Qt.ItemDataRole) 127 @param role data role (Qt.ItemDataRole)
128 @return header data 128 @return header data
129 """ 129 """
130 if ( 130 if (
131 orientation == Qt.Orientation.Horizontal and 131 orientation == Qt.Orientation.Horizontal
132 role == Qt.ItemDataRole.DisplayRole 132 and role == Qt.ItemDataRole.DisplayRole
133 ): 133 ):
134 with contextlib.suppress(IndexError): 134 with contextlib.suppress(IndexError):
135 return self.__headers[section] 135 return self.__headers[section]
136 136
137 return None 137 return None

eric ide

mercurial