Thomas B sent me a suggestion off list and allowed me to share it:

QgsProject.layersAdded.connect(func) actually seems to emit in just the right moment. This feels super finicky but so far it has worked flawlessly to set the layer.setSubsetString() *before* the actual query goes out to the DB. Hope I don't jinx it by posting ;)

Handle with care, and thanks Thomas!

Cheers, Hannes


Am 09.08.22 um 11:15 schrieb Johannes Kröger (WhereGroup) via QGIS-Developer:
Howdy!

I'd like to force a provider filter when a user adds a PostGIS layer and have it applied *before* any data is loaded. Setting it after the layer (and some of its big data) is loaded initially is not an option.

Is there a way to sneak in between "user clicked something in the GUI to load a table/query and QGIS will construct a QgsVectorLayer now" and "QGIS now talks to the PostGIS database to get the data for the new layer", maybe with a signal?

Something like a "layerAboutToBeLoaded" (like the opposite layerWillBeRemoved on https://qgis.org/pyqgis/master/core/QgsProject.html) basically. :o)

Cheers, Hannes

Attachment: OpenPGP_0x840A4B843789797F.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to