geo2france / idg-qgis-plugin

Plugin QGIS pour la consultation des données des différentes Infrastructure de Données Géographiques en France
GNU General Public License v2.0
14 stars 4 forks source link

Incohérence dans la gestion des settings #74

Open bchartier opened 1 month ago

bchartier commented 1 month ago

La lecture des settings n'est faite de manière homogène dans le code du plugin :

        # Read the qgis plugin settings
[...]
            s.value(
                "{0}/download_files_at_startup".format(self.PLUGIN_TAG),
                self.DOWNLOAD_FILES_AT_STARTUP,
            )

Cette dernière méthode de lecture des settings ne renvoie pas False mais "false". Cela entraine dans la suite du code un téléchargement systématique des fichiers de config.

Le test pour savoir si les fichiers de config doivent être téléchargés est réalisé à deux endroits différents de deux manières différentes :

Actions à réaliser :

bchartier commented 1 month ago

Quand j'ai créé ce ticket je relevais que ce n'était pas logique de traiter le téléchargement des fichiers de manières différentes dans dlg_settings.py et post_ui_init de plugin_main.py. Je me suis trompé sur ce point.

Un traitement particulier réalisé dans la méthode apply de la classe ConfigOptionsPage (dlg_settings.py) peut se justifier car l'utilisateur pourrait ajouter une nouvelle IDG. Aujourd'hui une validation de la modification des settings entraîne systématiquement le téléchargement de tous les projets qui ne sont pas masqués (appel de DownloadAllIdgFilesAsync).

À mon avis : Pour optimiser la chose il faudrait ne télécharger que les fichiers pour lesquels il y a eu une modification réalisée par l'utilisateur dans la fenêtre dlg_settings. Parce qu'aujourd'hui, on télécharge les fichiers de toutes les IDG non masquées même si on clique sur le bouton Ok sans rien modifier. Même chose si l'on modifie un paramètre général du plugin qui n'est pas spécifiquement associé à une IDG (par exemple debug_mode, download_files_at_startup).

Par exemple au lieu de surcharger les settings comme cela : https://github.com/geo2france/idg-qgis-plugin/blob/d4252ee377054c69f5d19053988ff9b2ab14651d/plugin/idg/gui/dlg_settings.py#L133-L145 on pourrait comparer les valeurs avant et après modif de settings.custom_idgs et settings.hidden_idgs pour identifier quels fichiers de quelles IDG doivent être téléchargés.

Pour savoir si un fichier doit être téléchargé il faudrait idéalement :

Un fichier absent qui doit être ajouté à l'explorateur doit être téléchargé. Un fichier déjà présent alors download_files_at_startup ne vaut pas True ne devrait pas être téléchargé.

@jbdesbas : qu'en penses-tu ?

bchartier commented 1 month ago

Du coup je propose de simplifier le présent ticket :

Actions à réaliser :

La dernière partie du ticket a été déplacée dans un nouveau ticket : #78.

bchartier commented 1 week ago

à faire : retirer de plugin_globals.py la variable par défaut DEFAULT_CONFIG_FILE_URL pour mettre la valeur directement dans preferences.py.