Accentuées et génération de code

Please use this forum to signal bugs.
Merci d'utiliser ce forum pour signaler des bugs.

Accentuées et génération de code

Postby Teaniel » Thu 6 Dec 2012 08:45

Bonjour,

Toujours sous Ubuntu Quantal (12.10).
Je voulais simplement signaler que, ni le générateur de code, ni le roundtrip ne respectent les accentuées dans le code.
Je veux dire par là dans les commentaires, et surtout dans les chaînes de caractères.
A la génération, comme au rétro ces caractères sont perdus (pas transformés, ce qui indiquerait un conflit de page de code).
Serait-il possible de corriger cela?

Par avance merci :)
A bientôt,
Marc
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57

Re: Accentuées et génération de code

Postby Bruno Pagès » Thu 6 Dec 2012 13:54

Bonjour,

Là je suis sous RedHat et je n'ai pas ce problème, les caractères accentués dans les commentaires sont bien produits et le roundtrip fait ce qu'il faut. J'ai mis des caractères accentués dans des descriptions ainsi que dans un corps d'opération via une chaine de caractères. Je retrouve bien les caractères attendus lorsque je visualise le code produit dans Bouml ou en éditant/modifiant le code produit via xcoral/emacs/nedit par contre vi ou un affichage dans le shell (via cat par exemple) n'affiche pas correctement ceux-ci.

A noter que je n'ai rien indiqué au niveau "ensemble de caractères" dans l'éditeur d’environnement.
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 464
Joined: Mon 20 Feb 2012 08:23
Location: France

Re: Accentuées et génération de code

Postby Teaniel » Thu 6 Dec 2012 22:43

Votre message m'a mis la puce à l'oreille et j'ai vérifié.
Chez moi non plus, rien de spécifié dans l'éditeur d'environnement (pas étonnant, j'ai pris la config par défaut sans rien y changer).
Par contre, pris d'une inspiration, j'y ai mis le jeu de caractères 'System', et là le problème est résolu côté roundtrip. Mais pas pour la génération.
En effet, si je modifie un fichier généré en y ajoutant des accentuées, que je lance ensuite le roundtrip sur la classe visée, je retrouve bien mes accentuées dans les commentaires.
Par contre si ensuite je lance une génération (après avoir fait une modification quelconque), alors les accentuées sont effacées de mon fichier.
Y aurait-il un truc à paramétrer côté génération?

Cordialement,
Marc
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57

Re: Accentuées et génération de code

Postby Bruno Pagès » Fri 7 Dec 2012 08:35

Bonjour,

Il n'y a rien a de particulier à paramétrer coté génération ni reverse/roundtrip concernant les caractères.

Comme il est indiqué dans le chapitre trouble shootings de la documentation, en interne et dans les fichiers projet les caractères sont sauvés sur 8 bits, la spécification de l'ensemble de caractères via le dialogue d'environnement indique comment transformer un QChar de Qt en un caractère sur 8 bits et inversement. Les plug-outs et donc les générateurs/reverse/roundtrip manipulent eux aussi les caractères sur 8 bits.

La différence de comportement entre la génération et le reverse/roundtrip est donc très curieux :shock:

J'ai fait un essai rapide hier sous Quantal, les caractères accentués n'étaient pas produits mais je ne pouvais pas non plus utiliser les caractères accentués en dehors de Bouml, le problème vient peut être de la virtualisation.
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 464
Joined: Mon 20 Feb 2012 08:23
Location: France

Re: Accentuées et génération de code

Postby Teaniel » Fri 7 Dec 2012 09:48

Bonjour,

En ce qui me concerne, je ne suis plus virtualisé (j'y ai renoncé car apparemment mon pc n'a pas les ressources suffisantes), et j'ai le même souci.
Ce qui me ferait plutot éliminer l'hypothèse de la virtualisation comme cause.
De mon côté, je vais reprendre les essais en utilisant diverses pages de code.
Je vais aussi changer d'éditeur, et prendre celui de qt comme point de départ, en vérifiant la page de code que lui utilise (je crois que ça peut s'y paramétrer). En effet, pour essayer, j'avais pris gedit hier.

Je vous tiens au jus.
Cordialement,
Marc
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57

Re: Accentuées et génération de code

Postby Teaniel » Fri 7 Dec 2012 10:38

Re :)

