Пример #1
0
    def __init__(self, inputButton, *a, **kw):
        """
        Popup widget to change the binding for a view action.

        :type inputButton: ButtonModifierInput
        """
        super(ModifierInputWidget, self).__init__(f=Qt.Popup, *a, **kw)
        self.setMaximumWidth(150)

        frame = QtGui.QFrame()
        frame.setFrameStyle(QtGui.QFrame.Box)

        self.inputLabel = QtGui.QLabel(describeKeys(inputButton))
        self.inputLabel.setAlignment(Qt.AlignCenter)
        font = self.inputLabel.font()
        font.setPointSize(font.pointSize() * 1.5)
        font.setBold(True)
        self.inputLabel.setFont(font)
        if hasattr(inputButton.viewAction, "button"):
            s = "Click a mouse button or press a key, while holding any number of modifier keys (Shift, Ctrl, Alt)"
        else:
            s = "Press a key while holding any number of modifier keys (Shift, Ctrl, Alt)"

        self.helpLabel = QtGui.QLabel(s)
        frame.setLayout(Column(self.inputLabel, self.helpLabel))
        self.setLayout(Column(frame, margin=0))
        self.helpLabel.mousePressEvent = self.mousePressEvent
        self.inputButton = inputButton
Пример #2
0
    def __init__(self, editorSession, *args, **kwargs):
        super(MoveTool, self).__init__(editorSession, *args, **kwargs)
        self.overlayNode = scenenode.Node("moveOverlay")
        self._currentImport = None
        self._currentImportNode = None

        self.toolWidget = QtGui.QWidget()

        self.pointInput = CoordinateWidget()
        self.pointInput.pointChanged.connect(self.pointInputChanged)

        self.rotationInput = RotationWidget()
        self.rotationInput.rotationChanged.connect(self.rotationChanged)

        self.copyOptionsWidget = QtGui.QGroupBox(self.tr("Options"))

        self.copyAirCheckbox = QtGui.QCheckBox(self.tr("Copy Air"))
        self.copyOptionsWidget.setLayout(Column(self.copyAirCheckbox))

        confirmButton = QtGui.QPushButton(
            "Confirm")  # xxxx should be in worldview
        confirmButton.clicked.connect(self.confirmImport)
        self.toolWidget.setLayout(
            Column(self.pointInput, self.rotationInput, self.copyOptionsWidget,
                   confirmButton, None))
Пример #3
0
    def __init__(self, editorSession, tileEntityRef):
        super(CommandBlockEditorWidget, self).__init__()
        assert tileEntityRef.id == self.tileEntityID

        self.customNameLabel = QtGui.QLabel(self.tr("Custom Name: "))
        self.customNameField = QtGui.QLineEdit()

        self.trackOutputCheckbox = QtGui.QCheckBox(self.tr("Track Output"))
        self.successCountLabel = QtGui.QLabel(self.tr("Success Count: "))
        self.successCountSpinBox = QtGui.QSpinBox()


        self.commandTextEdit = QtGui.QTextEdit()
        self.commandTextEdit.setAcceptRichText(False)

        self.commandGroup = QtGui.QGroupBox(self.tr("Command Text:"))
        self.commandGroup.setLayout(Column(self.commandTextEdit))
        self.setLayout(Column(Row(self.customNameLabel, self.customNameField),
                              Row(self.trackOutputCheckbox, None,
                                  self.successCountLabel, self.successCountSpinBox),
                              self.commandGroup))

        self.tileEntityRef = tileEntityRef

        self.commandTextEdit.setText(tileEntityRef.Command)
        self.customNameField.setText(tileEntityRef.CustomName)
        self.trackOutputCheckbox.setChecked(tileEntityRef.TrackOutput != 0)
        self.successCountSpinBox.setValue(tileEntityRef.SuccessCount)
Пример #4
0
    def __init__(self, parent=None):
        super(BlockReplacementButton, self).__init__()

        self.replacementList = BlockReplacementList()
        self.replacementDialog = QtGui.QDialog(QtGui.qApp.mainWindow)

        self.replacementOk = QtGui.QPushButton(self.tr("OK"))
        self.replacementOk.clicked.connect(self.replacementDialog.accept)

        self.replacementDialog.setWindowTitle(self.tr("Choose blocks to replace"))
        self.replacementDialog.setLayout(Column(self.replacementList,
                                                Row(None, self.replacementOk)))

        self.oldBlockButton = BlockTypeButton(multipleSelect=True)
        self.newBlockButton = BlockTypeButton()
        self.advancedButton = QtGui.QPushButton(self.tr("Advanced..."))

        self.simpleButton = QtGui.QPushButton(self.tr("No, simple!"))
        self.simpleButton.setVisible(False)
        self.simpleButton.clicked.connect(self.goSimple)

        self.setLayout(Column(self.oldBlockButton,
                              self.newBlockButton,
                              self.advancedButton,
                              self.simpleButton,
                              margin=0))

        self.oldBlockButton.blocksChanged.connect(self.simpleBlocksChanged)
        self.newBlockButton.blocksChanged.connect(self.simpleBlocksChanged)
        self.advancedButton.clicked.connect(self.displayDialog)
