예제 #1
0
    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)
예제 #2
0
    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
예제 #3
0
    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)
예제 #4
0
 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()))