'''
Created on 15/06/2018

@author: rjag008
'''
try:
    from PySide import QtCore, QtGui
    signalHandle = QtCore.Signal
except ImportError:
    #from PyQt4 import QtCore, QtGui
    #signalHandle = QtCore.pyqtSignal
    pass
            
class PaintGraphicsScene(QtGui.QGraphicsScene):

    # Signal emitted when the mouse is moved and pressed
    mouseMoved = signalHandle(float, float)
    mousePressed = signalHandle(QtGui.QGraphicsSceneMouseEvent, object)
    # Signal emitted when point and axis items are moved
    pointItemMoved = signalHandle(int, QtCore.QPointF)

    def __init__(self, parent=None):
        QtGui.QGraphicsScene.__init__(self, parent)

    def mousePressEvent(self, event):
        pos = event.scenePos()
        self.mousePressed.emit(event, self.itemAt(pos))
        QtGui.QGraphicsScene.mousePressEvent(self, event)

    def mouseMoveEvent(self, event):
        pos = event.scenePos()
        self.mouseMoved.emit(pos.x(), pos.y())
        QtGui.QGraphicsScene.mouseMoveEvent(self, event)

    def setPointItemMoved(self, key, pos):
        self.pointItemMoved.emit(key, pos)

