Пример #1
0
    def dropEvent(self, event):
        url = getDragUrl(event)
        if url is None:
            event.ignore()
            return
        event.acceptProposedAction()
        for library in self.libraries:
            identifier = library.getUrlIdentifier(url)
            if identifier is None:
                continue
            object = library[identifier]

            if isinstance(object, Group) and not self.accept_groups:
                return
            break
        if object in self.objects:
            return
        self.objects.append(object)
        icon = object.getIcon()
        if icon:
            item = QListWidgetItem(QIcon(icon), identifier)
        else:
            item = QListWidgetItem(identifier)
        self.widget.addItem(item)
        self.widget.emit(SIGNAL('objectDrop()'))
        self._updateValidator()
Пример #2
0
 def _getDragIdentifier(self, event):
     url = getDragUrl(event)
     if url is None:
         return None
     if not url.startswith(self.rule_type+':'):
         return None
     ignore = len(self.rule_type) + 1
     return int(url[ignore:])
Пример #3
0
 def filterDropEvent(self, event):
     url = getDragUrl(event)
     if url is None:
         event.ignore()
         return
     if self.filter.drop(url):
         event.accept()
     else:
         event.ignore()
Пример #4
0
 def dragEnterEvent(self, event):
     url = getDragUrl(event)
     if url is None:
         event.ignore()
         return
     for library in self.libraries:
         identifier = library.getUrlIdentifier(url)
         if identifier is not None:
             event.accept()
             return
     event.ignore()
Пример #5
0
 def getDragObject(self, event):
     url = getDragUrl(event)
     if url is None:
         event.ignore()
         return None
     event.acceptProposedAction()
     for library in self.libraries:
         identifier = library.getUrlIdentifier(url)
         if identifier is None:
             continue
         return library[identifier]
     return None