Skip to content

Téléchargement d'une IDG lors de validation des settings #78

Open
@bchartier

Description

@bchartier

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 :

settings = self.plg_settings.get_plg_settings()
# misc
settings.version = __version__
settings.custom_idgs = ",".join(tablewidgetToList(self.idgs_list, 0))
hidden__idgs_arr = []
for cb in self.checkboxes:
print(cb.text(), cb.checkState())
if cb.checkState() == 0:
hidden__idgs_arr.append(cb.text())
# Add to hidden PF
settings.hidden_idgs = ",".join(hidden__idgs_arr)

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 ?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions