def dropEvent(self, e): item = None if e.mimeData().hasFormat('application/x-qabstractitemmodeldatalist'): data = e.mimeData() sourceItem = QStandardItemModel() sourceItem.dropMimeData(data, QtCore.Qt.CopyAction, 0, 0, QtCore.QModelIndex()) item = sourceItem.item(0, 0) if item: itemName = item.text() currentCollection = self.actionManagerViewer.selectedCollectionName collectionActionIds = self.actionManagerViewer.actionManager.getCollectionActionIds( currentCollection) if item.hasChildren(): # Add the children: for childActionId in self.actionManagerViewer.actionManager.getActionIdsOfCategory( itemName): if self.actionManagerViewer.actionManager.isValidActionId( childActionId ) and not childActionId in collectionActionIds: self.actionManagerViewer.addCollectionActionEntry( childActionId) self.actionManagerViewer.actionManager.linkActionToCollection( childActionId, currentCollection) else: self.actionManagerViewer.actionManager.linkActionToCollection( itemName, currentCollection) super().dropEvent(e)
def getItemFromEvent(self, e): if e.mimeData().hasFormat('application/x-qabstractitemmodeldatalist'): data = e.mimeData() sourceItem = QStandardItemModel() sourceItem.dropMimeData(data, QtCore.Qt.CopyAction, 0, 0, QtCore.QModelIndex()) return sourceItem return None
def dragEnterEvent(self, e): item = None if e.mimeData().hasFormat('application/x-qabstractitemmodeldatalist'): data = e.mimeData() sourceItem = QStandardItemModel() sourceItem.dropMimeData(data, QtCore.Qt.CopyAction, 0, 0, QtCore.QModelIndex()) item = sourceItem.item(0, 0) if item: itemName = item.text() currentCollection = self.actionManagerViewer.selectedCollectionName if not self.actionManagerViewer.actionManager.isValidActionId(itemName) or \ self.actionManagerViewer.actionManager.isActionRegisteredForCollection(itemName, currentCollection): e.ignore() return super().dragEnterEvent(e)
def dropEvent(self, event): tmp = QStandardItemModel() tmp.dropMimeData(event.mimeData(), event.dropAction(), 0, 0, QtCore.QModelIndex()) self.add_to_layout(LayerBoxWidget(tmp.index(0, 0).data()))