Bon, j'ai fait quelques essais de génération : set environnement, choisir un jeu de caractères, modifier une classe, puis la générer.
L'ouvrir avec l'éditeur de binaire de QT. Le format n'a jamais changé. En particulier, les accentuées ne sont jamais écrits (même pas sous la forme de caractères incompréhensibles), et les caractères en général ne sortent jamais sur plusieurs octets (ça devrait être le cas en utf16 et 32 au minimum si je ne me trompe pas ;), désolé je ne connais pas très bien la représentation des caractères dans les pages de code :oops: ).
Au passage, j'ai réussi à planter bouml quand je suis passé en utf32. A mon avis, il n'a pas dû aimer mes tergiversations sur le jeu de caractères à utiliser (m'embête cuila a pas savoir comment écrire son code... Je plante, ca lui apprendra ;) ).
Plus sérieusement, ce comportement tend à me faire croire qu'il y aurait peut-être un bug au niveau de la traduction côté génération.
En effet, dans le sens roundtrip, si on accorde les pages de code ça fonctionne bien.

Voila, j'espère avoir pu vous aider,
Amicalement
Marc
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57

Re: Accentuées et génération de code

Postby Bruno Pagès » Fri 7 Dec 2012 18:25

J'ai fait des tests sous Quantal (hors virtualisation, en live) et j'ai pu comprendre ce qui se passe :
- si on utilise une version 4.6 de QT tout va bien, c'est ce qui se passe sous Ubuntu 10.04 que j'utilise pour developper Bouml
- si on utilise une version 4.8.1 de Qt on retrouve votre comportement. C'est donc le cas sous Quantal mais aussi sous MacOS ce que je n'avais pas vu

Le problème se situe dans la gestion des QTextStream basé sur un QByteArray en argument, dans une version 4.8 les caractères accentués sont perdus, et je n'ai pas pu palier à cela même en paramétrant un codec ou demandant la non détection de l'UTF8 etc. Pour moi c'est un bug introduit dans QT 4.8 car ne pas pourvoir indirectement ajouter un caractère (8 bits) dans une structure de donnée manipulant des caractères( 8 bits) n'a aucun sens !

La bonne nouvelle c'est que ce bug disparait si j'utilise un QTextStream basé sur un QString, c'est à dire en faisant de façon compliquée et chère avec des translations de caractères quelque chose qui ne nécessitait pas de translation :roll:

Je n'ai plus qu'à trouver la version précise de Qt où le bug a été introduit pour mettre une compilation conditionnelle, QT4 est franchement pénible, je n'avais pas tout ces problèmes avec Qt3 et Qt2.4 ...

A propos du codec System, si vous l'utilisez le code généré (après remplacement du QByteArray en QString si besoin) sera lisible même en affichant le fichier via cat, les éditeurs comme gedit affichent également bien la chose. Si vous n'utilisez pas de codec l'affichage direct par cat ne donne pas ce qui est attendu, par contre gedit affiche ce qui est attendu. Bouml marche avec le codec System ou sans codec (après remplacement du QByteArray en QString si besoin).
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 464
Joined: Mon 20 Feb 2012 08:23
Location: France

Re: Accentuées et génération de code

Postby Bruno Pagès » Sat 8 Dec 2012 10:43

Après avoir testé différentes versions de QT sous différentes versions d'OS le problème apparait avec la 4.8.1, tout va bien jusqu'à la 4.8.0 incluse :evil:
Et pour éviter cela il n'est pas utile d'utiliser un QString, il suffit que je force l'encoding en latin-1
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 464
Joined: Mon 20 Feb 2012 08:23
Location: France

Re: Accentuées et génération de code

Postby Teaniel » Sun 9 Dec 2012 11:33

Bonjour,

Super :)

Je suppose que cela sera en place dans la prochaine version?
A moins qu'il y aie une configuration à effectuer?
(j'avoue n'avoir pas tout à fait compris la fin des deux derniers posts :? , il me semble qu'il s'agit là d'explications sur comment vous avez corrigé le logiciel, je me trompe?)

EDIT : Par contre, merci d'avoir posté cela, il me semble que cela me sera fort utile pour mes propres programmes. :P (et puis à d'autres également bien sur!)

Cordialement,
Marc
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57

Re: Accentuées et génération de code

Postby Bruno Pagès » Sun 9 Dec 2012 11:46

oui se sera corrigé dans la prochaine version, vous n'aurez rien à faire de particulier
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 464
Joined: Mon 20 Feb 2012 08:23
Location: France

Next

Return to Bug reports / Rapports de bugs

Who is online

Users browsing this forum: No registered users and 0 guests

cron