Пример #5
0
    def __init__(self, dimension, textureAtlas, geometryCache, shareGLWidget,
                 *args, **kwargs):
        super(CameraWorldViewFrame, self).__init__(*args, **kwargs)

        self.worldView = view = CameraWorldView(dimension, textureAtlas,
                                                geometryCache, shareGLWidget)

        auxControlWidget = QtGui.QWidget()

        StickyMouselookSetting.connectAndCall(view.setStickyMouselook)

        stickyCheckbox = QtGui.QCheckBox(self.tr("Sticky Mouselook"))
        stickyCheckbox.setChecked(StickyMouselookSetting.value())
        stickyCheckbox.toggled.connect(StickyMouselookSetting.setValue)

        auxControlWidget.setLayout(Column(stickyCheckbox))

        self.viewControls = ViewControls(view, auxControlWidget)

        ViewDistanceSetting.connectAndCall(view.setViewDistance)

        viewDistanceInput = QtGui.QSpinBox(minimum=2, maximum=64, singleStep=2)
        viewDistanceInput.setValue(self.worldView.viewDistance)
        viewDistanceInput.valueChanged.connect(ViewDistanceSetting.setValue)

        MaxViewDistanceSetting.connectAndCall(viewDistanceInput.setMaximum)

        PerspectiveSetting.connectAndCall(view.setPerspective)

        perspectiveInput = QtGui.QCheckBox(self.tr("Perspective"))
        perspectiveInput.setChecked(view.perspective)
        perspectiveInput.toggled.connect(PerspectiveSetting.setValue)

        showButton = QtGui.QPushButton(self.tr("Show..."))
        showButton.setMenu(view.layerToggleGroup.menu)

        workplaneCheckbox = QtGui.QCheckBox(self.tr("Work Plane"))
        workplaneSpinSlider = SpinSlider()
        workplaneSpinSlider.setValue(64)
        workplaneSpinSlider.setMinimum(dimension.bounds.miny)
        workplaneSpinSlider.setMaximum(dimension.bounds.maxy)

        workplaneCheckbox.toggled.connect(view.toggleWorkplane)

        workplaneSpinSlider.valueChanged.connect(view.setWorkplaneLevel)

        self.setLayout(
            Column(Row(None,
                       workplaneCheckbox,
                       workplaneSpinSlider,
                       showButton,
                       perspectiveInput,
                       QtGui.QLabel(self.tr("View Distance:")),
                       viewDistanceInput,
                       self.viewControls.getShowHideButton(),
                       margin=0),
                   view,
                   margin=0))
Пример #6
0
    def __init__(self, editorSession, tileEntityRef):
        super(CommandBlockEditorWidget, self).__init__()
        assert tileEntityRef.id == self.tileEntityID

        self.editorSession = editorSession

        self.customNameLabel = QtGui.QLabel(self.tr("Custom Name: "))
        self.customNameField = QtGui.QLineEdit()

        self.trackOutputCheckbox = QtGui.QCheckBox(self.tr("Track Output"))
        self.successCountLabel = QtGui.QLabel(self.tr("Success Count: "))
        self.successCountSpinBox = QtGui.QSpinBox()

        self.gotoCommandButton = QtGui.QPushButton(self.tr("Go To Command"),
                                                   clicked=self.gotoCommand)
        self.gotoTargetButton = QtGui.QPushButton(self.tr("Go To Target"),
                                                  clicked=self.gotoTarget)
        self.gotoIndirectTargetButton = QtGui.QPushButton(
            self.tr("Go To Indirect Target"), clicked=self.gotoIndirectTarget)

        self.commandTextEdit = QtGui.QTextEdit()
        self.commandTextEdit.setAcceptRichText(False)

        self.commandGroup = QtGui.QGroupBox(self.tr("Command Text:"))
        self.commandGroup.setLayout(Column(self.commandTextEdit))
        self.setLayout(
            Column(
                Row(self.customNameLabel, self.customNameField),
                Row(self.trackOutputCheckbox, None, self.successCountLabel,
                    self.successCountSpinBox),
                Row(self.gotoCommandButton, self.gotoTargetButton,
                    self.gotoIndirectTargetButton), self.commandGroup))

        self.tileEntityRef = tileEntityRef

        self.commandTextEdit.setText(tileEntityRef.Command)
        self.customNameField.setText(tileEntityRef.CustomName)
        self.trackOutputCheckbox.setChecked(tileEntityRef.TrackOutput != 0)
        self.successCountSpinBox.setValue(tileEntityRef.SuccessCount)

        enabled = not editorSession.readonly

        self.trackOutputCheckbox.setEnabled(enabled)
        self.successCountSpinBox.setEnabled(enabled)
        self.commandTextEdit.setEnabled(enabled)
        self.customNameField.setEnabled(enabled)

        try:
            self.parsedCommand = ParseCommand(tileEntityRef.Command)
        except Exception:
            log.warn("Failed to parse command block.", exc_info=1)
            self.parsedCommand = None

            self.gotoTargetButton.setEnabled(False)
            self.gotoIndirectTarget.setEnabled(False)

        self.adjustSize()
