def dragEnterEvent(self, event): if event.source() is self: return else: data = event.mimeData() link = struct.loadMimeData(data) if link: # ourself? if isinstance(link, struct.DocLink): if link.doc() == self.__parent.doc(): return # already contained? if not self.__parent.model().validateDragEnter(link): return QtGui.QTreeView.dragEnterEvent(self, event)
def __dropLink(self, data): # parse link link = struct.loadMimeData(data) if not link: return False # what to do? if isinstance(link, struct.DocLink): self._docLinkAct.setEnabled(True) self._revLinkAct.setEnabled(len(link.revs()) == 1) else: self._docLinkAct.setEnabled(False) action = self._dropMenu.exec_(QtGui.QCursor.pos()) if action is self._docLinkAct: pass elif action is self._revLinkAct: if isinstance(link, struct.DocLink): link = struct.RevLink(link.revs()[0]) else: return False return self.insertLink(link)