Refactor editorcommands.find_replace to a package with one module for each find/replace action
This commit is contained in:
parent
46ba2e3d7c
commit
0856fe6a2f
60
src/mcedit2/editorcommands/find_replace/__init__.py
Normal file
60
src/mcedit2/editorcommands/find_replace/__init__.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
"""
|
||||||
|
replace
|
||||||
|
"""
|
||||||
|
from __future__ import absolute_import, division, print_function
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from PySide import QtGui
|
||||||
|
|
||||||
|
from mcedit2.editorcommands.find_replace.blocks import FindReplaceBlocks
|
||||||
|
from mcedit2.editorcommands.find_replace.nbt import FindReplaceNBT
|
||||||
|
from mcedit2.util.load_ui import load_ui
|
||||||
|
from mcedit2.widgets.layout import Column
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class FindReplaceDialog(QtGui.QDialog):
|
||||||
|
def __init__(self, editorSession, *args, **kwargs):
|
||||||
|
super(FindReplaceDialog, self).__init__(*args, **kwargs)
|
||||||
|
self.editorSession = editorSession
|
||||||
|
self.blocktypes = editorSession.worldEditor.blocktypes
|
||||||
|
load_ui("find_replace.ui", baseinstance=self)
|
||||||
|
|
||||||
|
self.findReplaceBlocks = FindReplaceBlocks(editorSession, self)
|
||||||
|
|
||||||
|
self.findReplaceNBT = FindReplaceNBT(editorSession, self)
|
||||||
|
self.nbtTab.setLayout(Column(self.findReplaceNBT.widget, margin=0))
|
||||||
|
|
||||||
|
self.resultsWidgets = [
|
||||||
|
# self.findReplaceBlocks.resultsDockWidget,
|
||||||
|
self.findReplaceNBT.resultsDockWidget,
|
||||||
|
]
|
||||||
|
|
||||||
|
def execFindBlocks(self):
|
||||||
|
self.execTab(0)
|
||||||
|
|
||||||
|
def execFindReplaceBlocks(self):
|
||||||
|
self.execTab(1)
|
||||||
|
|
||||||
|
def execFindReplaceItems(self):
|
||||||
|
self.execTab(2)
|
||||||
|
|
||||||
|
def execFindReplaceCommands(self):
|
||||||
|
self.execTab(3)
|
||||||
|
|
||||||
|
def execFindReplaceNBT(self):
|
||||||
|
self.execTab(4)
|
||||||
|
|
||||||
|
def execTab(self, tabIndex):
|
||||||
|
self.tabWidget.setCurrentIndex(tabIndex)
|
||||||
|
self.exec_()
|
||||||
|
|
||||||
|
def exec_(self):
|
||||||
|
self.findReplaceNBT.dialogOpened()
|
||||||
|
# self.findReplaceBlocks.dialogOpened()
|
||||||
|
super(FindReplaceDialog, self).exec_()
|
||||||
|
|
||||||
|
|
||||||
|
|
122
src/mcedit2/editorcommands/find_replace/blocks.py
Normal file
122
src/mcedit2/editorcommands/find_replace/blocks.py
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
"""
|
||||||
|
blocks
|
||||||
|
"""
|
||||||
|
from __future__ import absolute_import, division, print_function, unicode_literals
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from PySide import QtCore, QtGui
|
||||||
|
|
||||||
|
from mcedit2.command import SimpleRevisionCommand
|
||||||
|
from mcedit2.util.resources import resourcePath
|
||||||
|
from mcedit2.util.showprogress import showProgress
|
||||||
|
from mcedit2.widgets.blockpicker import BlockTypeButton
|
||||||
|
from mcedit2.widgets.layout import Row
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class FindReplaceBlocks(QtCore.QObject):
|
||||||
|
def __init__(self, editorSession, dialog, *args, **kwargs):
|
||||||
|
super(FindReplaceBlocks, self).__init__(*args, **kwargs)
|
||||||
|
self.editorSession = editorSession
|
||||||
|
self.dialog = dialog
|
||||||
|
|
||||||
|
header = dialog.findReplaceTable.horizontalHeader()
|
||||||
|
header.setResizeMode(0, QtGui.QHeaderView.Stretch)
|
||||||
|
header.setResizeMode(1, QtGui.QHeaderView.Stretch)
|
||||||
|
dialog.findReplaceTable.setRowCount(1)
|
||||||
|
addButton = QtGui.QPushButton("Add...", flat=True, clicked=self.addNewRow)
|
||||||
|
addButton.setIcon(QtGui.QIcon(resourcePath("mcedit2/assets/mcedit2/icons/add.png")))
|
||||||
|
addButton.setMinimumHeight(48)
|
||||||
|
addButton.setIconSize(QtCore.QSize(32, 32))
|
||||||
|
addItem = QtGui.QTableWidgetItem(text="Add...")
|
||||||
|
addItem.setSizeHint(addButton.sizeHint())
|
||||||
|
dialog.findReplaceTable.setItem(0, 0, addItem)
|
||||||
|
dialog.findReplaceTable.setSpan(0, 0, 1, 2)
|
||||||
|
dialog.findReplaceTable.setCellWidget(0, 0, addButton)
|
||||||
|
dialog.findReplaceTable.resizeRowsToContents()
|
||||||
|
dialog.findReplaceTable.resizeColumnsToContents()
|
||||||
|
dialog.blocksReplaceButton.clicked.connect(self.doReplace)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def blocktypes(self):
|
||||||
|
return self.editorSession.worldEditor.blocktypes
|
||||||
|
|
||||||
|
def addNewRow(self):
|
||||||
|
self.addRow([self.blocktypes["air"]], self.blocktypes["air"])
|
||||||
|
|
||||||
|
def addRow(self, oldBlocks, newBlock):
|
||||||
|
row = self.dialog.findReplaceTable.rowCount() - 1
|
||||||
|
|
||||||
|
self.dialog.findReplaceTable.insertRow(row)
|
||||||
|
log.info("Row inserted")
|
||||||
|
|
||||||
|
left = QtGui.QTableWidgetItem()
|
||||||
|
right = QtGui.QTableWidgetItem()
|
||||||
|
log.info("Items created")
|
||||||
|
|
||||||
|
def frameButton(button, withRemove=False):
|
||||||
|
frame = QtGui.QFrame()
|
||||||
|
frame.button = button
|
||||||
|
layout = QtGui.QVBoxLayout()
|
||||||
|
layout.addStretch(1)
|
||||||
|
if withRemove:
|
||||||
|
removeButton = QtGui.QPushButton("", flat=True)
|
||||||
|
removeButton.setIcon(QtGui.QIcon(resourcePath("mcedit2/assets/mcedit2/icons/remove.png")))
|
||||||
|
removeButton.setIconSize(QtCore.QSize(24, 24))
|
||||||
|
|
||||||
|
def _clicked():
|
||||||
|
self.removeRow(self.dialog.findReplaceTable.row(left))
|
||||||
|
removeButton.__clicked = _clicked
|
||||||
|
removeButton.clicked.connect(_clicked)
|
||||||
|
layout.addLayout(Row((button, 1), removeButton))
|
||||||
|
else:
|
||||||
|
layout.addWidget(button)
|
||||||
|
layout.addStretch(1)
|
||||||
|
frame.setLayout(layout)
|
||||||
|
return frame
|
||||||
|
|
||||||
|
leftButton = BlockTypeButton(flat=True, multipleSelect=True)
|
||||||
|
leftButton.editorSession = self.editorSession
|
||||||
|
leftButton.blocks = oldBlocks
|
||||||
|
leftFramedButton = frameButton(leftButton)
|
||||||
|
left.setSizeHint(leftFramedButton.sizeHint())
|
||||||
|
log.info("Left button")
|
||||||
|
|
||||||
|
rightButton = BlockTypeButton(flat=True)
|
||||||
|
rightButton.editorSession = self.editorSession
|
||||||
|
rightButton.block = newBlock
|
||||||
|
rightFramedButton = frameButton(rightButton, True)
|
||||||
|
right.setSizeHint(rightFramedButton.sizeHint())
|
||||||
|
log.info("Right button")
|
||||||
|
self.dialog.findReplaceTable.setItem(row, 0, left)
|
||||||
|
self.dialog.findReplaceTable.setItem(row, 1, right)
|
||||||
|
self.dialog.findReplaceTable.setCellWidget(row, 0, leftFramedButton)
|
||||||
|
self.dialog.findReplaceTable.setCellWidget(row, 1, rightFramedButton)
|
||||||
|
self.dialog.findReplaceTable.resizeRowsToContents()
|
||||||
|
#self.findReplaceTable.resizeColumnsToContents()
|
||||||
|
log.info("Done")
|
||||||
|
|
||||||
|
def removeRow(self, row):
|
||||||
|
self.dialog.findReplaceTable.removeRow(row)
|
||||||
|
|
||||||
|
def getReplacements(self):
|
||||||
|
def _get():
|
||||||
|
for row in range(self.dialog.findReplaceTable.rowCount()-1):
|
||||||
|
left = self.dialog.findReplaceTable.cellWidget(row, 0).button
|
||||||
|
right = self.dialog.findReplaceTable.cellWidget(row, 1).button
|
||||||
|
yield left.blocks, right.block
|
||||||
|
|
||||||
|
return list(_get())
|
||||||
|
|
||||||
|
def doReplace(self):
|
||||||
|
replacements = self.getReplacements()
|
||||||
|
command = SimpleRevisionCommand(self.editorSession, "Replace")
|
||||||
|
if self.dialog.replaceBlocksInSelectionCheckbox.isChecked():
|
||||||
|
selection = self.editorSession.currentSelection
|
||||||
|
else:
|
||||||
|
selection = self.editorSession.currentDimension.bounds
|
||||||
|
with command.begin():
|
||||||
|
task = self.editorSession.currentDimension.fillBlocksIter(selection, replacements, updateLights=False)
|
||||||
|
showProgress("Replacing...", task)
|
||||||
|
self.editorSession.pushCommand(command)
|
@ -1,32 +1,45 @@
|
|||||||
"""
|
"""
|
||||||
replace
|
nbt
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import, division, print_function
|
from __future__ import absolute_import, division, print_function, unicode_literals
|
||||||
from collections import namedtuple
|
|
||||||
from mcedit2.widgets.mcedockwidget import MCEDockWidget
|
|
||||||
from mceditlib import nbt
|
|
||||||
from PySide import QtGui, QtCore
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
from PySide import QtCore
|
||||||
from PySide.QtCore import Qt
|
from PySide.QtCore import Qt
|
||||||
|
|
||||||
from mcedit2.command import SimpleRevisionCommand
|
from mcedit2.command import SimpleRevisionCommand
|
||||||
from mcedit2.util import settings
|
from mcedit2.util import settings
|
||||||
from mcedit2.util.load_ui import load_ui
|
from mcedit2.util.load_ui import load_ui
|
||||||
from mcedit2.util.resources import resourcePath
|
|
||||||
from mcedit2.util.showprogress import showProgress
|
from mcedit2.util.showprogress import showProgress
|
||||||
from mcedit2.widgets.blockpicker import BlockTypeButton
|
from mcedit2.widgets.mcedockwidget import MCEDockWidget
|
||||||
from mcedit2.widgets.layout import Row, Column
|
from mceditlib import nbt
|
||||||
from mceditlib.selection import BoundingBox
|
from mceditlib.selection import BoundingBox
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
nbtReplaceSettings = settings.Settings().getNamespace("findreplace/nbt")
|
||||||
|
nbtReplaceSettings.nameField = nbtReplaceSettings.getOption("nameField", unicode, "")
|
||||||
|
nbtReplaceSettings.valueField = nbtReplaceSettings.getOption("valueField", unicode, "")
|
||||||
|
|
||||||
|
nbtReplaceSettings.entityIDField = nbtReplaceSettings.getOption("entityIDField", unicode, "")
|
||||||
|
nbtReplaceSettings.searchEntitiesChecked = nbtReplaceSettings.getOption("searchEntitiesChecked", bool, False)
|
||||||
|
|
||||||
|
nbtReplaceSettings.tileEntityIDField = nbtReplaceSettings.getOption("tileEntityIDField", unicode, "")
|
||||||
|
nbtReplaceSettings.searchTileEntitiesChecked = nbtReplaceSettings.getOption("searchTileEntitiesChecked", bool, False)
|
||||||
|
|
||||||
|
nbtReplaceSettings.replaceNameField = nbtReplaceSettings.getOption("replaceNameField", unicode, "")
|
||||||
|
nbtReplaceSettings.replaceValueField = nbtReplaceSettings.getOption("replaceValueField", unicode, "")
|
||||||
|
nbtReplaceSettings.replaceValueTagType = nbtReplaceSettings.getOption("replaceValueTagType", int, 0)
|
||||||
|
|
||||||
|
|
||||||
class NBTResultsEntry(object):
|
class NBTResultsEntry(object):
|
||||||
# namedtuple("NBTResultsEntry", "tagName value id path position uuid resultType")):
|
# namedtuple("NBTResultsEntry", "tagName value id path position uuid resultType")):
|
||||||
def __init__(self, model, tagNameIndex, tagName, value, id, path, position, uuid, resultType):
|
def __init__(self, model, tagNameIndex, tagName, value, ID, path, position, uuid, resultType):
|
||||||
self.model = model
|
self.model = model
|
||||||
self.tagNameIndex = tagNameIndex # xxx REALLY SHOULD change model data through the model itself
|
self.tagNameIndex = tagNameIndex # xxx REALLY SHOULD change model data through the model itself
|
||||||
self.tagName = tagName
|
self.tagName = tagName
|
||||||
self.value = value
|
self.value = value
|
||||||
self.id = id
|
self.id = ID
|
||||||
self.path = path
|
self.path = path
|
||||||
self.position = position
|
self.position = position
|
||||||
self.uuid = uuid
|
self.uuid = uuid
|
||||||
@ -151,125 +164,6 @@ class NBTResultsModel(QtCore.QAbstractItemModel):
|
|||||||
# self.propertyChanged.emit(entry.tagName, value)
|
# self.propertyChanged.emit(entry.tagName, value)
|
||||||
# self.dataChanged.emit(index, index)
|
# self.dataChanged.emit(index, index)
|
||||||
|
|
||||||
class FindReplaceBlocks(QtCore.QObject):
|
|
||||||
def __init__(self, editorSession, dialog, *args, **kwargs):
|
|
||||||
super(FindReplaceBlocks, self).__init__(*args, **kwargs)
|
|
||||||
self.editorSession = editorSession
|
|
||||||
self.dialog = dialog
|
|
||||||
|
|
||||||
header = dialog.findReplaceTable.horizontalHeader()
|
|
||||||
header.setResizeMode(0, QtGui.QHeaderView.Stretch)
|
|
||||||
header.setResizeMode(1, QtGui.QHeaderView.Stretch)
|
|
||||||
dialog.findReplaceTable.setRowCount(1)
|
|
||||||
addButton = QtGui.QPushButton("Add...", flat=True, clicked=self.addNewRow)
|
|
||||||
addButton.setIcon(QtGui.QIcon(resourcePath("mcedit2/assets/mcedit2/icons/add.png")))
|
|
||||||
addButton.setMinimumHeight(48)
|
|
||||||
addButton.setIconSize(QtCore.QSize(32, 32))
|
|
||||||
addItem = QtGui.QTableWidgetItem(text="Add...")
|
|
||||||
addItem.setSizeHint(addButton.sizeHint())
|
|
||||||
dialog.findReplaceTable.setItem(0, 0, addItem)
|
|
||||||
dialog.findReplaceTable.setSpan(0, 0, 1, 2)
|
|
||||||
dialog.findReplaceTable.setCellWidget(0, 0, addButton)
|
|
||||||
dialog.findReplaceTable.resizeRowsToContents()
|
|
||||||
dialog.findReplaceTable.resizeColumnsToContents()
|
|
||||||
dialog.blocksReplaceButton.clicked.connect(self.doReplace)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def blocktypes(self):
|
|
||||||
return self.editorSession.worldEditor.blocktypes
|
|
||||||
|
|
||||||
def addNewRow(self):
|
|
||||||
self.addRow([self.blocktypes["air"]], self.blocktypes["air"])
|
|
||||||
|
|
||||||
def addRow(self, oldBlocks, newBlock):
|
|
||||||
row = self.dialog.findReplaceTable.rowCount() - 1
|
|
||||||
|
|
||||||
self.dialog.findReplaceTable.insertRow(row)
|
|
||||||
log.info("Row inserted")
|
|
||||||
|
|
||||||
left = QtGui.QTableWidgetItem()
|
|
||||||
right = QtGui.QTableWidgetItem()
|
|
||||||
log.info("Items created")
|
|
||||||
|
|
||||||
def frameButton(button, withRemove=False):
|
|
||||||
frame = QtGui.QFrame()
|
|
||||||
frame.button = button
|
|
||||||
layout = QtGui.QVBoxLayout()
|
|
||||||
layout.addStretch(1)
|
|
||||||
if withRemove:
|
|
||||||
removeButton = QtGui.QPushButton("", flat=True)
|
|
||||||
removeButton.setIcon(QtGui.QIcon(resourcePath("mcedit2/assets/mcedit2/icons/remove.png")))
|
|
||||||
removeButton.setIconSize(QtCore.QSize(24, 24))
|
|
||||||
|
|
||||||
def _clicked():
|
|
||||||
self.removeRow(self.dialog.findReplaceTable.row(left))
|
|
||||||
removeButton.__clicked = _clicked
|
|
||||||
removeButton.clicked.connect(_clicked)
|
|
||||||
layout.addLayout(Row((button, 1), removeButton))
|
|
||||||
else:
|
|
||||||
layout.addWidget(button)
|
|
||||||
layout.addStretch(1)
|
|
||||||
frame.setLayout(layout)
|
|
||||||
return frame
|
|
||||||
|
|
||||||
leftButton = BlockTypeButton(flat=True, multipleSelect=True)
|
|
||||||
leftButton.editorSession = self.editorSession
|
|
||||||
leftButton.blocks = oldBlocks
|
|
||||||
leftFramedButton = frameButton(leftButton)
|
|
||||||
left.setSizeHint(leftFramedButton.sizeHint())
|
|
||||||
log.info("Left button")
|
|
||||||
|
|
||||||
rightButton = BlockTypeButton(flat=True)
|
|
||||||
rightButton.editorSession = self.editorSession
|
|
||||||
rightButton.block = newBlock
|
|
||||||
rightFramedButton = frameButton(rightButton, True)
|
|
||||||
right.setSizeHint(rightFramedButton.sizeHint())
|
|
||||||
log.info("Right button")
|
|
||||||
self.dialog.findReplaceTable.setItem(row, 0, left)
|
|
||||||
self.dialog.findReplaceTable.setItem(row, 1, right)
|
|
||||||
self.dialog.findReplaceTable.setCellWidget(row, 0, leftFramedButton)
|
|
||||||
self.dialog.findReplaceTable.setCellWidget(row, 1, rightFramedButton)
|
|
||||||
self.dialog.findReplaceTable.resizeRowsToContents()
|
|
||||||
#self.findReplaceTable.resizeColumnsToContents()
|
|
||||||
log.info("Done")
|
|
||||||
|
|
||||||
def removeRow(self, row):
|
|
||||||
self.dialog.findReplaceTable.removeRow(row)
|
|
||||||
|
|
||||||
def getReplacements(self):
|
|
||||||
def _get():
|
|
||||||
for row in range(self.dialog.findReplaceTable.rowCount()-1):
|
|
||||||
left = self.dialog.findReplaceTable.cellWidget(row, 0).button
|
|
||||||
right = self.dialog.findReplaceTable.cellWidget(row, 1).button
|
|
||||||
yield left.blocks, right.block
|
|
||||||
|
|
||||||
return list(_get())
|
|
||||||
|
|
||||||
def doReplace(self):
|
|
||||||
replacements = self.getReplacements()
|
|
||||||
command = SimpleRevisionCommand(self.editorSession, "Replace")
|
|
||||||
if self.dialog.replaceBlocksInSelectionCheckbox.isChecked():
|
|
||||||
selection = self.editorSession.currentSelection
|
|
||||||
else:
|
|
||||||
selection = self.editorSession.currentDimension.bounds
|
|
||||||
with command.begin():
|
|
||||||
task = self.editorSession.currentDimension.fillBlocksIter(selection, replacements, updateLights=False)
|
|
||||||
showProgress("Replacing...", task)
|
|
||||||
self.editorSession.pushCommand(command)
|
|
||||||
|
|
||||||
nbtReplaceSettings = settings.Settings().getNamespace("findreplace/nbt")
|
|
||||||
nbtReplaceSettings.nameField = nbtReplaceSettings.getOption("nameField", unicode, "")
|
|
||||||
nbtReplaceSettings.valueField = nbtReplaceSettings.getOption("valueField", unicode, "")
|
|
||||||
|
|
||||||
nbtReplaceSettings.entityIDField = nbtReplaceSettings.getOption("entityIDField", unicode, "")
|
|
||||||
nbtReplaceSettings.searchEntitiesChecked = nbtReplaceSettings.getOption("searchEntitiesChecked", bool, False)
|
|
||||||
|
|
||||||
nbtReplaceSettings.tileEntityIDField = nbtReplaceSettings.getOption("tileEntityIDField", unicode, "")
|
|
||||||
nbtReplaceSettings.searchTileEntitiesChecked = nbtReplaceSettings.getOption("searchTileEntitiesChecked", bool, False)
|
|
||||||
|
|
||||||
nbtReplaceSettings.replaceNameField = nbtReplaceSettings.getOption("replaceNameField", unicode, "")
|
|
||||||
nbtReplaceSettings.replaceValueField = nbtReplaceSettings.getOption("replaceValueField", unicode, "")
|
|
||||||
nbtReplaceSettings.replaceValueTagType = nbtReplaceSettings.getOption("replaceValueTagType", int, 0)
|
|
||||||
|
|
||||||
class ReplaceValueTagType(object):
|
class ReplaceValueTagType(object):
|
||||||
"""
|
"""
|
||||||
@ -284,9 +178,11 @@ class ReplaceValueTagType(object):
|
|||||||
FLOAT = 6
|
FLOAT = 6
|
||||||
DOUBLE = 7
|
DOUBLE = 7
|
||||||
|
|
||||||
|
|
||||||
class NBTReplaceCommand(SimpleRevisionCommand):
|
class NBTReplaceCommand(SimpleRevisionCommand):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class FindReplaceNBT(QtCore.QObject):
|
class FindReplaceNBT(QtCore.QObject):
|
||||||
def __init__(self, editorSession, dialog):
|
def __init__(self, editorSession, dialog):
|
||||||
super(FindReplaceNBT, self).__init__()
|
super(FindReplaceNBT, self).__init__()
|
||||||
@ -422,8 +318,6 @@ class FindReplaceNBT(QtCore.QObject):
|
|||||||
if result.resultType == result.TileEntityResult:
|
if result.resultType == result.TileEntityResult:
|
||||||
self.editorSession.zoomAndInspectBlock(result.position)
|
self.editorSession.zoomAndInspectBlock(result.position)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def find(self):
|
def find(self):
|
||||||
searchNames = self.widget.searchNameCheckbox.isChecked()
|
searchNames = self.widget.searchNameCheckbox.isChecked()
|
||||||
targetName = self.widget.nameField.text()
|
targetName = self.widget.nameField.text()
|
||||||
@ -444,7 +338,6 @@ class FindReplaceNBT(QtCore.QObject):
|
|||||||
# Nothing to find
|
# Nothing to find
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
dim = self.editorSession.currentDimension
|
dim = self.editorSession.currentDimension
|
||||||
inSelection = self.widget.inSelectionCheckbox.isChecked()
|
inSelection = self.widget.inSelectionCheckbox.isChecked()
|
||||||
if inSelection:
|
if inSelection:
|
||||||
@ -513,8 +406,6 @@ class FindReplaceNBT(QtCore.QObject):
|
|||||||
uuid=uuid,
|
uuid=uuid,
|
||||||
resultType=NBTResultsEntry.EntityResult)
|
resultType=NBTResultsEntry.EntityResult)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def _findTileEntitiesInChunk(chunk):
|
def _findTileEntitiesInChunk(chunk):
|
||||||
for tileEntity in chunk.TileEntities:
|
for tileEntity in chunk.TileEntities:
|
||||||
if tileEntity.Position not in selection:
|
if tileEntity.Position not in selection:
|
||||||
@ -547,7 +438,6 @@ class FindReplaceNBT(QtCore.QObject):
|
|||||||
uuid=None,
|
uuid=None,
|
||||||
resultType=NBTResultsEntry.TileEntityResult)
|
resultType=NBTResultsEntry.TileEntityResult)
|
||||||
|
|
||||||
|
|
||||||
def _find():
|
def _find():
|
||||||
self.resultsDockWidget.show()
|
self.resultsDockWidget.show()
|
||||||
self.resultsModel.clear()
|
self.resultsModel.clear()
|
||||||
@ -653,50 +543,3 @@ class FindReplaceNBT(QtCore.QObject):
|
|||||||
|
|
||||||
def replaceSelected(self):
|
def replaceSelected(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class FindReplaceDialog(QtGui.QDialog):
|
|
||||||
def __init__(self, editorSession, *args, **kwargs):
|
|
||||||
super(FindReplaceDialog, self).__init__(*args, **kwargs)
|
|
||||||
self.editorSession = editorSession
|
|
||||||
self.blocktypes = editorSession.worldEditor.blocktypes
|
|
||||||
load_ui("find_replace.ui", baseinstance=self)
|
|
||||||
|
|
||||||
self.findReplaceBlocks = FindReplaceBlocks(editorSession, self)
|
|
||||||
|
|
||||||
self.findReplaceNBT = FindReplaceNBT(editorSession, self)
|
|
||||||
self.nbtTab.setLayout(Column(self.findReplaceNBT.widget, margin=0))
|
|
||||||
|
|
||||||
self.resultsWidgets = [
|
|
||||||
# self.findReplaceBlocks.resultsDockWidget,
|
|
||||||
self.findReplaceNBT.resultsDockWidget,
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
def execFindBlocks(self):
|
|
||||||
self.execTab(0)
|
|
||||||
|
|
||||||
def execFindReplaceBlocks(self):
|
|
||||||
self.execTab(1)
|
|
||||||
|
|
||||||
def execFindReplaceItems(self):
|
|
||||||
self.execTab(2)
|
|
||||||
|
|
||||||
def execFindReplaceCommands(self):
|
|
||||||
self.execTab(3)
|
|
||||||
|
|
||||||
def execFindReplaceNBT(self):
|
|
||||||
self.execTab(4)
|
|
||||||
|
|
||||||
def execTab(self, tabIndex):
|
|
||||||
self.tabWidget.setCurrentIndex(tabIndex)
|
|
||||||
self.exec_()
|
|
||||||
|
|
||||||
def exec_(self):
|
|
||||||
self.findReplaceNBT.dialogOpened()
|
|
||||||
# self.findReplaceBlocks.dialogOpened()
|
|
||||||
super(FindReplaceDialog, self).exec_()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user