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, HannesAm 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
OpenPGP_0x840A4B843789797F.asc
Description: OpenPGP public key
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