Workaround for OverflowError
OverflowError results from Python `long` not converting to `QVariant` correctly. Pass TAG_Long values through Qt models as `str` (eww).
This commit is contained in:
parent
6ccd462333
commit
ffcbc3d52c
@ -24,7 +24,9 @@ class LongLongValidator(QtGui.QValidator):
|
||||
def validate(self, input, pos):
|
||||
matches = longlongPattern.match(input)
|
||||
if matches is not None:
|
||||
return QtGui.QValidator.Acceptable
|
||||
value = long(input)
|
||||
if (-1<<63) < value < (1<<63) - 1:
|
||||
return QtGui.QValidator.Acceptable
|
||||
return QtGui.QValidator.Invalid
|
||||
|
||||
class LongLongLineEdit(QtGui.QLineEdit):
|
||||
@ -33,10 +35,10 @@ class LongLongLineEdit(QtGui.QLineEdit):
|
||||
self.setValidator(LongLongValidator())
|
||||
|
||||
def getValue(self):
|
||||
return long(self.text())
|
||||
return self.text()
|
||||
|
||||
def setValue(self, val):
|
||||
self.setText(str(val))
|
||||
self.setText(val)
|
||||
|
||||
value = QtCore.Property(long, getValue, setValue, user=True)
|
||||
|
||||
|
@ -259,12 +259,17 @@ class NBTTreeItem(object):
|
||||
if size > maxsize:
|
||||
hexdata += "..."
|
||||
return "(size=%d) %s" % (size, hexdata)
|
||||
if self.tag.tagID == nbt.ID_LONG:
|
||||
# Workaround for OverflowError on Linux
|
||||
return str(self.tag.value)
|
||||
return self.tag.value
|
||||
|
||||
def parent(self):
|
||||
return self.parentItem
|
||||
|
||||
def setValue(self, value):
|
||||
if self.tag.tagID == nbt.ID_LONG:
|
||||
value = long(value)
|
||||
self.tag.value = value
|
||||
return True
|
||||
|
||||
|
Reference in New Issue
Block a user