Adjust display and sort order of NBT item tags in NBT Editor
This commit is contained in:
parent
97d9574aca
commit
8d7bee024b
@ -74,7 +74,7 @@ class NBTTreeCompound(object):
|
|||||||
|
|
||||||
def data(self, column):
|
def data(self, column):
|
||||||
if column == 0:
|
if column == 0:
|
||||||
return self.tag.name or self.tagCompoundName()
|
return self.tag.name or self.childNumber()
|
||||||
if column == 1:
|
if column == 1:
|
||||||
return self.tagCompoundSummary()
|
return self.tagCompoundSummary()
|
||||||
|
|
||||||
@ -170,7 +170,7 @@ class NBTTreeList(object):
|
|||||||
|
|
||||||
def data(self, column):
|
def data(self, column):
|
||||||
if column == 0:
|
if column == 0:
|
||||||
return self.tag.name
|
return self.tag.name or self.childNumber()
|
||||||
if column == 1:
|
if column == 1:
|
||||||
tagID = self.tag.list_type
|
tagID = self.tag.list_type
|
||||||
|
|
||||||
@ -251,7 +251,7 @@ class NBTTreeItem(object):
|
|||||||
|
|
||||||
def data(self, column):
|
def data(self, column):
|
||||||
if column == 0:
|
if column == 0:
|
||||||
return self.tag.name or str(self.childNumber())
|
return self.tag.name or self.childNumber()
|
||||||
if column == 1:
|
if column == 1:
|
||||||
if self.tag.tagID in (nbt.ID_BYTE_ARRAY, nbt.ID_SHORT_ARRAY, nbt.ID_INT_ARRAY):
|
if self.tag.tagID in (nbt.ID_BYTE_ARRAY, nbt.ID_SHORT_ARRAY, nbt.ID_INT_ARRAY):
|
||||||
size = self.tag.value.size
|
size = self.tag.value.size
|
||||||
@ -343,17 +343,28 @@ class NBTTreeModel(QtCore.QAbstractItemModel):
|
|||||||
return self.removeIcon if item is not self.rootItem else None
|
return self.removeIcon if item is not self.rootItem else None
|
||||||
|
|
||||||
if role in (QtCore.Qt.DisplayRole, QtCore.Qt.EditRole):
|
if role in (QtCore.Qt.DisplayRole, QtCore.Qt.EditRole):
|
||||||
if column == 0:
|
if column == 1:
|
||||||
|
summary = None
|
||||||
if item.tag.tagID == nbt.ID_COMPOUND:
|
if item.tag.tagID == nbt.ID_COMPOUND:
|
||||||
nameTag = item.tag.get("id")
|
if "id" in item.tag:
|
||||||
if nameTag and nameTag.tagID == nbt.ID_SHORT:
|
nameTag = item.tag["id"]
|
||||||
# Item ID?
|
if nameTag.tagID == nbt.ID_SHORT:
|
||||||
itemTypes = self.blocktypes.itemTypes
|
# Item ID?
|
||||||
try:
|
itemTypes = self.blocktypes.itemTypes
|
||||||
itemType = itemTypes[nameTag.value]
|
try:
|
||||||
return itemType.internalName
|
itemType = itemTypes[nameTag.value]
|
||||||
except KeyError:
|
summary = itemType.internalName
|
||||||
pass
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
elif nameTag.tagID == nbt.ID_STRING:
|
||||||
|
summary = nameTag.value
|
||||||
|
|
||||||
|
if summary and "Count" in item.tag:
|
||||||
|
summary += " (x%s)" % (item.tag['Count'].value,)
|
||||||
|
|
||||||
|
if summary:
|
||||||
|
return summary
|
||||||
|
|
||||||
return item.data(column)
|
return item.data(column)
|
||||||
|
|
||||||
@ -443,6 +454,7 @@ class NBTTreeModel(QtCore.QAbstractItemModel):
|
|||||||
column = index.column()
|
column = index.column()
|
||||||
if column == 0:
|
if column == 0:
|
||||||
if item.parentItem.tag.tagID == nbt.ID_COMPOUND and item.tag.name != value:
|
if item.parentItem.tag.tagID == nbt.ID_COMPOUND and item.tag.name != value:
|
||||||
|
del item.parentItem.tag[item.tag.name]
|
||||||
item.parentItem.tag[value] = item.tag
|
item.parentItem.tag[value] = item.tag
|
||||||
item.tag.name = value
|
item.tag.name = value
|
||||||
result = True
|
result = True
|
||||||
@ -484,8 +496,8 @@ class NBTFilterProxyModel(QtGui.QSortFilterProxyModel):
|
|||||||
if column == 0:
|
if column == 0:
|
||||||
leftTag = self.sourceModel().tagID(left)
|
leftTag = self.sourceModel().tagID(left)
|
||||||
rightTag = self.sourceModel().tagID(right)
|
rightTag = self.sourceModel().tagID(right)
|
||||||
leftTuple = (leftTag not in (nbt.ID_COMPOUND, nbt.ID_LIST), leftData and leftData.lower())
|
leftTuple = (leftTag not in (nbt.ID_COMPOUND, nbt.ID_LIST), leftData.lower() if isinstance(leftData, basestring) else leftData)
|
||||||
rightTuple = (rightTag not in (nbt.ID_COMPOUND, nbt.ID_LIST), rightData and rightData.lower())
|
rightTuple = (rightTag not in (nbt.ID_COMPOUND, nbt.ID_LIST), rightData.lower() if isinstance(rightData, basestring) else rightData)
|
||||||
|
|
||||||
return leftTuple < rightTuple
|
return leftTuple < rightTuple
|
||||||
if column == 1:
|
if column == 1:
|
||||||
|
Reference in New Issue
Block a user