Пример #7
0
    def __init__(self, editorSession, *args, **kwargs):
        """
        :type editorSession: EditorSession
        """
        super(SelectionTool, self).__init__(editorSession, *args, **kwargs)
        toolWidget = QtGui.QWidget()

        editorSession.selectionChanged.connect(self.selectionDidChange)

        self.toolWidget = toolWidget

        self.coordInput = SelectionCoordinateWidget()
        self.coordInput.boxChanged.connect(self.coordInputChanged)
        self.shapeInput = ShapeWidget()
        self.shapeInput.shapeChanged.connect(self.shapeDidChange)
        self.toolWidget.setLayout(
            Column(self.coordInput, self.shapeInput, None))

        self.cursorNode = SelectionCursor()
        self.overlayNode = scenegraph.Node()
        self.faceHoverNode = SelectionFaceNode()
        self.selectionNode = SelectionScene()
        self.overlayNode.addChild(self.selectionNode)
        self.overlayNode.addChild(self.faceHoverNode)

        self.boxHandleNode = BoxHandle()
        self.boxHandleNode.boundsChanged.connect(self.boxHandleResized)
        self.boxHandleNode.boundsChangedDone.connect(self.boxHandleResizedDone)
        self.overlayNode.addChild(self.boxHandleNode)

        self.newSelectionNode = None

        editorSession.dimensionChanged.connect(self.dimensionDidChange)
Пример #8
0
    def __init__(self, dimension, geometryCache, resourceLoader, shareGLWidget, *args, **kwargs):
        super(CameraWorldViewFrame, self).__init__(*args, **kwargs)

        self.worldView = view = CameraWorldView(dimension, geometryCache, resourceLoader, shareGLWidget)

        self.viewControls = ViewControls(view)

        viewDistanceInput = QtGui.QSpinBox(minimum=2, maximum=64, singleStep=2)
        viewDistanceInput.setValue(self.worldView.viewDistance)
        viewDistanceInput.valueChanged.connect(view.setViewDistance)

        perspectiveInput = QtGui.QCheckBox("Perspective")
        perspectiveInput.toggle()
        perspectiveInput.toggled.connect(view.setPerspective)

        showButton = QtGui.QPushButton("Show...")
        showButton.setMenu(view.layerToggleGroup.menu)

        self.setLayout(Column(Row(None,
                                  showButton,
                                  perspectiveInput,
                                  QtGui.QLabel("View Distance:"),
                                  viewDistanceInput,
                                  self.viewControls.getShowHideButton(), margin=0),
                              view, margin=0))
Пример #9
0
    def __init__(self, editorSession, *args, **kwargs):
        super(MoveTool, self).__init__(editorSession, *args, **kwargs)
        self.overlayNode = scenegraph.Node()

        self.loader = None
        self.dragStartFace = None
        self.dragStartPoint = None

        self.pendingImports = []

        self.pendingImportNodes = {}

        self.toolWidget = QtGui.QWidget()

        self.importsListWidget = QtGui.QListView()
        self.importsListModel = QtGui.QStandardItemModel()
        self.importsListWidget.setModel(self.importsListModel)
        self.importsListWidget.clicked.connect(self.listClicked)
        self.importsListWidget.doubleClicked.connect(self.listDoubleClicked)

        self.pointInput = CoordinateWidget()
        self.pointInput.pointChanged.connect(self.pointInputChanged)
        confirmButton = QtGui.QPushButton(
            "Confirm")  # xxxx should be in worldview
        confirmButton.clicked.connect(self.confirmImport)
        self.toolWidget.setLayout(
            Column(self.importsListWidget, self.pointInput, confirmButton,
                   None))
