diff options
Diffstat (limited to '')
| -rw-r--r-- | src/editorui/editormain.py | 28 | ||||
| -rw-r--r-- | src/ui.py | 5 | 
2 files changed, 26 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) @@ -313,6 +313,11 @@ class KPLayerList(QtGui.QWidget):  	def selectedLayer(self):  		return KP.map.layers[self.selectedLayerIndex()] +	def selectLayer(self, row): +		index = self.listView.currentIndex() +		newIndex = index.sibling(row, 0) +		self.listView.setCurrentIndex(newIndex) +  	@QtCore.pyqtSlot(QtCore.QModelIndex)  	def handleRowChanged(self, current):  		self.selectedLayerChanged.emit(KP.map.layers[current.row()])  | 
