UI/NumbersWidget.py

changeset 5603
4f2dd0850803
parent 5389
9b1c800daff3
child 5736
000ea446ff4b
equal deleted inserted replaced
5602:77755a5ea30c 5603:4f2dd0850803
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

eric ide

mercurial