Пример #10
0
    def __init__(self, worldView, *args, **kwargs):
        """
        Popup window for quickly reviewing and assigning movement controls for a world view.

        :type worldView: WorldView
        :param worldView:
        :param args:
        :param kwargs:
        """
        super(ViewControls, self).__init__(f=Qt.Popup, *args, **kwargs)
        self.worldView = worldView
        layout = QtGui.QFormLayout()
        self.controlInputs = []

        for action in self.worldView.viewActions:
            if not action.hidden:
                modInput = ButtonModifierInput(action, enabled=False)
                self.controlInputs.append(modInput)
                layout.addRow(QtGui.QLabel(action.labelText), modInput)

        self.hideTime = time.time()

        action = QtGui.QAction(self.tr("Controls"), self)
        action.triggered.connect(self.toggleShowHide)

        self.controlsButton = QtGui.QToolButton()
        self.controlsButton.setDefaultAction(action)

        self.unlockButton = QtGui.QPushButton(
            self.tr("Edit Controls"), clicked=self.toggleUnlockControls)
        self.setLayout(Column(layout, self.unlockButton))
        self.unlocked = False
Пример #11
0
    def __init__(self, *args, **kwargs):
        super(NBTEditorWidget, self).__init__(*args, **kwargs)
        self.model = None
        self.treeView = QtGui.QTreeView()
        self.treeView.setAlternatingRowColors(True)
        self.treeView.clicked.connect(self.itemClicked)
        self.treeView.expanded.connect(self.itemExpanded)

        self.setLayout(Column(self.treeView))

        self.nbtTypesMenu = QtGui.QMenu()
        self.nbtTypesMenu.addAction(NBTIcon(1), self.tr("Byte"), self.addByte)
        self.nbtTypesMenu.addAction(NBTIcon(2), self.tr("Short"),
                                    self.addShort)
        self.nbtTypesMenu.addAction(NBTIcon(3), self.tr("Int"), self.addInt)
        self.nbtTypesMenu.addAction(NBTIcon(4), self.tr("Long"), self.addLong)
        self.nbtTypesMenu.addAction(NBTIcon(5), self.tr("Float"),
                                    self.addFloat)
        self.nbtTypesMenu.addAction(NBTIcon(6), self.tr("Double"),
                                    self.addDouble)
        self.nbtTypesMenu.addAction(NBTIcon(8), self.tr("String"),
                                    self.addString)
        self.nbtTypesMenu.addAction(NBTIcon(9), self.tr("List"), self.addList)
        self.nbtTypesMenu.addAction(NBTIcon(10), self.tr("Compound"),
                                    self.addCompound)

        self.nbtTypesMenu.addAction(NBTIcon(7), self.tr("Byte Array"),
                                    self.addByteArray)
        self.nbtTypesMenu.addAction(NBTIcon(11), self.tr("Int Array"),
                                    self.addIntArray)
Пример #12
0
    def __init__(self):
        super(Square, self).__init__()

        self.optionsWidget = QtGui.QWidget()
        self.hollowCheckbox = QtGui.QCheckBox()
        self.optionsWidget.setLayout(Column(self.hollowCheckbox))
        self.hollowCheckbox.toggled.connect(self.hollowChanged)
Пример #13
0
    def __init__(self, *a, **kw):
        super(ObjGraphWidget, self).__init__(*a, **kw)

        if objgraph is None:
            self.setLayout(Row(QtGui.QLabel("objgraph is not installed (and you probably don't have GraphViz "
                                            "either...) "), None))
            return

        self.inputWidget = QtGui.QLineEdit()
        self.inputWidget.setText(inputSetting.value(""))
        self.inputWidget.textChanged.connect(inputSetting.setValue)
        self.listWidget = QtGui.QListWidget()
        self.scrollArea = QtGui.QScrollArea()
        self.imageView = QtGui.QLabel()
        #self.scrollArea.setMinimumSize(300, 300)
        self.scrollArea.setWidget(self.imageView)

        for name, count in objgraph.most_common_types(100):
            item = QtGui.QListWidgetItem()
            item.setText("%s (%d)" % (name, count))
            item.setData(Qt.UserRole, name)
            self.listWidget.addItem(item)

        self.listWidget.itemSelectionChanged.connect(self.itemChanged)
        refsButton = QtGui.QPushButton("Refs", clicked=self.showRefs)
        backrefsButton = QtGui.QPushButton("Backrefs", clicked=self.showBackrefs)
        graphButton = QtGui.QPushButton("Graph", clicked=self.showGraph)
        garbageButton = QtGui.QPushButton("Garbage", clicked=self.showGarbage)

        inputRow = Row(self.inputWidget, refsButton, backrefsButton, garbageButton, graphButton)
        self.widthLimitBox = QtGui.QSpinBox(value=14)
        self.depthLimitBox = QtGui.QSpinBox(value=7)
        limitRow = Row(QtGui.QLabel("Graph Width"), self.widthLimitBox, QtGui.QLabel("Graph Depth"), self.depthLimitBox)
        self.setLayout(Column(inputRow, limitRow, self.listWidget, (self.scrollArea, 1)))
        self.setMinimumSize(800, 600)
