Class: QgsCustomDropHandler

class qgis.gui.QgsCustomDropHandler

Bases: PyQt5.QtCore.QObject

Abstract base class that may be implemented to handle new types of data to be dropped in QGIS.

Implementations have three approaches they can use to handle drops.

1. The simplest approach is to implement handeFileDrop() when they need to handle dropped files (i.e. with mime type “text/uri-list”).

2. Reimplement handleCustomUriDrop() when they want to handle dropped custom QgsMimeDataUtils.Uri entries, for instance handling dropping custom entries from the browser tree (with mime type “application/x-vnd.qgis.qgis.uri”). In this case the implementation’s customUriProviderKey() must match the uri entry’s providerKey.

3. Reimplement handleMimeData() to directly handle dropped QMimeData. Subclasses should take care when overriding this method. When a drop event occurs, Qt will lock the source application of the drag for the duration of the drop event handling via handleMimeData() (e.g. dragging files from explorer to QGIS will lock the explorer window until the drop handling has been complete). Accordingly handleMimeData() implementations must return quickly and defer any intensive or slow processing.

Methods

childEvent

connectNotify

customEvent

customUriProviderKey

Type of custom URI recognized by the handler.

disconnectNotify

handleCustomUriDrop

Called from QGIS after a drop event with custom URI known by the handler.

handleFileDrop

Called when the specified file has been dropped onto QGIS.

handleMimeData

Called when the specified mime data has been dropped onto QGIS.

isSignalConnected

receivers

sender

senderSignalIndex

timerEvent

childEvent()
connectNotify()
customEvent()
customUriProviderKey(self) → str

Type of custom URI recognized by the handler. This must match the URI entry’s providerKey in order for handleCustomUriDrop() to be called.

Return type

str

disconnectNotify()
handleCustomUriDrop(self, uri: QgsMimeDataUtils.Uri)

Called from QGIS after a drop event with custom URI known by the handler.

In order for handleCustomUriDrop() to be called, subclasses must also implement customUriProviderKey() to indicate the providerKey value which the handler accepts.

Parameters

uri (QgsMimeDataUtils.Uri) –

handleFileDrop(self, file: str) → bool

Called when the specified file has been dropped onto QGIS. If true is returned, then the handler has accepted this file and it should not be further processed (e.g. by other QgsCustomDropHandlers).

The base class implementation does nothing.

This method is not called directly while drop handling is occurring, so the limitations described in handleMimeData() about returning quickly do not apply.

Parameters

file (str) –

Return type

bool

handleMimeData(self, data: QMimeData)

Called when the specified mime data has been dropped onto QGIS.

The base class implementation does nothing.

Subclasses should take care when overriding this method. When a drop event occurs, Qt will lock the source application of the drag for the duration of the drop event handling (e.g. dragging files from explorer to QGIS will lock the explorer window until the drop handling has been complete).

Accordingly, only implementations must be lightweight and return ASAP. (For instance by copying the relevant parts of data and then handling the data after a short timeout).

Parameters

data (QMimeData) –

isSignalConnected()
receivers()
sender()
senderSignalIndex()
timerEvent()