summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/editorui/editormain.py6
-rw-r--r--src/editorui/paths.py52
2 files changed, 20 insertions, 38 deletions
diff --git a/src/editorui/editormain.py b/src/editorui/editormain.py
index d11642a..297ac34 100644
--- a/src/editorui/editormain.py
+++ b/src/editorui/editormain.py
@@ -264,9 +264,6 @@ class KPEditorWidget(QtGui.QGraphicsView):
nodeItem = KPEditorNode(node)
self.scene().addItem(nodeItem)
- self.scene().addItem(nodeItem.buttonProxy)
- self.scene().addItem(nodeItem.stageProxy)
- self.scene().addItem(nodeItem.worldProxy)
self.painting = node
self.paintingItem = item
@@ -287,9 +284,6 @@ class KPEditorWidget(QtGui.QGraphicsView):
item = KPEditorNode(node)
self.scene().addItem(item)
- self.scene().addItem(item.buttonProxy)
- self.scene().addItem(item.stageProxy)
- self.scene().addItem(item.worldProxy)
# Paint a path to this node (if one is selected)
sourceItem, sourceNode = None, None
diff --git a/src/editorui/paths.py b/src/editorui/paths.py
index 4dca31e..f6ea252 100644
--- a/src/editorui/paths.py
+++ b/src/editorui/paths.py
@@ -6,8 +6,7 @@ class KPEditorNode(KPEditorItem):
SNAP_TO = (12,12)
- class toggleButton(QtGui.QPushButton):
-
+ class ToggleButton(QtGui.QPushButton):
stateToggled = QtCore.pyqtSignal(int)
@@ -29,7 +28,6 @@ class KPEditorNode(KPEditorItem):
def toggle(self):
-
self.state += 1
if self.state == 3:
self.state = 0
@@ -38,7 +36,6 @@ class KPEditorNode(KPEditorItem):
def paintEvent(self, event):
-
painter = QtGui.QPainter(self)
painter.setBackgroundMode(Qt.TransparentMode)
@@ -52,22 +49,21 @@ class KPEditorNode(KPEditorItem):
painter.end()
- class hiddenProxy(QtGui.QGraphicsProxyWidget):
- def __init__(self, button):
- QtGui.QGraphicsProxyWidget.__init__(self)
+ class HiddenProxy(QtGui.QGraphicsProxyWidget):
+ def __init__(self, button, parent, x, y):
+ QtGui.QGraphicsProxyWidget.__init__(self, parent)
self.setWidget(button)
- self.setZValue(self.zValue()+1000)
+ self.setPos(x, y)
+ self.setZValue(parent.zValue()+1000)
self.hide()
- class levelSlotSpinner(QtGui.QSpinBox):
-
+ class LevelSlotSpinner(QtGui.QSpinBox):
def __init__(self):
QtGui.QSpinBox.__init__(self)
self.setRange(1, 99)
-
self.setPalette(QtGui.QPalette(QtGui.QColor(0,0,0,0)))
@@ -81,23 +77,25 @@ class KPEditorNode(KPEditorItem):
self.setZValue(101)
self._boundingRect = QtCore.QRectF(-24, -24, 48, 48)
- self._tinyRect = QtCore.QRectF(-12, -12, 24, 24)
+ self._levelRect = self._boundingRect
+ self._stopRect = QtCore.QRectF(-12, -12, 24, 24)
+ self._tinyRect = QtCore.QRectF(-6, -6, 12, 12)
if not hasattr(KPEditorNode, 'SELECTION_PEN'):
KPEditorNode.SELECTION_PEN = QtGui.QPen(Qt.blue, 1, Qt.DotLine)
- self.button = self.toggleButton()
- self.buttonProxy = self.hiddenProxy(self.button)
+ self.button = self.ToggleButton()
+ self.buttonProxy = self.HiddenProxy(self.button, self, 12, -12)
self.button.stateToggled.connect(self.stateChange)
- self.world = self.levelSlotSpinner()
- self.worldProxy = self.hiddenProxy(self.world)
+ self.world = self.LevelSlotSpinner()
+ self.worldProxy = self.HiddenProxy(self.world, self, -42, 24)
self.world.valueChanged.connect(self.worldChange)
- self.stage = self.levelSlotSpinner()
- self.stageProxy = self.hiddenProxy(self.stage)
+ self.stage = self.LevelSlotSpinner()
+ self.stageProxy = self.HiddenProxy(self.stage, self, 6, 24)
self.stage.valueChanged.connect(self.stageChange)
@@ -111,6 +109,7 @@ class KPEditorNode(KPEditorItem):
node = self._nodeRef()
if state == 1:
+ node.isStop = True
node.level = [1, 1]
self.world.setValue(node.level[0])
self.stage.setValue(node.level[1])
@@ -145,19 +144,12 @@ class KPEditorNode(KPEditorItem):
node = self._nodeRef()
x, y = node.position
self.setPos(x+12, y+12)
- self.buttonProxy.setPos(self.x()+12, self.y()-24)
- self.worldProxy.setPos(self.x()-42, self.y()+24)
- self.stageProxy.setPos(self.x()+6, self.y()+24)
def _itemMoved(self, oldX, oldY, newX, newY):
node = self._nodeRef()
node.position = (newX-12, newY-12)
- self.buttonProxy.setPos(newX+12, newY-24)
- self.worldProxy.setPos(newX-42, newY+24)
- self.stageProxy.setPos(newX+6, newY+24)
-
for exit in node.exits:
exit.qtItem.updatePosition()
@@ -172,14 +164,14 @@ class KPEditorNode(KPEditorItem):
painter.setBrush(QtGui.QColor(0, 0, 0, 0))
painter.setPen(QtGui.QColor(0, 0, 0, 0))
painter.drawPixmap(self._boundingRect.topLeft(), QtGui.QPixmap("Resources/BlackLevel.png"))
- selectionRect = self._boundingRect.adjusted(-1,-1,1,1)
+ selectionRect = self._boundingRect.adjusted(1,5,-1,-5)
elif node.isStop:
brush = QtGui.QBrush(QtGui.QColor(255, 220, 220))
painter.setPen(QtGui.QColor(255, 255, 255))
painter.setBrush(brush)
- painter.drawEllipse(self._tinyRect)
- selectionRect = self._tinyRect.adjusted(-1,-1,1,1)
+ painter.drawEllipse(self._stopRect)
+ selectionRect = self._stopRect.adjusted(-1,-1,1,1)
else:
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
@@ -218,10 +210,6 @@ class KPEditorNode(KPEditorItem):
layer.nodes.remove(node)
- self.scene().removeItem(self.buttonProxy)
- self.scene().removeItem(self.stageProxy)
- self.scene().removeItem(self.worldProxy)
-
if len(node.exits) == 2:
# let's try to join the two!
pathOne, pathTwo = node.exits