Пример #14
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.displayNameLabel = QtGui.QLabel("namenamename")
        self.lastPlayedLabel = QtGui.QLabel("lastplayed")
        self.versionInfoLabel = QtGui.QLabel("version")

        #self.sizeLabel = QtGui.QLabel(self.tr("Calculating area..."))
        # areaText = self.tr("%.02f million square meters") % (world.chunkCount * 0.25)
        # diskSize = 0
        # if hasattr(worldAdapter, 'worldFolder'):
        #     folder = worldAdapter.worldFolder
        #     for rf in folder.findRegionFiles():
        #         diskSize += os.stat(rf).st_size
        # else:
        #     diskSize = os.stat(worldAdapter.filename).st_size
        #
        # self.diskSizeLabel = QtGui.QLabel(self.tr("%0.2f MB") % (diskSize / 1000000.0))

        infoColumn = Column(
            self.displayNameLabel,
            self.lastPlayedLabel,
            self.versionInfoLabel,
            #self.diskSizeLabel,
            None)

        layout = Row(20, infoColumn)

        self.setLayout(layout)
Пример #15
0
    def __init__(self, blocks, textureAtlas):
        super(BlockTypesItemWidget, self).__init__()
        if len(blocks) == 1:
            block = blocks[0]
            self.blockIcon = BlockTypeIcon(block, textureAtlas)

            nameLabel = QtGui.QLabel(block.displayName)

            internalNameLimit = 60
            internalName = block.internalName + block.blockState
            if len(internalName) > internalNameLimit:
                internalName = internalName[:internalNameLimit-3]+"..."

            internalNameLabel = QtGui.QLabel("(%d:%d) %s" % (block.ID, block.meta, internalName), enabled=False)

            parentTypeLabel = QtGui.QLabel("")
            if block.meta != 0:
                parentBlock = block.blocktypeSet[block.internalName]
                if parentBlock.displayName != block.displayName:
                    parentTypeLabel.setText("<font color='blue'>%s</font>" % parentBlock.displayName)

            labelsColumn = Column(Row(nameLabel, None, parentTypeLabel),
                                  internalNameLabel)

            row = Row(self.blockIcon, (labelsColumn, 1))
            self.setLayout(row)

            # row.setSizeConstraint(QtGui.QLayout.SetFixedSize)
        else:
            frame = QtGui.QFrame()
            frame.setMinimumSize(64, 64)
            iconLimit = 16

            blocksToIcon = blocks[:iconLimit]
            icons = [BlockTypeIcon(b, textureAtlas) for b in blocksToIcon]
            x = 0
            y = 0
            for i, icon in enumerate(icons):
                # icon.setMinimumSize(32, 32)
                icon.setParent(frame)
                icon.setGeometry(x, y, 32, 32)
                icon.setFrameStyle(icon.Box)
                icon.setLineWidth(1)
                x += 18
                if i % 2:
                    x -= 32
                y += 4


            nameLimit = 6
            remaining = len(blocks) - nameLimit
            blocksToName = blocks[:nameLimit]
            iconNames = ", ".join(b.displayName for b in blocksToName)
            if remaining > 0:
                iconNames += " and %d more..." % remaining
            self.setLayout(Row(frame, QtGui.QLabel(iconNames, wordWrap=True)))

        self.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Minimum)
        self.adjustSize()
Пример #16
0
 def __init__(self, parent=None, blocks=None, textureAtlas=None):
     super(BlockTypesItemWidget, self).__init__(parent)
     self.childWidgets = []
     self.mainLayout = None
     self.blocks = blocks
     self.textureAtlas = textureAtlas
     self.setLayout(Column())
     self.updateContents()
Пример #17
0
def FourUpWorldViewFrame(dimension, textureAtlas, geometryCache, sharedGLWidget):
    view = FourUpWorldView(dimension, textureAtlas, geometryCache, sharedGLWidget)

    widget = QtGui.QWidget()
    widget.setLayout(Column(view, margin=0))
    widget.worldView = view

    return widget
