• # Autre solution de patch

    Posté par . En réponse à la dépêche Modeste contribution à Audacity sur l'affichage des temps. Évalué à 7.

    B.3.c. lecture du code

    Le fichier qui nous intéresse est src/widgets/NumericTextCtrl.cpp; il définit le contenu de const BuiltinFormatString TimeConverterFormats[] et contient donc (j'enlève les commentaires et une partie du code) :
    C
    const BuiltinFormatString TimeConverterFormats[] = {
    {
    _("seconds"),
    _("01000,01000 seconds")
    },
    {
    _("hh:mm:ss + milliseconds"),
    _("0100 h 060 m 060.01000 s")
    },
    [...]
    }

    Comme la lecture du fichier l'indique, le contenu de chaînes comme "01000,01000 seconds" est analysé : le nombre est affiché suivant le format ainsi décrit.

    Bon, désolé d'avance si l'affichage est foireux, je ne sais pas comment citer un passage incluant un bout de code.

    Perso, quand j'ai vu le code, je me suis dit: "Tiens, des magic values. Et l'OP semble avoir besoin de recompiler pour les altérer? Dommage...".
    Je m'explique. Modifier une magic value, ça permettra de satisfaire ton besoin immédiat, mais demain quelqu'un aura peut-être besoin de faire un truc encore différent (j'y connais que dalle en multimédia, alors je peux me tromper). Si à chaque fois il faut recompiler... je trouve ça gênant.
    Ne serait-il pas faisable, en revanche, d'aller récupérer les informations dans un fichier de configuration? Dans le cas présent, il s'agit d'un ensemble de paires de string, contenant pour chacune le nom du mode d'affichage, et la description du format qui lui est associé.

    Je ne connais pas l'état du source, si c'est propre ou pas, comment est gérée la configuration (base de données lourde? XML? Répertoire contenant divers fichiers de configuration de petite taille? Utilisation de la classe de gestion de la config de wxwidgets?) donc ce n'est peut-être pas aussi trivial que ça, mais si tu hôtes d'un bout de code des constantes magiques, en expliquant ton besoin d'origine et le fait que du coup, cette modification permets de gérer d'une part ton besoin, sans rien détruire, et qu'en plus les éventuels autres besoins liés à cet affichage seront gérés sans modification du source, j'imagine mal le patch être mal reçu par les dev.
    En fait, de base, je vois mal des patch améliorant une fonctionnalité déjà présente être rejetés, contrairement à des demandes de fonctionnalités, comme déjà indiqué dans un autre fil par quelqu'un d'autre.

    PS: c'est sûr que les dépêches ont une meilleure visibilité, mais, en fait, c'est une entrée de forum que tu nous as fait non?