Page 1 of 1

Methodes disponibles dans Point

Posted: 06 Mar 2013, 09:44
by niconil
Imaginons que position soit une variable de type Point,

Code: Select all

position.x
est correctement évalué, mais :

Code: Select all

position.x()
ne marche pas pourtant ma lecture du code source me fait croire que x() existe
et la page du wiki semble le confirmer.

Alors ... c'est un bug ou une feature ?

Re: Methodes disponibles dans Point

Posted: 06 Mar 2013, 09:55
by Jmgr
Ah oui pardon j'ai omis de répondre à ta question la dernière fois.
En fait c'est une erreur de ma part, je pensais qu'en EcmaScript on pouvait avoir à la fois des attributs et des getters avec le même nom, mais ça ne fonctionne pas.
Du coup je suis un peu embêté, la logique voudrait qu'on aie ça :
* Point.x (attribut, lecture/écriture)
Alors que moi je voulais ça :
* Point.x (attribut, lecture/écriture)
* Point.x() (getter, lecture)
* Point.setX() (setter, écriture)
Alors qu'en ce moment on a :
* Point.x (attribut, lecture/écriture)
* Point.setX() (setter, écriture)

Ce que je propose, c'est qu'on vire tous les setTruc(), et truc() dans toutes les classes de code, et qu'on laisse uniquement les attributs.
Pour garder la compatibilité avec les codes des utilisateurs je propose qu'on laisse le code c++ comme il est. (quitte à nettoyer tout ça dans quelques versions)

Re: Methodes disponibles dans Point

Posted: 06 Mar 2013, 19:18
by niconil
D'un point de vue doc donc je parle des attributs en précisant leur usage (lecture/affectation)

et je mentionne les setter comme méthodes disponibles mais obsolètes. car promis à une future suppression du code.

Re: Methodes disponibles dans Point

Posted: 06 Mar 2013, 22:00
by Jmgr
Oui voilà, je vais voir s'il est possible de mentionner quelque par un avertissement de déprécation en cas d'utilisation de ces méthodes.

Re: Methodes disponibles dans Point

Posted: 06 Mar 2013, 22:02
by Jmgr
Par contre pense à vérifier dans le code C++ qu'il s'agit bien d'attributs. Les classes de code héritent de CodeClass et la macro Q_PROPERTY permet de définir des propriétés.