Пример #18
0
    def __init__(self, editorSession, *args, **kwargs):
        """
        :type editorSession: EditorSession
        """
        super(SelectionTool, self).__init__(editorSession, *args, **kwargs)
        toolWidget = QtGui.QWidget()

        editorSession.selectionChanged.connect(self.selectionDidChange)

        self.toolWidget = toolWidget

        self.optionsButton = QtGui.QPushButton(self.tr("Options"))

        self.optionsMenu = QtGui.QMenu()
        self.optionsButton.setMenu(self.optionsMenu)

        classicSelectionAction = self.optionsMenu.addAction(
            self.tr("Classic Selection"))
        stickySelectionAction = self.optionsMenu.addAction(
            self.tr("Sticky Selection"))

        self.coordInput = SelectionCoordinateWidget()
        self.coordInput.boxChanged.connect(self.coordInputChanged)
        self.shapeInput = ShapeWidget(addShapes=[ChunkShape()])
        self.shapeInput.shapeChanged.connect(self.shapeDidChange)
        self.shapeInput.shapeOptionsChanged.connect(self.shapeDidChange)

        self.toolWidget.setLayout(
            Column(self.optionsButton, self.coordInput, self.shapeInput, None))

        self.cursorNode = SelectionCursor()
        self.overlayNode = scenenode.Node("selectOverlay")
        self.faceHoverNode = SelectionFaceNode()
        self.selectionNode = SelectionScene()
        self.overlayNode.addChild(self.selectionNode)
        self.overlayNode.addChild(self.faceHoverNode)

        self.boxHandleNode = BoxHandle()
        self.boxHandleNode.boundsChanged.connect(self.boxHandleResized)
        self.boxHandleNode.boundsChangedDone.connect(self.boxHandleResizedDone)
        self.overlayNode.addChild(self.boxHandleNode)

        self.newSelectionNode = None

        classicSelectionAction.setCheckable(True)
        classicSelectionAction.toggled.connect(ClassicSelectionOption.setValue)
        classicSelectionAction.setChecked(ClassicSelectionOption.value())
        ClassicSelectionOption.connectAndCall(self.setClassicSelection)

        stickySelectionAction.setCheckable(True)
        stickySelectionAction.toggled.connect(StickySelectionOption.setValue)
        stickySelectionAction.setChecked(StickySelectionOption.value())
        StickySelectionOption.connectAndCall(self.setStickySelection)

        editorSession.dimensionChanged.connect(self.dimensionDidChange)
        editorSession.revisionChanged.connect(self.revisionDidChange)
Пример #19
0
    def __init__(self, brushTool):
        super(Replace, self).__init__(brushTool)
        self.displayName = self.tr("Replace")
        self.optionsWidget = QtGui.QWidget()
        self.replacementsButton = BlockReplacementButton()
        self.replacementsButton.replacementsChanged.connect(
            brushTool.updateCursor)
        self.replacementsButton.editorSession = brushTool.editorSession

        self.optionsWidget.setLayout(Column(self.replacementsButton))
Пример #20
0
    def getOptionsWidget(self):
        if self.optionsWidget:
            return self.optionsWidget

        widget = QtGui.QWidget()
        self.trunkSlider = SpinSlider()
        self.trunkSlider.setValue(1)
        widget.setLayout(Column(self.trunkSlider, None))
        self.optionsWidget = widget
        return widget
Пример #21
0
    def __init__(self, editorSession, *args, **kwargs):
        super(FloodFillTool, self).__init__(editorSession, *args, **kwargs)

        toolWidget = QtGui.QWidget()
        self.toolWidget = toolWidget

        self.cursorNode = SelectionCursor()

        self.floodXPosCheckbox = QtGui.QCheckBox(self.tr("X+"), checked=True)
        self.floodXNegCheckbox = QtGui.QCheckBox(self.tr("X-"), checked=True)
        self.floodYPosCheckbox = QtGui.QCheckBox(self.tr("Y+"), checked=True)
        self.floodYNegCheckbox = QtGui.QCheckBox(self.tr("Y-"), checked=True)
        self.floodZPosCheckbox = QtGui.QCheckBox(self.tr("Z+"), checked=True)
        self.floodZNegCheckbox = QtGui.QCheckBox(self.tr("Z-"), checked=True)

        floodDirsLayout = Column(
            Row(
                self.floodXPosCheckbox,
                self.floodYPosCheckbox,
                self.floodZPosCheckbox,
            ),
            Row(
                self.floodXNegCheckbox,
                self.floodYNegCheckbox,
                self.floodZNegCheckbox,
            ),
        )

        self.blockTypeWidget = BlockTypeButton()
        self.blockTypeWidget.block = self.editorSession.worldEditor.blocktypes[
            "stone"]
        self.blockTypeWidget.editorSession = self.editorSession

        self.indiscriminateCheckBox = QtGui.QCheckBox("Ignore block meta")
        self.indiscriminateCheckBox.setChecked(False)

        self.hoverCheckbox = QtGui.QCheckBox("Hover")
        toolWidget.setLayout(
            Column(Row(QtGui.QLabel("Block:"), self.blockTypeWidget),
                   Row(self.hoverCheckbox, self.indiscriminateCheckBox),
                   floodDirsLayout, None))
