summaryrefslogtreecommitdiff
path: root/src/editorui.py
diff options
context:
space:
mode:
authorColin Noga <Tempus@Spectrum-Song.local>2011-11-17 06:44:17 -0600
committerColin Noga <Tempus@Spectrum-Song.local>2011-11-17 06:44:17 -0600
commit68e66b16255ea2603bd323083e3b5b43280caff1 (patch)
tree412b5b48a9910526d70b0b4c70326c937bf20663 /src/editorui.py
parentf14806abe907d6e04a12c5e2990c1e10a34ed103 (diff)
downloadkoopatlas-68e66b16255ea2603bd323083e3b5b43280caff1.tar.gz
koopatlas-68e66b16255ea2603bd323083e3b5b43280caff1.zip
Deleting Editor Items and their associated shitpiles of underlying abstractions is now implemented.
Diffstat (limited to 'src/editorui.py')
-rw-r--r--src/editorui.py53
1 files changed, 48 insertions, 5 deletions
diff --git a/src/editorui.py b/src/editorui.py
index 3b9b74e..6b0815c 100644
--- a/src/editorui.py
+++ b/src/editorui.py
@@ -237,6 +237,18 @@ class KPEditorObject(KPEditorItem):
self._layerRef().updateCache()
+ def remove(self):
+
+ obj = self._objRef()
+ layer = self._layerRef()
+
+ index = layer.objects.index(obj)
+ layer.objects.pop(index)
+ layer.updateCache()
+ del obj
+
+
+
class KPEditorDoodad(QtGui.QGraphicsPixmapItem):
def __init__(self, doodad, layer):
QtGui.QGraphicsPixmapItem.__init__(self)
@@ -400,8 +412,8 @@ class KPEditorDoodad(QtGui.QGraphicsPixmapItem):
origX = originalPos.x()
origY = originalPos.y()
- dy = origY - objY
- dx = origX - objX
+ dy = origY - objY
+ dx = origX - objX
rads = math.atan2(dy, dx)
origAngle = math.degrees(rads)
@@ -409,8 +421,8 @@ class KPEditorDoodad(QtGui.QGraphicsPixmapItem):
- dy = mouseY - objY
- dx = mouseX - objX
+ dy = mouseY - objY
+ dx = mouseX - objX
rads = math.atan2(dy, dx)
angle = math.degrees(rads)
@@ -431,7 +443,7 @@ class KPEditorDoodad(QtGui.QGraphicsPixmapItem):
# Fucking Transform can't do independent transforms with doing matrix math directly.
# And before anyone asks, using QTransform.scale() is no good.
-
+
if self.resizing:
obj = self._doodadRef()
scenePos = event.scenePos()
@@ -474,6 +486,17 @@ class KPEditorDoodad(QtGui.QGraphicsPixmapItem):
KPEditorItem.mouseReleaseEvent(self, event)
+ def remove(self):
+
+ doodad = self._doodadRef()
+ layer = self._layerRef()
+
+ index = layer.objects.index(doodad)
+ layer.objects.pop(index)
+ del doodad
+
+
+
class KPMapScene(QtGui.QGraphicsScene):
def __init__(self):
@@ -753,3 +776,23 @@ class KPEditorWidget(QtGui.QGraphicsView):
QtGui.QGraphicsView.mouseMoveEvent(self, event)
+ def keyPressEvent(self, event):
+ if event.key() == QtCore.Qt.Key_Delete or event.key() == QtCore.Qt.Key_Backspace:
+ scene = self.scene()
+
+ selection = scene.selectedItems()
+ if len(selection) > 0:
+ for obj in selection:
+ obj.remove()
+ obj.setSelected(False)
+ scene.removeItem(obj)
+ scene.update()
+ self.update()
+ return
+
+ else:
+ QtGui.QGraphicsView.keyPressEvent(self, event)
+
+
+
+