From a2329f5da987c4907a3efde3cd480106fbdf6644 Mon Sep 17 00:00:00 2001 From: David Vierra Date: Fri, 30 Jan 2015 18:55:14 -1000 Subject: [PATCH] NBTTreeView now inherits QTreeView and is used in place of QTreeView in several places. --- src/mcedit2/editortools/edit_chunk.py | 12 + src/mcedit2/editortools/edit_entity.py | 7 +- src/mcedit2/ui/editortools/edit_chunk.ui | 258 +++++++++++---------- src/mcedit2/ui/panels/player.ui | 7 +- src/mcedit2/widgets/nbttree/nbttreeview.py | 16 +- 5 files changed, 162 insertions(+), 138 deletions(-) diff --git a/src/mcedit2/editortools/edit_chunk.py b/src/mcedit2/editortools/edit_chunk.py index 743f735..871f5e1 100644 --- a/src/mcedit2/editortools/edit_chunk.py +++ b/src/mcedit2/editortools/edit_chunk.py @@ -39,6 +39,7 @@ class ChunkTool(EditorTool): self.selectionNode = None self.overlayNode = scenegraph.Node() self.updateChunkWidget() + self.updateNBTView() def toolInactive(self): if self.selectionNode: @@ -120,9 +121,20 @@ class ChunkTool(EditorTool): self.selectionNode.selectionBox = chunk.bounds self.currentChunk = chunk self.updateChunkWidget() + self.updateNBTView() + + def updateNBTView(self): + chunk = self.currentChunk + if chunk is None: + self.toolWidget.nbtTreeView.setModel(None) + return + model = NBTTreeModel(chunk.rootTag) self.toolWidget.nbtTreeView.setModel(model) + self.toolWidget.nbtTreeView.expandToDepth(0) + self.toolWidget.nbtTreeView.resizeColumnToContents(0) + self.toolWidget.nbtTreeView.resizeColumnToContents(1) self.toolWidget.cxSpinBox.setValue(chunk.cx) self.toolWidget.czSpinBox.setValue(chunk.cz) diff --git a/src/mcedit2/editortools/edit_entity.py b/src/mcedit2/editortools/edit_entity.py index 5c60a45..75e62b5 100644 --- a/src/mcedit2/editortools/edit_entity.py +++ b/src/mcedit2/editortools/edit_entity.py @@ -70,12 +70,7 @@ class EntityTool(EditorTool): def setSelectedEntity(self, index): if len(self.selectedEntities): model = NBTTreeModel(self.selectedEntities[index].raw_tag()) - proxyModel = NBTFilterProxyModel(self) - proxyModel.setSourceModel(model) - proxyModel.setDynamicSortFilter(True) - - self.toolWidget.treeView.setModel(proxyModel) - self.toolWidget.treeView.sortByColumn(0, Qt.AscendingOrder) + self.toolWidget.treeView.setModel(model) else: self.toolWidget.treeView.setModel(None) diff --git a/src/mcedit2/ui/editortools/edit_chunk.ui b/src/mcedit2/ui/editortools/edit_chunk.ui index 816328a..7ec7fd4 100644 --- a/src/mcedit2/ui/editortools/edit_chunk.ui +++ b/src/mcedit2/ui/editortools/edit_chunk.ui @@ -66,131 +66,150 @@ 0 - + Chunk - - - - 14 - 20 - 162 - 98 - - - - - - - Marks this chunk to have trees, lakes, ores, and other terrain features regenerated in Minecraft. - - - Qt::RightToLeft - - - Terrain Populated - - - - - - - Currently does nothing. Minecraft sets it after generating a chunk but never reads it again. - - - Qt::RightToLeft - - - Light Populated - - - - - - - - - - 0 - 0 - - - - Time in ticks when this chunk was last updated. Recently played chunks will reflect the current in-game time, older chunks will have smaller values. - - - Update Time - - - - - - - - 0 - 0 - - - - Time in ticks when this chunk was last updated. Recently played chunks will reflect the current in-game time, older chunks will have smaller values. - - - 0 - - - 2000000000 - - - - - - - - - - - - 0 - 0 - - - - Number of ticks the player has spent in this chunk. - - - Inhabited Time - - - - - - - - 0 - 0 - - - - Number of ticks the player has spent in this chunk. - - - 0 - - - 2000000000 - - - - - - - + + + + + + + Marks this chunk to have trees, lakes, ores, and other terrain features regenerated in Minecraft. + + + Qt::RightToLeft + + + Terrain Populated + + + + + + + Currently does nothing. Minecraft sets it after generating a chunk but never reads it again. + + + Qt::RightToLeft + + + Light Populated + + + + + + + + + + 0 + 0 + + + + Time in ticks when this chunk was last updated. Recently played chunks will reflect the current in-game time, older chunks will have smaller values. + + + Update Time + + + + + + + + 0 + 0 + + + + Time in ticks when this chunk was last updated. Recently played chunks will reflect the current in-game time, older chunks will have smaller values. + + + 0 + + + 2000000000 + + + + + + + + + + + + 0 + 0 + + + + Number of ticks the player has spent in this chunk. + + + Inhabited Time + + + + + + + + 0 + 0 + + + + Number of ticks the player has spent in this chunk. + + + 0 + + + 2000000000 + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + - + NBT Data + + + 0 + + + + + QFrame::NoFrame + + + + @@ -199,9 +218,8 @@ NBTTreeView - QWidget + QTreeView
nbttreeview.h
- 1
diff --git a/src/mcedit2/ui/panels/player.ui b/src/mcedit2/ui/panels/player.ui index 5466671..4f561f6 100644 --- a/src/mcedit2/ui/panels/player.ui +++ b/src/mcedit2/ui/panels/player.ui @@ -87,7 +87,7 @@ 0 - + true @@ -108,6 +108,11 @@ QTreeWidget
propertylistwidget.h
+ + NBTTreeView + QTreeView +
nbttreeview.h
+
diff --git a/src/mcedit2/widgets/nbttree/nbttreeview.py b/src/mcedit2/widgets/nbttree/nbttreeview.py index dbf1bb0..35c5d54 100644 --- a/src/mcedit2/widgets/nbttree/nbttreeview.py +++ b/src/mcedit2/widgets/nbttree/nbttreeview.py @@ -15,12 +15,7 @@ from mcedit2.widgets.layout import Row log = logging.getLogger(__name__) @registerCustomWidget -class NBTTreeView(QtGui.QWidget): - def __init__(self, *args, **kwargs): - super(NBTTreeView, self).__init__(*args, **kwargs) - self.treeView = QtGui.QTreeView() - self.setLayout(Row(self.treeView)) - +class NBTTreeView(QtGui.QTreeView): def setModel(self, model): self.model = model @@ -28,9 +23,8 @@ class NBTTreeView(QtGui.QWidget): proxyModel.setSourceModel(model) proxyModel.setDynamicSortFilter(True) - self.treeView.setModel(proxyModel) + super(NBTTreeView, self).setModel(proxyModel) - self.treeView.sortByColumn(0, Qt.AscendingOrder) - self.treeView.expandToDepth(0) - self.treeView.resizeColumnToContents(0) - self.treeView.resizeColumnToContents(1) + self.sortByColumn(0, Qt.AscendingOrder) + self.resizeColumnToContents(0) + self.resizeColumnToContents(1)