Пример #22
0
    def __init__(self, slotLayout, editorSession, tileEntityRef):
        super(GenericContainerEditorWidget, self).__init__()
        assert tileEntityRef.id == self.tileEntityID

        self.inventoryEditor = InventoryEditor(slotLayout)
        self.inventoryEditor.editorSession = editorSession

        self.setLayout(Column(self.inventoryEditor))

        self.tileEntityRef = tileEntityRef

        self.inventoryEditor.inventoryRef = self.getItemsRef()
Пример #23
0
    def __init__(self, editorSession, *args, **kwargs):
        """
        :type editorSession: EditorSession
        """
        super(SelectionTool, self).__init__(editorSession, *args, **kwargs)
        toolWidget = QtGui.QWidget()

        editorSession.selectionChanged.connect(self.selectionDidChange)

        self.toolWidget = toolWidget

        self.coordInput = SelectionCoordinateWidget()
        self.coordInput.boxChanged.connect(self.coordInputChanged)
        self.shapeInput = ShapeWidget()
        self.shapeInput.shapeChanged.connect(self.shapeDidChange)
        self.deselectButton = QtGui.QPushButton(self.tr("Deselect"))
        self.deselectButton.clicked.connect(self.deselect)
        self.deleteSelectionButton = QtGui.QPushButton(self.tr("Delete"))
        self.deleteSelectionButton.clicked.connect(self.deleteSelection)
        self.deleteBlocksButton = QtGui.QPushButton(self.tr("Delete Blocks"))
        self.deleteBlocksButton.clicked.connect(self.deleteBlocks)
        self.deleteEntitiesButton = QtGui.QPushButton(self.tr("Delete Entities"))
        self.deleteEntitiesButton.clicked.connect(self.deleteEntities)
        self.fillButton = QtGui.QPushButton(self.tr("Fill"))
        self.fillButton.clicked.connect(self.fill)
        self.replaceButton = QtGui.QPushButton(self.tr("Replace"))
        self.replaceButton.clicked.connect(self.replace)

        self.toolWidget.setLayout(Column(self.coordInput,
                                         self.shapeInput,
                                         self.deselectButton,
                                         self.deleteSelectionButton,
                                         self.deleteBlocksButton,
                                         self.deleteEntitiesButton,
                                         self.fillButton,
                                         self.replaceButton,
                                         None))

        self.cursorNode = SelectionCursor()
        self.overlayNode = scenegraph.Node()
        self.faceHoverNode = SelectionFaceNode()
        self.selectionNode = SelectionScene()
        self.selectionNode.dimension = editorSession.currentDimension  # xxx dimensionDidChange
        self.overlayNode.addChild(self.selectionNode)
        self.overlayNode.addChild(self.faceHoverNode)

        self.boxHandleNode = BoxHandle()
        self.boxHandleNode.boundsChanged.connect(self.boxHandleResized)
        self.boxHandleNode.boundsChangedDone.connect(self.boxHandleResizedDone)
        self.overlayNode.addChild(self.boxHandleNode)

        self.newSelectionNode = None
Пример #24
0
    def __init__(self, editorSession, *args, **kwargs):
        super(FindReplaceDialog, self).__init__(*args, **kwargs)
        self.editorSession = editorSession
        self.blocktypes = editorSession.worldEditor.blocktypes
        self.setupUi(self)

        self.findReplaceBlocks = FindReplaceBlocks(editorSession, self)
        self.replaceBlocksTab.setLayout(
            Column(self.findReplaceBlocks.widget, margin=0))

        self.findReplaceCommandText = FindReplaceCommandText(
            editorSession, self)
        self.commandBlocksTab.setLayout(
            Column(self.findReplaceCommandText.widget, margin=0))

        self.findReplaceNBT = FindReplaceNBT(editorSession, self)
        self.nbtTab.setLayout(Column(self.findReplaceNBT, margin=0))

        self.resultsWidgets = [
            # self.findReplaceBlocks.resultsDockWidget,
            self.findReplaceNBT.resultsDockWidget,
        ]
Пример #25
0
    def __init__(self, editorSession, *args, **kwargs):
        super(FloodFillTool, self).__init__(editorSession, *args, **kwargs)

        toolWidget = QtGui.QWidget()
        self.toolWidget = toolWidget

        self.blockTypeWidget = BlockTypeButton()
        self.blockTypeWidget.block = self.editorSession.worldEditor.blocktypes[
            "stone"]
        self.blockTypeWidget.editorSession = self.editorSession

        toolWidget.setLayout(
            Column(Row(QtGui.QLabel("Block:"), self.blockTypeWidget), None))
