示例#1
0
        def _dropEvent(event):
            def alg_dropped(algorithm_id, pos):
                alg = QgsApplication.processingRegistry().createAlgorithmById(
                    algorithm_id)
                if alg is not None:
                    self._addAlgorithm(alg, pos)
                else:
                    assert False, algorithm_id

            def input_dropped(id, pos):
                if id in [
                        param.id() for param in QgsApplication.instance().
                        processingRegistry().parameterTypes()
                ]:
                    self.addInputOfType(itemId, pos)

            if event.mimeData().hasFormat(
                    'application/x-vnd.qgis.qgis.algorithmid'):
                data = event.mimeData().data(
                    'application/x-vnd.qgis.qgis.algorithmid')
                stream = QDataStream(data, QIODevice.ReadOnly)
                algorithm_id = stream.readQString()
                QTimer.singleShot(
                    0,
                    lambda id=algorithm_id, pos=self.view.mapToScene(event.pos(
                    )): alg_dropped(id, pos))
                event.accept()
            elif event.mimeData().hasText():
                itemId = event.mimeData().text()
                QTimer.singleShot(0,
                                  lambda id=itemId, pos=self.view.mapToScene(
                                      event.pos()): input_dropped(id, pos))
                event.accept()
            else:
                event.ignore()
示例#2
0
 def _dropEvent(event):
     if event.mimeData().hasFormat('application/x-vnd.qgis.qgis.algorithmid'):
         data = event.mimeData().data('application/x-vnd.qgis.qgis.algorithmid')
         stream = QDataStream(data, QIODevice.ReadOnly)
         algorithm_id = stream.readQString()
         alg = QgsApplication.processingRegistry().createAlgorithmById(algorithm_id)
         if alg is not None:
             self._addAlgorithm(alg, event.pos())
         else:
             assert False, algorithm_id
     elif event.mimeData().hasText():
         itemId = event.mimeData().text()
         if itemId in [param.id() for param in QgsApplication.instance().processingRegistry().parameterTypes()]:
             self.addInputOfType(itemId, event.pos())
         event.accept()
     else:
         event.ignore()
示例#3
0
 def _dropEvent(event):
     if event.mimeData().hasFormat('application/x-vnd.qgis.qgis.algorithmid'):
         data = event.mimeData().data('application/x-vnd.qgis.qgis.algorithmid')
         stream = QDataStream(data, QIODevice.ReadOnly)
         algorithm_id = stream.readQString()
         alg = QgsApplication.processingRegistry().createAlgorithmById(algorithm_id)
         if alg is not None:
             self._addAlgorithm(alg, event.pos())
         else:
             assert False, algorithm_id
     elif event.mimeData().hasText():
         itemId = event.mimeData().text()
         if itemId in [param.id() for param in QgsApplication.instance().processingRegistry().parameterTypes()]:
             self.addInputOfType(itemId, event.pos())
         event.accept()
     else:
         event.ignore()
示例#4
0
        def _dropEvent(event):
            def alg_dropped(algorithm_id, pos):
                alg = QgsApplication.processingRegistry().createAlgorithmById(algorithm_id)
                if alg is not None:
                    self._addAlgorithm(alg, pos)
                else:
                    assert False, algorithm_id

            def input_dropped(id, pos):
                if id in [param.id() for param in QgsApplication.instance().processingRegistry().parameterTypes()]:
                    self.addInputOfType(itemId, pos)

            if event.mimeData().hasFormat('application/x-vnd.qgis.qgis.algorithmid'):
                data = event.mimeData().data('application/x-vnd.qgis.qgis.algorithmid')
                stream = QDataStream(data, QIODevice.ReadOnly)
                algorithm_id = stream.readQString()
                QTimer.singleShot(0, lambda id=algorithm_id, pos=self.view.mapToScene(event.pos()): alg_dropped(id, pos))
                event.accept()
            elif event.mimeData().hasText():
                itemId = event.mimeData().text()
                QTimer.singleShot(0, lambda id=itemId, pos=self.view.mapToScene(event.pos()): input_dropped(id, pos))
                event.accept()
            else:
                event.ignore()