Au passage, le point de vue du développeur :
Tout d'abord, le développement d'un écart dynamique paraît peu faisable : ce serait très compliqué à programmer et, une fois mis en place, il faudrait alors un doctorat pour créer un élément.
Ensuite, de par le fonctionnement actuel des branchements entre conducteurs et éléments, si on ne veut pas perdre les schémas créés jusqu'à maintenant (et j'aime à croire, après tout le feedback que nous avons eu, que des gens utilisent QElectroTech), on ne peut pas supprimer les éléments actuels de la collection.
D'ailleurs, si un espacement à 20px comme proposé ci-dessus semble convenir, cela n'exclut pas que certains utilisateurs apprécient un espacement à 10px. Cela n'exclut pas non plus que d'autres apprécient un espacement à 30, 40 ou 42 pixels. Bref, il me paraît difficile de fixer de manière pérenne un espacement inter-bornes "qui-va-bien". La preuve, il semblerait que 10px ait été une erreur.
À un moment donné, chaque utilisateur est libre de faire lui-même ses éléments ultra-spécialisés. Exit donc l'idée de fournir nous-même les éléments dont les bornes sont espacées de 42 pixels en bas, 41 pixels en haut et 43 sur les côtés préférés du capitaine.
En revanche, on peut imaginer deux approches complémentaires pour attaquer le problème :
Améliorer les fonctionnalités relatives aux textes ; cela implique notamment la possibilité de tourner un texte sur le schéma. Les textes relativement longs pourraient alors être disposés différemment.
Fournir plusieurs variantes des éléments concernés : typiquement 10px et 20px pour commencer. Quitte à les faire cohabiter, ils seraient dans la même collection, dans les mêmes dossiers. L'utilisateur aurait alors le choix de l'espacement pour chaque élément posant problème.
Reste le problème du bordel apparent dans le panel d'élements (enfin, pas de quoi en faire une maladie je pense) si on met autant d'éléments en double. De ce point de vue-là, il serait assez facile de tagger les éléments sur leur écart, avec des valeurs prédéfinies : 10px, 20px, any.
Il serait également facile d'implémenter un filtre sur ce tag dans le panel d'éléments. Actuellement, il y a un petit champ pour filtrer sur le nom ; on pourrait ajouter une petite liste déroulante qui ferait apparaître :
pour 10px : les éléments estampillés 10 px (donc arborant un espacement de 10 pixels) et tous les éléments non concernés par ce critère - cela correspond à la collection actuelle.
pour 20px : les éléments estampillés 20 px (donc arborant un espacement de 20 pixels) et tous les éléments non concernés par ce critère.
pour any : absolument tous les éléments.
Et bien sûr, on pourrait mettre le filtre sur 20 px par défaut. À noter que le système est rapidement extensible à d'autres écarts voire à d'autres critères de filtrage.
Gray's Law of Programming:
'n+1' trivial tasks are expected to be accomplished in the same time as 'n' tasks.
Logg's Rebuttal to Gray's Law:
'n+1' trivial tasks take twice as long as 'n' trivial tasks