Closed bchartier closed 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 :
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 ?
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.
à faire : retirer de plugin_globals.py
la variable par défaut DEFAULT_CONFIG_FILE_URL
pour mettre la valeur directement dans preferences.py
.
La lecture des settings n'est faite de manière homogène dans le code du plugin :
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 :
post_ui_init
de plugin_main.py avec une vérification des settingsActions à réaliser :