summaryrefslogtreecommitdiff
path: root/src/editorui
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/editorui/editormain.py28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/editorui/editormain.py b/src/editorui/editormain.py
index 11df8dd..c3d2aea 100644
--- a/src/editorui/editormain.py
+++ b/src/editorui/editormain.py
@@ -741,19 +741,33 @@ class KPEditorWidget(QtGui.QGraphicsView):
def mousePressEvent(self, event):
- # itemsUnder = self.scene().items(self.mapToScene(event.pos()), Qt.IntersectsItemShape, Qt.AscendingOrder)
if event.button() == Qt.RightButton:
self._tryToPaint(event)
event.accept()
- # elif itemsUnder:
- # QtGui.QGraphicsView.mousePressEvent(self, event)
+ elif event.modifiers() == Qt.ControlModifier:
+ if isinstance(self.scene().currentLayer, KPPathLayer):
+ QtGui.QGraphicsView.mousePressEvent(self, event)
+ return
+
+ itemsUnder = self.scene().items(self.mapToScene(event.pos()), Qt.IntersectsItemShape, Qt.AscendingOrder)
+
+ if itemsUnder:
+
+ self.scene().clearSelection()
+
+ kLayer = itemsUnder[0]._layerRef()
+ if isinstance(kLayer, (KPPathTileLayer, KPPathLayer)):
+ QtGui.QGraphicsView.mousePressEvent(self, event)
+ return
+
+ KP.mainWindow.handleSelectedLayerChanged(kLayer)
+ index = KP.map.refLayer(kLayer)
+ print 'selecting row {0}'.format(index)
+ KP.mainWindow.layerList.selectLayer(index)
- # if len(self.scene().selectedItems()) < 2:
- # self.scene().clearSelection()
- # itemsUnder[0].setSelected(True)
- # itemsUnder[0].grabMouse()
+ itemsUnder[0].setSelected(True)
else:
QtGui.QGraphicsView.mousePressEvent(self, event)