Interface utilisateur

Présentation générale

Biblizou s’intègre dans QGIS sous la forme d’un panneau latéral ancrable (QDockWidget), accessible depuis le menu Extensions ‣ Biblizou. Le panneau est défini dans biblizou_dockwidget_base.ui (Qt Designer) et piloté par BiblizouDockWidget (biblizou_dockwidget.py).

Il se compose de trois zones :

  • Un en-tête avec le logo et le titre

  • Un sélecteur de dossier de travail, commun à tous les modules

  • Un widget à onglets donnant accès aux quatre modules (FSD, TaxRef, BDC Statuts)

  • Un pied-de-page avec un bouton [i] Aide et un bouton options signalé par un

figuré d’engrenage

Tous les traitements sont lancés dans des QThread distincts afin de ne pas bloquer l’interface QGIS. La progression est reportée dans la barre de statut principale de QGIS (statusBar().showMessage()) et les messages détaillés dans le panneau Vue ‣ Panneaux ‣ Journal des messages sous la catégorie Biblizou.

Une barre de chargement apparait en pied-de-page lors des traitements et disparait lorsque les traitements sont terminés ou interrompus. Le dernier message d’étape s’affiche également au-dessus de la barre de progression

Dossier de travail

Le widget QgsFileWidget (mQgsFileWidget) en mode GetDirectory est commun à l’ensemble des modules. Il désigne le dossier dans lequel :

  • les fichiers XML téléchargés ou déposés manuellement doivent se trouver ;

  • le fichier biblizou.gpkg sera créé ou mis à jour par tous les modules.

Une validation bloque l’exécution de tout workflow si le chemin est absent ou invalide.

Onglet FSD

Cet onglet permet de lancer le moissonnage des Formulaires Standards de Données (voir Module FSD — Formulaires Standards de Données).

Widgets de saisie :

Widget (nom objet)

Type

Rôle

mapLayerZnieff

QgsMapLayerComboBox

Couche polygonale de référence pour les ZNIEFF (filtre : couches polygonales uniquement)

mapLayerN2k

QgsMapLayerComboBox

Couche polygonale de référence pour les sites Natura 2000 (filtre : couches polygonales uniquement)

mQgsFileWidget

QgsFileWidget

Dossier de travail contenant les fichiers XML

Note

Les couches de référence sélectionnées dans cet onglet ne sont pas transmises au thread de traitement FsdProcessingThread : seul le chemin working_folder lui est passé. La sélection spatiale dans DwlXml s’effectue en interrogeant directement le projet QGIS (via QgsProject.instance()), ce qui suppose que les couches WFS Patrinat sont déjà chargées dans le projet.

Validation (validate_fsd()) :

  • La couche ZNIEFF de référence doit être sélectionnée.

  • La couche Natura 2000 de référence doit être sélectionnée.

  • Le dossier de travail doit exister sur le disque.

Bouton btnRunFsdLancer le moissonnage FSD :

  1. Appel de validate_fsd().

  2. Affichage d’une boîte de confirmation récapitulant le dossier de travail.

  3. Instanciation de FsdProcessingThread et connexion de ses signaux.

  4. Démarrage du thread ; le bouton est désactivé pendant l’exécution.

  5. À la fin (signal finished), réactivation du bouton et message de succès.

Onglet TaxRef

Cet onglet permet de consolider les taxons présents dans des couches du projet avec le référentiel national TaxRef via l’API INPN (voir Module TaxRef — Consolidation taxonomique).

Widgets de saisie :

Widget (nom objet)

Type

Rôle

tableTaxref

QTableWidget (3 colonnes)

Table de configuration des sources de cd_nom

btnAddLayerRowTaxtef

QPushButton

Ajoute une ligne dans tableTaxref

Structure du tableau ``tableTaxref`` :

Chaque ligne correspond à une source de codes taxons :

Colonne

Type de widget

Rôle

0

QgsMapLayerComboBox (couches vectorielles)

Couche source contenant les cd_nom

1

QgsFieldComboBox (synchronisé avec col. 0)

Champ de la couche contenant les cd_nom

2

QPushButton (icône croix)

Supprime la ligne

Les colonnes 0 et 1 sont extensibles ; la colonne 2 s’ajuste au contenu.

Validation (validate_taxref()) :

  • Le dossier de travail doit être valide.

  • Au moins une ligne doit être configurée dans tableTaxref.

Bouton btnRunTaxrefLancer la consolidation TaxRef :

  1. Appel de validate_taxref().

  2. Extraction des paires {layer_id, column} depuis tableTaxref via get_taxref_consolidation_data().

  3. Confirmation indiquant le nombre de couches à traiter.

  4. Instanciation de TaxrefProcessingThread avec les paramètres working_folder, consolidation_config et gpkg_path.

  5. Démarrage du thread.

Onglet BDC Statuts

Cet onglet permet d’interroger la Base de Données sur les statuts de conservation de l’INPN et de consolider les résultats avec les taxons du projet (voir Module BDC — Base de Données sur les statuts de Conservation).

Widgets de saisie :

Widget (nom objet)

Type

Rôle

comboBoxDpt

QComboBox éditable + QCompleter

Sélection du département de référence (filtrage par nom, stocke le code_insee)

tableStat

QTableWidget (3 colonnes)

Table de configuration des sources de cd_nom pour les statuts

btnAddLayerRowStat

QPushButton

Ajoute une ligne dans tableStat

Liste déroulante département (comboBoxDpt) :

Alimentée depuis data/dept_fr.csv (colonnes nom_officiel, code_insee). La liste est rendue éditable et dotée d’un QCompleter en mode MatchContains (insensible à la casse) permettant de filtrer les départements en saisissant n’importe quelle partie du nom. La valeur stockée (currentData()) est le code_insee, transmis à l’API.

Structure du tableau ``tableStat`` : identique à tableTaxref (couche + champ + supprimer).

Validation (validate_stat()) :

  • Le dossier de travail doit être valide.

  • Un département doit être sélectionné (currentData() non nul).

  • Au moins une ligne doit être configurée dans tableStat.

Bouton btnRunStatAssocier à la BDC :

  1. Appel de validate_stat().

  2. Confirmation récapitulant le département, le nombre de couches et le chemin du GeoPackage.

  3. Instanciation de BdStatutsProcessingThread avec les paramètres gpkg_path, code_insee et consolidation_config.

  4. Démarrage du thread.

Comportement commun aux threads

Les trois threads (FsdProcessingThread, TaxrefProcessingThread, BdStatutsProcessingThread) partagent le même schéma de signaux et de réponses UI :

Signal émis par le thread

Comportement dans BiblizouDockWidget

progress(step, total, message)

Affichage dans iface.mainWindow().statusBar() : “Biblizou : [message] ([step]/[total])”

log(message)

Écriture dans QgsMessageLog sous la catégorie Biblizou (niveau Info)

finished(message)

Réactivation du bouton lanceur + QMessageBox.information

error(message)

Réactivation de tous les boutons + QMessageBox.critical

À la fermeture du panneau (closeEvent), le signal closingPlugin est émis pour permettre au plugin principal (biblizou.py) de nettoyer ses références.

Référence des fichiers source

Fichier

Rôle

biblizou_dockwidget_base.ui

Définition Qt Designer du panneau (widgets, layout, styles QSS)

biblizou_dockwidget.py

Logique de l’interface : validation, collecte des paramètres, gestion des threads

data/dept_fr.csv

Liste des départements français (nom_officiel, code_insee)