208 self.binTable.horizontalHeader().setResizeMode( |
208 self.binTable.horizontalHeader().setResizeMode( |
209 QHeaderView.ResizeToContents) |
209 QHeaderView.ResizeToContents) |
210 self.__model.setBitsAndValue(self.__bytes * 8, self.__input) |
210 self.__model.setBitsAndValue(self.__bytes * 8, self.__input) |
211 self.__model.dataChanged.connect(self.__binModelDataChanged) |
211 self.__model.dataChanged.connect(self.__binModelDataChanged) |
212 |
212 |
213 def __formatNumbers(self, format): |
213 def __formatNumbers(self, numberFormat): |
214 """ |
214 """ |
215 Private method to format the various number inputs. |
215 Private method to format the various number inputs. |
216 |
216 |
217 @param format number format indicator (integer) |
217 @param numberFormat number format indicator (integer) |
218 """ |
218 """ |
219 self.__block(True) |
219 self.__block(True) |
220 |
220 |
221 self.binEdit.setStyleSheet("") |
221 self.binEdit.setStyleSheet("") |
222 self.octEdit.setStyleSheet("") |
222 self.octEdit.setStyleSheet("") |
223 self.decEdit.setStyleSheet("") |
223 self.decEdit.setStyleSheet("") |
224 self.hexEdit.setStyleSheet("") |
224 self.hexEdit.setStyleSheet("") |
225 |
225 |
226 # determine byte count |
226 # determine byte count |
227 bytes = 8 |
227 byteCount = 8 |
228 tmp = self.__input |
228 tmp = self.__input |
229 for i in range(8): |
229 for i in range(8): |
230 c = (tmp & 0xff00000000000000) >> 7 * 8 |
230 c = (tmp & 0xff00000000000000) >> 7 * 8 |
231 if c != 0 and self.__input >= 0: |
231 if c != 0 and self.__input >= 0: |
232 break |
232 break |
233 if c != 0xff and self.__input < 0: |
233 if c != 0xff and self.__input < 0: |
234 break |
234 break |
235 tmp <<= 8 |
235 tmp <<= 8 |
236 bytes -= 1 |
236 byteCount -= 1 |
237 if bytes == 0: |
237 if byteCount == 0: |
238 bytes = 1 |
238 byteCount = 1 |
239 self.__bytes = bytes |
239 self.__bytes = byteCount |
240 |
240 |
241 bytesIn = self.sizeBox.itemData(self.sizeBox.currentIndex()) // 8 |
241 bytesIn = self.sizeBox.itemData(self.sizeBox.currentIndex()) // 8 |
242 if bytesIn and bytes > bytesIn: |
242 if bytesIn and byteCount > bytesIn: |
243 self.sizeBox.setStyleSheet(self.__badNumberSheet) |
243 self.sizeBox.setStyleSheet(self.__badNumberSheet) |
244 else: |
244 else: |
245 self.sizeBox.setStyleSheet("") |
245 self.sizeBox.setStyleSheet("") |
246 |
246 |
247 # octal |
247 # octal |
248 if format != 8: |
248 if numberFormat != 8: |
249 self.octEdit.setText("{0:0{1}o}".format(self.__input, bytesIn * 3)) |
249 self.octEdit.setText("{0:0{1}o}".format(self.__input, bytesIn * 3)) |
250 |
250 |
251 # decimal |
251 # decimal |
252 if format != 10: |
252 if numberFormat != 10: |
253 self.decEdit.setText("{0:d}".format(self.__input)) |
253 self.decEdit.setText("{0:d}".format(self.__input)) |
254 |
254 |
255 # hexadecimal |
255 # hexadecimal |
256 if format != 16: |
256 if numberFormat != 16: |
257 self.hexEdit.setText("{0:0{1}x}".format(self.__input, bytesIn * 2)) |
257 self.hexEdit.setText("{0:0{1}x}".format(self.__input, bytesIn * 2)) |
258 |
258 |
259 # octal |
259 # octal |
260 if format != 8: |
260 if numberFormat != 8: |
261 self.octEdit.setText("{0:0{1}o}".format(self.__input, bytesIn * 3)) |
261 self.octEdit.setText("{0:0{1}o}".format(self.__input, bytesIn * 3)) |
262 |
262 |
263 # binary |
263 # binary |
264 if format != 2: |
264 if numberFormat != 2: |
265 num = "{0:0{1}b}".format(self.__input, bytesIn * 8) |
265 num = "{0:0{1}b}".format(self.__input, bytesIn * 8) |
266 self.binEdit.setText(num) |
266 self.binEdit.setText(num) |
267 |
267 |
268 self.__model.setBitsAndValue(len(self.binEdit.text()), self.__input) |
268 self.__model.setBitsAndValue(len(self.binEdit.text()), self.__input) |
269 |
269 |