With an installed eventfiler on your ui, you can catch all the events
class MyEventFilter(QtCore.QObject):
def __init__(self, _parent):
super(MyEventFilter, self).__init__()
self.parent = _parent
def eventFilter(self, _obj, _event):
if _event.type() == QtCore.QEvent.Close:
if not self.on_close():
_event.ignore()
return True
elif _event.type() == QtCore.QEvent.Type.DragEnter:
if _event.mimeData().hasFormat('application/vred-tree-item'):
_event.accept()
for tempFormatStr in _event.mimeData().formats():
print '"' + tempFormatStr + '"'
print '"' + str(_event.mimeData().hasFormat(tempFormatStr)) + '"'
print '"' + str(_event.mimeData().data(tempFormatStr)) + '"'
elif _event.type() == QtCore.QEvent.Type.DragLeave:
pass
elif _event.type() == QtCore.QEvent.Type.DragMove:
pass
elif _event.type() == QtCore.QEvent.Type.Drop:
tempNodes = getSelectedNodes()
_event.setDropAction(QtCore.Qt.CopyAction)
_event.accept()
return super(type(self), self).eventFilter(_obj, _event)
self.eventFilter = MyEventFilter(self)
self.ui.installEventFilter(self.eventFilter)
The correct format for the data seems to be "application/vred-tree-item"
But i do not know how to get the nodes. Anyone has an idea?
As a workaround you can maybe use the selectedNodes.
Best regards Marc