48 @param parent parent index (QModelIndex) |
48 @param parent parent index (QModelIndex) |
49 @return number of columns (integer) |
49 @return number of columns (integer) |
50 """ |
50 """ |
51 return self.__bits |
51 return self.__bits |
52 |
52 |
53 def data(self, index, role=Qt.DisplayRole): |
53 def data(self, index, role=Qt.ItemDataRole.DisplayRole): |
54 """ |
54 """ |
55 Public method to get data from the model. |
55 Public method to get data from the model. |
56 |
56 |
57 @param index index to get data for (QModelIndex) |
57 @param index index to get data for (QModelIndex) |
58 @param role role of the data to retrieve (integer) |
58 @param role role of the data to retrieve (integer) |
59 @return requested data |
59 @return requested data |
60 """ |
60 """ |
61 if role == Qt.CheckStateRole: |
61 if role == Qt.ItemDataRole.CheckStateRole: |
62 return (self.__value >> (self.__bits - index.column() - 1)) & 1 |
62 return (self.__value >> (self.__bits - index.column() - 1)) & 1 |
63 |
63 |
64 elif role == Qt.DisplayRole: |
64 elif role == Qt.ItemDataRole.DisplayRole: |
65 return "" |
65 return "" |
66 |
66 |
67 return None |
67 return None |
68 |
68 |
69 def flags(self, index): |
69 def flags(self, index): |
71 Public method to get flags from the model. |
71 Public method to get flags from the model. |
72 |
72 |
73 @param index index to get flags for (QModelIndex) |
73 @param index index to get flags for (QModelIndex) |
74 @return flags (Qt.ItemFlags) |
74 @return flags (Qt.ItemFlags) |
75 """ |
75 """ |
76 return Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable |
76 return ( |
77 |
77 Qt.ItemFlag.ItemIsUserCheckable | |
78 def headerData(self, section, orientation, role=Qt.DisplayRole): |
78 Qt.ItemFlag.ItemIsEnabled | |
|
79 Qt.ItemFlag.ItemIsSelectable |
|
80 ) |
|
81 |
|
82 def headerData(self, section, orientation, |
|
83 role=Qt.ItemDataRole.DisplayRole): |
79 """ |
84 """ |
80 Public method to get header data from the model. |
85 Public method to get header data from the model. |
81 |
86 |
82 @param section section number (integer) |
87 @param section section number (integer) |
83 @param orientation orientation (Qt.Orientation) |
88 @param orientation orientation (Qt.Orientation) |
84 @param role role of the data to retrieve (integer) |
89 @param role role of the data to retrieve (Qt.ItemDataRole) |
85 @return requested data |
90 @return requested data |
86 """ |
91 """ |
87 if orientation == Qt.Horizontal and role == Qt.DisplayRole: |
92 if ( |
|
93 orientation == Qt.Orientation.Horizontal and |
|
94 role == Qt.ItemDataRole.DisplayRole |
|
95 ): |
88 return str(self.__bits - section - 1) |
96 return str(self.__bits - section - 1) |
89 |
97 |
90 return QAbstractTableModel.headerData(self, section, orientation, role) |
98 return QAbstractTableModel.headerData(self, section, orientation, role) |
91 |
99 |
92 def setBits(self, bits): |
100 def setBits(self, bits): |
127 |
135 |
128 @return current value of the model (integer) |
136 @return current value of the model (integer) |
129 """ |
137 """ |
130 return self.__value |
138 return self.__value |
131 |
139 |
132 def setData(self, index, value, role=Qt.EditRole): |
140 def setData(self, index, value, role=Qt.ItemDataRole.EditRole): |
133 """ |
141 """ |
134 Public method to set the data of a node cell. |
142 Public method to set the data of a node cell. |
135 |
143 |
136 @param index index of the node cell (QModelIndex) |
144 @param index index of the node cell (QModelIndex) |
137 @param value value to be set |
145 @param value value to be set |
138 @param role role of the data (integer) |
146 @param role role of the data (integer) |
139 @return flag indicating success (boolean) |
147 @return flag indicating success (boolean) |
140 """ |
148 """ |
141 if role == Qt.CheckStateRole: |
149 if role == Qt.ItemDataRole.CheckStateRole: |
142 if value == Qt.Checked and not self.data(index, Qt.CheckStateRole): |
150 if ( |
143 # that seems like a hack; Qt 4.6 always sends Qt.Checked |
151 value == Qt.CheckState.Checked and |
|
152 not self.data(index, Qt.ItemDataRole.CheckStateRole) |
|
153 ): |
144 self.__value |= (1 << self.__bits - index.column() - 1) |
154 self.__value |= (1 << self.__bits - index.column() - 1) |
145 else: |
155 else: |
146 self.__value &= ~(1 << self.__bits - index.column() - 1) |
156 self.__value &= ~(1 << self.__bits - index.column() - 1) |
147 self.dataChanged.emit(index, index) |
157 self.dataChanged.emit(index, index) |
148 return True |
158 return True |
197 self.__bytes = 1 |
207 self.__bytes = 1 |
198 |
208 |
199 self.__model = BinaryModel(self) |
209 self.__model = BinaryModel(self) |
200 self.binTable.setModel(self.__model) |
210 self.binTable.setModel(self.__model) |
201 self.binTable.horizontalHeader().setSectionResizeMode( |
211 self.binTable.horizontalHeader().setSectionResizeMode( |
202 QHeaderView.ResizeToContents) |
212 QHeaderView.ResizeMode.ResizeToContents) |
203 self.__model.setBitsAndValue(self.__bytes * 8, self.__input) |
213 self.__model.setBitsAndValue(self.__bytes * 8, self.__input) |
204 self.__model.dataChanged.connect(self.__binModelDataChanged) |
214 self.__model.dataChanged.connect(self.__binModelDataChanged) |
205 |
215 |
206 def __formatNumbers(self, numberFormat): |
216 def __formatNumbers(self, numberFormat): |
207 """ |
217 """ |