code: def eventFilter( self, object, event ):
          
          if ( not event.type() in (QEvent.DragEnter,
                                    QEvent.DragMove,
                                    QEvent.Drop) ):
              return False
          
          # support dragging and dropping
          if ( event.type() in (event.DragEnter, event.DragMove) ):
              data = event.mimeData()
              if ( data.hasFormat('application/x-actions') ):
                  event.acceptProposedAction()
              return True
          
          # handle creation of new items
          if ( event.type() == QEvent.Drop ):
              data      = event.mimeData()
              actions   = nativestring(data.data('application/x-actions'))
              
              # determine the drop item
              pos       = event.pos()
              pos.setY(pos.y() - 20)
              drop_item = self.uiMenuTREE.itemAt(pos)
              
              tree = self.uiMenuTREE
              for key in actions.split(','):
                  if ( not key ):
                      continue
                  
                  item = self.createActionItem(key)
                  self.addMenuItem(item, drop_item)
                  drop_item = item
                  
              return True
              
          return False
docs: Processes events for the menu tree.
          
          :param      event | <QEvent>