Пример #26
0
    def createOptionsWidget(self, brushTool):
        if self.optionsWidget:
            return self.optionsWidget

        self.optionsWidget = QtGui.QWidget()
        label = QtGui.QLabel(self.tr("Fill Biome:"))
        self.biomeTypeBox = QtGui.QComboBox()
        self.biomeTypes = BiomeTypes()
        for biome in self.biomeTypes.types.values():
            self.biomeTypeBox.addItem(biome.name, biome.ID)

        self.biomeTypeBox.activated.connect(brushTool.updateCursor)
        self.optionsWidget.setLayout(Column(Row(label, self.biomeTypeBox, margin=0), None, margin=0))
        return self.optionsWidget
Пример #27
0
    def __init__(self, worldAdapter, parent=None):
        QtGui.QPushButton.__init__(self, parent)
        self.filename = worldAdapter.filename
        self.setCheckable(True)
        self.setFlat(True)

        try:
            # mapLabel = QtGui.QLabel()
            # mapLabel.setFixedSize(72, 72)
            displayNameLimit = 50
            name = displayName(worldAdapter.filename)
            if len(name) > displayNameLimit:
                name = name[:displayNameLimit] + "..."
            self.displayNameLabel = QtGui.QLabel(name)
            self.lastPlayed = lastPlayedTime(worldAdapter)
            lastPlayedText = self.lastPlayed.humanize(
            ) if self.lastPlayed else "Unknown"
            self.lastPlayedLabel = QtGui.QLabel(lastPlayedText)
            #self.sizeLabel = QtGui.QLabel(self.tr("Calculating area..."))
            # areaText = self.tr("%.02f million square meters") % (world.chunkCount * 0.25)
            # diskSize = 0
            # if hasattr(worldAdapter, 'worldFolder'):
            #     folder = worldAdapter.worldFolder
            #     for rf in folder.findRegionFiles():
            #         diskSize += os.stat(rf).st_size
            # else:
            #     diskSize = os.stat(worldAdapter.filename).st_size
            #
            # self.diskSizeLabel = QtGui.QLabel(self.tr("%0.2f MB") % (diskSize / 1000000.0))

            infoColumn = Column(
                self.displayNameLabel,
                self.lastPlayedLabel,
                #self.diskSizeLabel,
                None)

            #layout = Row(mapLabel, (infoColumn, 1), None)
            layout = infoColumn
            #if usefulFilename(world) == world.displayName:
            #    boxLabelText = world.displayName
            #else:
            #    boxLabelText = self.tr("%s (%s)" % (world.displayName, usefulFilename(world)))

            self.setLayout(layout)
            self.setMinimumSize(layout.sizeHint())
            self.setSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
                               QtGui.QSizePolicy.MinimumExpanding)

        except EnvironmentError as e:
            setWidgetError(self, e)
Пример #28
0
def IsoWorldViewFrame(world, geometryCache, resourceLoader, sharedGLWidget):
    isoView = IsoWorldView(world, geometryCache, resourceLoader,
                           sharedGLWidget)

    widget = QtGui.QWidget()
    widget.setLayout(Column(
        Row((None, 1),
            #ScaleSlider(isoView),
            ),
        isoView,
    ))
    widget.worldView = isoView

    return widget
Пример #29
0
    def __init__(self):
        super(CameraPrefs, self).__init__()
        self.labelText = self.tr("Camera View")

        layout = QtGui.QFormLayout()

        maxViewDistanceInput = QtGui.QSpinBox()
        maxViewDistanceInput.setMinimum(0)
        maxViewDistanceInput.valueChanged.connect(
            MaxViewDistanceSetting.setValue)
        MaxViewDistanceSetting.connectAndCall(maxViewDistanceInput.setValue)

        layout.addRow(self.tr("Max View Distance"), maxViewDistanceInput)

        self.setLayout(Column(layout, None))
Пример #30
0
    def createOptionsWidget(self, brushTool):
        if self.optionsWidget:
            return self.optionsWidget

        self.optionsWidget = QtGui.QWidget()
        label = QtGui.QLabel(self.tr("Fill Block:"))
        self.blockTypeButton = BlockTypeButton()
        self.blockTypeButton.editorSession = brushTool.editorSession
        self.blockTypeButton.block = brushTool.editorSession.worldEditor.blocktypes['minecraft:stone']
        self.blockTypeButton.blocksChanged.connect(brushTool.updateCursor)

        self.optionsWidget.setLayout(Column(
            Row(label, self.blockTypeButton, margin=0),
            None, margin=0))
        return self.optionsWidget