Description
Ce ticket est dérivé de #74
Dans le ticket cité ci-dessus, 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 :
idg-qgis-plugin/plugin/idg/gui/dlg_settings.py
Lines 133 to 145 in d4252ee
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 :
- tester si le fichier est présent dans l'arborescence du plugin
- voir la valeur de
download_files_at_startup
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 ?