<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def dropEvent(self, ev):
 """Process drop event."""

        # use function above to accept event if it contains a file URL
        files = self._checkDragDropEvent(ev)
        if files:
            pos = ev.pos()
            dropitem = self.itemAt(pos)
            dprint(1, "dropped on", pos.x(), pos.y(), dropitem and str(dropitem.text(1)))
            # if event originated with ourselves, reorder items
            if ev.source() is self:
                self.reorderItems(dropitem, *files)
            # else event is from someone else, accept the dropped files
            else:
                self._dropped_on = dropitem
                self.emit(SIGNAL("droppedFiles"), *files)
                # if event originated with another DPTreeWidget, emit a draggedAwayFiles() signal on its behalf
                if isinstance(ev.source(), DPTreeWidget):
                    ev.source().emit(SIGNAL("draggedAwayFiles"), *files)